Search in sources :

Example 6 with Step

use of io.gravitee.definition.model.flow.Step in project gravitee-management-rest-api by gravitee-io.

the class APIV1toAPIV2Converter method createStep.

@NotNull
private Step createStep(Rule rule, PolicyEntity policy, String safeRulePolicyConfiguration) {
    final Step step = new Step();
    step.setName(policy.getName());
    step.setEnabled(rule.isEnabled());
    step.setDescription(rule.getDescription() != null ? rule.getDescription() : policy.getDescription());
    step.setPolicy(policy.getId());
    step.setConfiguration(safeRulePolicyConfiguration);
    return step;
}
Also used : Step(io.gravitee.definition.model.flow.Step) NotNull(org.jetbrains.annotations.NotNull)

Example 7 with Step

use of io.gravitee.definition.model.flow.Step in project gravitee-management-rest-api by gravitee-io.

the class OAIToAPIV2Converter method fill.

@Override
protected SwaggerApiEntity fill(SwaggerApiEntity apiEntity, OpenAPI oai) {
    // flows
    apiEntity.setGraviteeDefinitionVersion(DefinitionVersion.V2.getLabel());
    if (swaggerDescriptor.isWithPolicyPaths()) {
        List<Flow> allFlows = new ArrayList();
        oai.getPaths().forEach((key, pathItem) -> {
            String path = key.replaceAll("\\{(.[^/\\}]*)\\}", ":$1");
            Map<PathItem.HttpMethod, Operation> operations = pathItem.readOperationsMap();
            operations.forEach((httpMethod, operation) -> {
                final Flow flow = createFlow(path, Collections.singleton(HttpMethod.valueOf(httpMethod.name())));
                getVisitors().forEach((Consumer<OAIOperationVisitor>) oaiOperationVisitor -> {
                    Optional<Policy> policy = (Optional<Policy>) oaiOperationVisitor.visit(oai, operation);
                    if (policy.isPresent()) {
                        final Step step = new Step();
                        step.setName(policy.get().getName());
                        step.setEnabled(true);
                        step.setDescription(operation.getSummary() == null ? (operation.getOperationId() == null ? operation.getDescription() : operation.getOperationId()) : operation.getSummary());
                        step.setPolicy(policy.get().getName());
                        String configuration = clearNullValues(policy.get().getConfiguration());
                        step.setConfiguration(configuration);
                        String scope = getScope(configuration);
                        if (scope != null && scope.toLowerCase().equals("response")) {
                            flow.getPost().add(step);
                        } else {
                            flow.getPre().add(step);
                        }
                    }
                });
                allFlows.add(flow);
            });
        });
        apiEntity.setFlows(allFlows);
        if (swaggerDescriptor.isWithPathMapping() && allFlows.size() > 0) {
            apiEntity.setPathMappings(allFlows.stream().map(flow -> flow.getPath()).collect(Collectors.toSet()));
        }
    }
    final String defaultDeclaredPath = "/";
    if (!swaggerDescriptor.isWithPathMapping()) {
        apiEntity.setPathMappings(singleton(defaultDeclaredPath));
    }
    return apiEntity;
}
Also used : Step(io.gravitee.definition.model.flow.Step) GroupService(io.gravitee.rest.api.service.GroupService) java.util(java.util) PathOperator(io.gravitee.definition.model.flow.PathOperator) Flow(io.gravitee.definition.model.flow.Flow) PathItem(io.swagger.v3.oas.models.PathItem) Operation(io.swagger.v3.oas.models.Operation) PolicyOperationVisitorManager(io.gravitee.rest.api.service.impl.swagger.policy.PolicyOperationVisitorManager) Collectors(java.util.stream.Collectors) Operator(io.gravitee.definition.model.flow.Operator) OAIOperationVisitor(io.gravitee.rest.api.service.impl.swagger.visitor.v3.OAIOperationVisitor) Consumer(java.util.function.Consumer) ImportSwaggerDescriptorEntity(io.gravitee.rest.api.model.ImportSwaggerDescriptorEntity) PolicyHelper.clearNullValues(io.gravitee.rest.api.service.validator.PolicyHelper.clearNullValues) Collections.singleton(java.util.Collections.singleton) HttpMethod(io.gravitee.common.http.HttpMethod) DefinitionVersion(io.gravitee.definition.model.DefinitionVersion) OpenAPI(io.swagger.v3.oas.models.OpenAPI) SwaggerApiEntity(io.gravitee.rest.api.model.api.SwaggerApiEntity) PolicyHelper.getScope(io.gravitee.rest.api.service.validator.PolicyHelper.getScope) Policy(io.gravitee.policy.api.swagger.Policy) TagService(io.gravitee.rest.api.service.TagService) Policy(io.gravitee.policy.api.swagger.Policy) Operation(io.swagger.v3.oas.models.Operation) Step(io.gravitee.definition.model.flow.Step) OAIOperationVisitor(io.gravitee.rest.api.service.impl.swagger.visitor.v3.OAIOperationVisitor) HttpMethod(io.gravitee.common.http.HttpMethod) Flow(io.gravitee.definition.model.flow.Flow)

Aggregations

Step (io.gravitee.definition.model.flow.Step)7 Test (org.junit.Test)4 HttpMethod (io.gravitee.common.http.HttpMethod)2 Flow (io.gravitee.definition.model.flow.Flow)2 SwaggerApiEntity (io.gravitee.rest.api.model.api.SwaggerApiEntity)2 IOException (java.io.IOException)2 java.util (java.util)2 Collectors (java.util.stream.Collectors)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 io.gravitee.definition.model (io.gravitee.definition.model)1 DefinitionVersion (io.gravitee.definition.model.DefinitionVersion)1 Operator (io.gravitee.definition.model.flow.Operator)1 PathOperator (io.gravitee.definition.model.flow.PathOperator)1 Policy (io.gravitee.policy.api.swagger.Policy)1 io.gravitee.rest.api.model (io.gravitee.rest.api.model)1 ImportSwaggerDescriptorEntity (io.gravitee.rest.api.model.ImportSwaggerDescriptorEntity)1 GroupService (io.gravitee.rest.api.service.GroupService)1 TagService (io.gravitee.rest.api.service.TagService)1 InvalidDataException (io.gravitee.rest.api.service.exceptions.InvalidDataException)1 PolicyOperationVisitorManager (io.gravitee.rest.api.service.impl.swagger.policy.PolicyOperationVisitorManager)1