Search in sources :

Example 1 with ApiLifecycleState

use of io.gravitee.repository.management.model.ApiLifecycleState in project gravitee-management-rest-api by gravitee-io.

the class ApiServiceImpl method convert.

private ApiEntity convert(Api api, PrimaryOwnerEntity primaryOwner, List<CategoryEntity> categories) {
    ApiEntity apiEntity = new ApiEntity();
    apiEntity.setId(api.getId());
    apiEntity.setName(api.getName());
    apiEntity.setDeployedAt(api.getDeployedAt());
    apiEntity.setCreatedAt(api.getCreatedAt());
    apiEntity.setGroups(api.getGroups());
    apiEntity.setDisableMembershipNotifications(api.isDisableMembershipNotifications());
    apiEntity.setReferenceType(GraviteeContext.ReferenceContextType.ENVIRONMENT.name());
    apiEntity.setReferenceId(api.getEnvironmentId());
    if (api.getDefinition() != null) {
        try {
            io.gravitee.definition.model.Api apiDefinition = objectMapper.readValue(api.getDefinition(), io.gravitee.definition.model.Api.class);
            apiEntity.setProxy(apiDefinition.getProxy());
            apiEntity.setPaths(apiDefinition.getPaths());
            apiEntity.setServices(apiDefinition.getServices());
            apiEntity.setResources(apiDefinition.getResources());
            apiEntity.setProperties(apiDefinition.getProperties());
            apiEntity.setTags(apiDefinition.getTags());
            if (apiDefinition.getDefinitionVersion() != null) {
                apiEntity.setGraviteeDefinitionVersion(apiDefinition.getDefinitionVersion().getLabel());
            }
            if (apiDefinition.getFlowMode() != null) {
                apiEntity.setFlowMode(apiDefinition.getFlowMode());
            }
            if (DefinitionVersion.V2.equals(apiDefinition.getDefinitionVersion())) {
                apiEntity.setFlows(apiDefinition.getFlows());
                apiEntity.setPlans(new ArrayList<>(apiDefinition.getPlans()));
            } else {
                apiEntity.setFlows(null);
                apiEntity.setPlans(null);
            }
            // Issue https://github.com/gravitee-io/issues/issues/3356
            if (apiDefinition.getProxy().getVirtualHosts() != null && !apiDefinition.getProxy().getVirtualHosts().isEmpty()) {
                apiEntity.setContextPath(apiDefinition.getProxy().getVirtualHosts().get(0).getPath());
            }
            if (apiDefinition.getPathMappings() != null) {
                apiEntity.setPathMappings(new HashSet<>(apiDefinition.getPathMappings().keySet()));
            }
            apiEntity.setResponseTemplates(apiDefinition.getResponseTemplates());
        } catch (IOException ioe) {
            LOGGER.error("Unexpected error while generating API definition", ioe);
        }
    }
    apiEntity.setUpdatedAt(api.getUpdatedAt());
    apiEntity.setVersion(api.getVersion());
    apiEntity.setDescription(api.getDescription());
    apiEntity.setPicture(api.getPicture());
    apiEntity.setBackground(api.getBackground());
    apiEntity.setLabels(api.getLabels());
    final Set<String> apiCategories = api.getCategories();
    if (apiCategories != null) {
        if (categories == null) {
            categories = categoryService.findAll();
        }
        final Set<String> newApiCategories = new HashSet<>(apiCategories.size());
        for (final String apiView : apiCategories) {
            final Optional<CategoryEntity> optionalView = categories.stream().filter(c -> apiView.equals(c.getId())).findAny();
            optionalView.ifPresent(category -> newApiCategories.add(category.getKey()));
        }
        apiEntity.setCategories(newApiCategories);
    }
    final LifecycleState state = api.getLifecycleState();
    if (state != null) {
        apiEntity.setState(Lifecycle.State.valueOf(state.name()));
    }
    if (api.getVisibility() != null) {
        apiEntity.setVisibility(io.gravitee.rest.api.model.Visibility.valueOf(api.getVisibility().toString()));
    }
    if (primaryOwner != null) {
        apiEntity.setPrimaryOwner(primaryOwner);
    }
    final ApiLifecycleState lifecycleState = api.getApiLifecycleState();
    if (lifecycleState != null) {
        apiEntity.setLifecycleState(io.gravitee.rest.api.model.api.ApiLifecycleState.valueOf(lifecycleState.name()));
    }
    if (parameterService.findAsBoolean(Key.API_REVIEW_ENABLED, api.getEnvironmentId(), ParameterReferenceType.ENVIRONMENT)) {
        final List<Workflow> workflows = workflowService.findByReferenceAndType(API, api.getId(), REVIEW);
        if (workflows != null && !workflows.isEmpty()) {
            apiEntity.setWorkflowState(WorkflowState.valueOf(workflows.get(0).getState()));
        }
    }
    return apiEntity;
}
Also used : ApiHook(io.gravitee.rest.api.service.notification.ApiHook) EndpointDiscoveryService(io.gravitee.definition.model.services.discovery.EndpointDiscoveryService) Optional.of(java.util.Optional.of) Page(io.gravitee.common.data.domain.Page) Sortable(io.gravitee.rest.api.model.common.Sortable) HookScope(io.gravitee.rest.api.service.notification.HookScope) Autowired(org.springframework.beans.factory.annotation.Autowired) RoleScope(io.gravitee.rest.api.model.permissions.RoleScope) StringUtils(org.apache.commons.lang3.StringUtils) ApiCriteria(io.gravitee.repository.management.api.search.ApiCriteria) Matcher(java.util.regex.Matcher) AuditEvent(io.gravitee.repository.management.model.Api.AuditEvent) PageQuery(io.gravitee.rest.api.model.documentation.PageQuery) JsonNode(com.fasterxml.jackson.databind.JsonNode) EntrypointReferenceType(io.gravitee.rest.api.model.EntrypointReferenceType) ApplicationListItem(io.gravitee.rest.api.model.application.ApplicationListItem) RolePermissionAction(io.gravitee.rest.api.model.permissions.RolePermissionAction) IOUtils(org.apache.commons.io.IOUtils) Stream(java.util.stream.Stream) CollectionUtils(org.springframework.util.CollectionUtils) HealthCheckService(io.gravitee.definition.model.services.healthcheck.HealthCheckService) DatatypeConverter(javax.xml.bind.DatatypeConverter) java.util(java.util) GraviteeContext(io.gravitee.rest.api.service.common.GraviteeContext) Value(org.springframework.beans.factory.annotation.Value) Strings(com.google.common.base.Strings) ApiPrimaryOwnerMode(io.gravitee.rest.api.model.settings.ApiPrimaryOwnerMode) DRAFT(io.gravitee.rest.api.model.WorkflowState.DRAFT) NotificationTemplateService(io.gravitee.rest.api.service.notification.NotificationTemplateService) DefaultMetadataUpgrader(io.gravitee.rest.api.service.impl.upgrade.DefaultMetadataUpgrader) SWAGGER(io.gravitee.rest.api.model.PageType.SWAGGER) HttpEndpoint(io.gravitee.definition.model.endpoint.HttpEndpoint) MembershipMemberType(io.gravitee.rest.api.model.MembershipMemberType) PUBLIC(io.gravitee.repository.management.model.Visibility.PUBLIC) PageableImpl(io.gravitee.rest.api.model.common.PageableImpl) Query(io.gravitee.rest.api.service.search.query.Query) UuidString(io.gravitee.rest.api.service.common.UuidString) IOException(java.io.IOException) io.gravitee.definition.model(io.gravitee.definition.model) io.gravitee.rest.api.model.api(io.gravitee.rest.api.model.api) CronTrigger(org.springframework.scheduling.support.CronTrigger) MembershipReferenceType(io.gravitee.rest.api.model.MembershipReferenceType) GenericNotificationConfigEntity(io.gravitee.rest.api.model.notification.GenericNotificationConfigEntity) io.gravitee.repository.management.model(io.gravitee.repository.management.model) StringReader(java.io.StringReader) io.gravitee.rest.api.service.exceptions(io.gravitee.rest.api.service.exceptions) SearchResult(io.gravitee.rest.api.service.impl.search.SearchResult) REVIEW(io.gravitee.rest.api.model.WorkflowType.REVIEW) Plan(io.gravitee.definition.model.Plan) API(io.gravitee.rest.api.model.WorkflowReferenceType.API) Properties(io.gravitee.definition.model.Properties) URL(java.net.URL) TechnicalException(io.gravitee.repository.exceptions.TechnicalException) LoggerFactory(org.slf4j.LoggerFactory) DeserializationFeature(com.fasterxml.jackson.databind.DeserializationFeature) ApiRepository(io.gravitee.repository.management.api.ApiRepository) Lifecycle(io.gravitee.common.component.Lifecycle) PatternSyntaxException(java.util.regex.PatternSyntaxException) ApiQualityRuleRepository(io.gravitee.repository.management.api.ApiQualityRuleRepository) Predicate(java.util.function.Predicate) ApiLifecycleState(io.gravitee.repository.management.model.ApiLifecycleState) MetadataFormat(io.gravitee.rest.api.model.MetadataFormat) Collectors(java.util.stream.Collectors) ApiFieldExclusionFilter(io.gravitee.repository.management.api.search.ApiFieldExclusionFilter) Key(io.gravitee.rest.api.model.parameters.Key) Api(io.gravitee.repository.management.model.Api) NotificationParamsBuilder(io.gravitee.rest.api.service.notification.NotificationParamsBuilder) EmailNotificationBuilder(io.gravitee.rest.api.service.builder.EmailNotificationBuilder) APIV1toAPIV2Converter(io.gravitee.rest.api.service.migration.APIV1toAPIV2Converter) SubscriptionQuery(io.gravitee.rest.api.model.subscription.SubscriptionQuery) Pattern(java.util.regex.Pattern) ApiHeaderEntity(io.gravitee.rest.api.model.api.header.ApiHeaderEntity) NotNull(org.jetbrains.annotations.NotNull) SystemRole(io.gravitee.rest.api.model.permissions.SystemRole) SearchEngineService(io.gravitee.rest.api.service.search.SearchEngineService) io.gravitee.rest.api.service(io.gravitee.rest.api.service) TagReferenceType(io.gravitee.rest.api.model.TagReferenceType) Pageable(io.gravitee.rest.api.model.common.Pageable) ImportConfiguration(io.gravitee.rest.api.service.spring.ImportConfiguration) ApiPermission(io.gravitee.rest.api.model.permissions.ApiPermission) Visibility(io.gravitee.repository.management.model.Visibility) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) EventType(io.gravitee.rest.api.model.EventType) io.gravitee.rest.api.model(io.gravitee.rest.api.model) Comparator.comparing(java.util.Comparator.comparing) PUBLISH_API(io.gravitee.rest.api.model.EventType.PUBLISH_API) ApiSynchronizationProcessor(io.gravitee.rest.api.service.processor.ApiSynchronizationProcessor) Step(io.gravitee.definition.model.flow.Step) AlertReferenceType(io.gravitee.rest.api.model.alert.AlertReferenceType) Logger(org.slf4j.Logger) ParameterReferenceType(io.gravitee.rest.api.model.parameters.ParameterReferenceType) MalformedURLException(java.net.MalformedURLException) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) FileInputStream(java.io.FileInputStream) AlertTriggerEntity(io.gravitee.rest.api.model.alert.AlertTriggerEntity) Component(org.springframework.stereotype.Component) INLINE(io.gravitee.rest.api.model.ImportSwaggerDescriptorEntity.Type.INLINE) StringUtils.isBlank(org.apache.commons.lang3.StringUtils.isBlank) AuditEvent(io.gravitee.repository.management.model.Workflow.AuditEvent) QueryBuilder(io.gravitee.rest.api.service.search.query.QueryBuilder) Collections(java.util.Collections) ApiLifecycleState(io.gravitee.repository.management.model.ApiLifecycleState) IOException(java.io.IOException) UuidString(io.gravitee.rest.api.service.common.UuidString) io.gravitee.definition.model(io.gravitee.definition.model) io.gravitee.repository.management.model(io.gravitee.repository.management.model) io.gravitee.rest.api.model(io.gravitee.rest.api.model) ApiLifecycleState(io.gravitee.repository.management.model.ApiLifecycleState)

Aggregations

JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 DeserializationFeature (com.fasterxml.jackson.databind.DeserializationFeature)1 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1 Strings (com.google.common.base.Strings)1 Lifecycle (io.gravitee.common.component.Lifecycle)1 Page (io.gravitee.common.data.domain.Page)1 io.gravitee.definition.model (io.gravitee.definition.model)1 Plan (io.gravitee.definition.model.Plan)1 Properties (io.gravitee.definition.model.Properties)1 HttpEndpoint (io.gravitee.definition.model.endpoint.HttpEndpoint)1 Step (io.gravitee.definition.model.flow.Step)1 EndpointDiscoveryService (io.gravitee.definition.model.services.discovery.EndpointDiscoveryService)1 HealthCheckService (io.gravitee.definition.model.services.healthcheck.HealthCheckService)1 TechnicalException (io.gravitee.repository.exceptions.TechnicalException)1 ApiQualityRuleRepository (io.gravitee.repository.management.api.ApiQualityRuleRepository)1 ApiRepository (io.gravitee.repository.management.api.ApiRepository)1 ApiCriteria (io.gravitee.repository.management.api.search.ApiCriteria)1 ApiFieldExclusionFilter (io.gravitee.repository.management.api.search.ApiFieldExclusionFilter)1