From 91186cef682f9b07f40e5b206b89145291f145b4 Mon Sep 17 00:00:00 2001 From: Radek Davidek Date: Fri, 17 Oct 2025 14:33:57 +0200 Subject: [PATCH] added more mapping --- .../migration/mapper/ApiDefinitionMapper.java | 54 +++++++++++++++++-- 1 file changed, 50 insertions(+), 4 deletions(-) diff --git a/src/main/java/cz/trask/migration/mapper/ApiDefinitionMapper.java b/src/main/java/cz/trask/migration/mapper/ApiDefinitionMapper.java index 9319a19..8fd7d57 100644 --- a/src/main/java/cz/trask/migration/mapper/ApiDefinitionMapper.java +++ b/src/main/java/cz/trask/migration/mapper/ApiDefinitionMapper.java @@ -5,6 +5,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.UUID; import java.util.stream.Collectors; import com.fasterxml.jackson.core.type.TypeReference; @@ -12,6 +13,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import cz.trask.migration.model.ApiDefinition32; import cz.trask.migration.model.ApiDefinition45; +import cz.trask.migration.model.ApiDefinition45.ApiPolicies; public class ApiDefinitionMapper { @@ -45,7 +47,8 @@ public class ApiDefinitionMapper { data.setVisibility(oldApi.getVisibility().toUpperCase()); data.setVisibleRoles(Collections.emptyList()); data.setVisibleTenants(Collections.emptyList()); - data.setAccessControl(oldApi.getAccessControl()); + data.setAccessControl("NONE"); + data.setAccessControlRoles(Collections.emptyList()); data.setOrganizationPolicies(Collections.emptyList()); data.setType(oldApi.getType()); data.setAudiences(Arrays.asList("all")); @@ -70,7 +73,7 @@ public class ApiDefinitionMapper { data.setAsyncTransportProtocols(Collections.emptyList()); data.setCategories(Collections.emptyList()); - + // ---------- cache ---------- data.setResponseCachingEnabled( oldApi.getResponseCache() != null && !"disabled".equalsIgnoreCase(oldApi.getResponseCache())); @@ -84,7 +87,7 @@ public class ApiDefinitionMapper { data.setEndpointImplementationType(oldApi.getImplementation()); // ---------- API policies ---------- - // data.setApiPolicies(mapApiPolicies(oldApi.getAvailableTiers())); + data.setApiPolicies(mapApiPolicies(oldApi)); // ---------- key managers ---------- data.setKeyManagers(oldApi.getKeyManagers()); @@ -95,6 +98,8 @@ public class ApiDefinitionMapper { ai.setApiOwner(oldApi.getId() != null ? oldApi.getId().getProviderName() : null); ai.setVendor("WSO2"); data.setAdvertiseInfo(ai); + + data.setVisibleOrganizations(Arrays.asList("none")); // ---------- gateway ---------- data.setGatewayVendor("wso2"); @@ -102,10 +107,12 @@ public class ApiDefinitionMapper { // ---------- business & monetization ---------- data.setBusinessInformation(oldApi.getMonetizationProperties()); + data.setAdditionalProperties(Collections.emptyList()); data.setAdditionalPropertiesMap(oldApi.getAdditionalProperties()); // ---------- subscription ---------- - data.setSubscriptionAvailability(oldApi.getSubscriptionAvailability()); + data.setSubscriptionAvailability(oldApi.getSubscriptionAvailability().toUpperCase()); + data.setSubscriptionAvailableTenants(Collections.emptyList()); // ---------- operations ---------- data.setOperations(mapOperations(oldApi)); @@ -121,6 +128,45 @@ public class ApiDefinitionMapper { return newApi; } + private static ApiPolicies mapApiPolicies(ApiDefinition32 oldApi) { + ApiDefinition45.ApiPolicies apiPolicies = new ApiDefinition45.ApiPolicies(); + // ---------- request policies ---------- + if (oldApi.getInSequence()!=null && !oldApi.getInSequence().isEmpty()) { + ApiDefinition45.Policy requestPolicy = new ApiDefinition45.Policy(); + requestPolicy.setPolicyName(oldApi.getInSequence()); + requestPolicy.setPolicyType("common"); + requestPolicy.setPolicyVersion("v1"); + requestPolicy.setPolicyId(UUID.randomUUID().toString()); + requestPolicy.setParameters(Collections.emptyMap()); + apiPolicies.setRequest(List.of(requestPolicy)); + } else + apiPolicies.setRequest(Collections.emptyList()); + // ---------- response policies ---------- + if (oldApi.getOutSequence()!=null && !oldApi.getOutSequence().isEmpty()) { + ApiDefinition45.Policy requestPolicy = new ApiDefinition45.Policy(); + requestPolicy.setPolicyName(oldApi.getOutSequence()); + requestPolicy.setPolicyType("common"); + requestPolicy.setPolicyVersion("v1"); + requestPolicy.setPolicyId(UUID.randomUUID().toString()); + requestPolicy.setParameters(Collections.emptyMap()); + apiPolicies.setResponse(List.of(requestPolicy)); + } else + apiPolicies.setResponse(Collections.emptyList()); + // ---------- fault policies ---------- + if (oldApi.getFaultSequence()!=null && !oldApi.getFaultSequence().isEmpty()) { + ApiDefinition45.Policy requestPolicy = new ApiDefinition45.Policy(); + requestPolicy.setPolicyName(oldApi.getFaultSequence()); + requestPolicy.setPolicyType("common"); + requestPolicy.setPolicyVersion("v1"); + requestPolicy.setPolicyId(UUID.randomUUID().toString()); + requestPolicy.setParameters(Collections.emptyMap()); + apiPolicies.setFault(List.of(requestPolicy)); + } else + apiPolicies.setFault(Collections.emptyList()); + + return apiPolicies; + } + private static ApiDefinition45.CorsConfiguration mapCors(ApiDefinition32.CorsConfiguration oldCors) { if (oldCors == null) return null;