Search in sources :

Example 1 with Method

use of io.swagger.models.Method in project swagger-parser by swagger-api.

the class SwaggerCompatConverter method convertOperation.

public Operation convertOperation(String tag, io.swagger.models.apideclaration.Operation operation, ApiDeclaration apiDeclaration) {
    Method method;
    if (operation.getMethod() == null) {
        JsonNode node = (JsonNode) operation.getExtraFields().get("httpMethod");
        method = Method.forValue(node.asText());
        operation.setMethod(method);
    }
    Operation output = new Operation().summary(operation.getSummary()).description(operation.getNotes()).operationId(operation.getNickname());
    if (tag != null) {
        output.tag(tag);
    }
    for (io.swagger.models.apideclaration.Parameter parameter : operation.getParameters()) {
        output.parameter(convertParameter(parameter));
    }
    if (operation.getConsumes() != null && !operation.getConsumes().isEmpty()) {
        for (String consumes : operation.getConsumes()) {
            output.consumes(consumes);
        }
    } else if (apiDeclaration.getConsumes() != null) {
        for (String consumes : apiDeclaration.getConsumes()) {
            output.consumes(consumes);
        }
    }
    if (operation.getProduces() != null && !operation.getProduces().isEmpty()) {
        for (String produces : operation.getProduces()) {
            output.produces(produces);
        }
    } else if (apiDeclaration.getProduces() != null) {
        for (String produces : apiDeclaration.getProduces()) {
            output.produces(produces);
        }
    }
    for (ResponseMessage message : operation.getResponseMessages()) {
        Response response = new Response().description(message.getMessage());
        Model responseModel = null;
        if (message.getResponseModel() != null) {
            response.schema(new RefProperty(message.getResponseModel()));
        }
        output.response(message.getCode(), response);
    }
    // default response type
    Property responseProperty = propertyFromTypedObject(operation);
    Response response = new Response().description("success").schema(responseProperty);
    if (output.getResponses() == null) {
        output.defaultResponse(response);
    } else if (responseProperty != null) {
        output.response(200, response);
    }
    Map<String, List<AuthorizationScope>> auths = operation.getAuthorizations();
    for (String securityName : auths.keySet()) {
        List<AuthorizationScope> scopes = auths.get(securityName);
        List<String> updatedScopes = new ArrayList<String>();
        for (AuthorizationScope s : scopes) {
            updatedScopes.add(s.getScope());
        }
        output.addSecurity(securityName, updatedScopes);
    }
    return output;
}
Also used : ArrayList(java.util.ArrayList) JsonNode(com.fasterxml.jackson.databind.JsonNode) Method(io.swagger.models.Method) Operation(io.swagger.models.Operation) ResponseMessage(io.swagger.models.apideclaration.ResponseMessage) RefProperty(io.swagger.models.properties.RefProperty) Response(io.swagger.models.Response) Model(io.swagger.models.Model) RefModel(io.swagger.models.RefModel) ArrayModel(io.swagger.models.ArrayModel) List(java.util.List) ArrayList(java.util.ArrayList) AuthorizationScope(io.swagger.models.AuthorizationScope) StringProperty(io.swagger.models.properties.StringProperty) ArrayProperty(io.swagger.models.properties.ArrayProperty) Property(io.swagger.models.properties.Property) ModelProperty(io.swagger.models.apideclaration.ModelProperty) RefProperty(io.swagger.models.properties.RefProperty) UntypedProperty(io.swagger.models.properties.UntypedProperty)

Aggregations

JsonNode (com.fasterxml.jackson.databind.JsonNode)1 ArrayModel (io.swagger.models.ArrayModel)1 AuthorizationScope (io.swagger.models.AuthorizationScope)1 Method (io.swagger.models.Method)1 Model (io.swagger.models.Model)1 Operation (io.swagger.models.Operation)1 RefModel (io.swagger.models.RefModel)1 Response (io.swagger.models.Response)1 ModelProperty (io.swagger.models.apideclaration.ModelProperty)1 ResponseMessage (io.swagger.models.apideclaration.ResponseMessage)1 ArrayProperty (io.swagger.models.properties.ArrayProperty)1 Property (io.swagger.models.properties.Property)1 RefProperty (io.swagger.models.properties.RefProperty)1 StringProperty (io.swagger.models.properties.StringProperty)1 UntypedProperty (io.swagger.models.properties.UntypedProperty)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1