diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/TenantsController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/TenantsController.java index 4bb89e416..d28a3efdc 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/TenantsController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/TenantsController.java @@ -14,8 +14,10 @@ import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.service.DeploymentKeyService; import com.iqser.red.service.persistence.management.v1.processor.service.TenantManagementService; +import com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter; import com.iqser.red.service.persistence.service.v1.api.external.resource.TenantsResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; +import com.iqser.red.service.persistence.service.v1.api.shared.model.multitenancy.SimpleTenantResponse; import com.iqser.red.service.persistence.service.v1.api.shared.model.multitenancy.TenantRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.multitenancy.TenantResponse; @@ -53,4 +55,9 @@ public class TenantsController implements TenantsResource { return JSONPrimitive.of(deploymentKeyService.getDeploymentKey(tenantId)); } + + public List getSimpleTenants() { + return MagicConverter.convert(tenantManagementService.getTenants(), SimpleTenantResponse.class); + } + } diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/swagger/SwaggerTenantMvcConfigurer.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/swagger/SwaggerTenantMvcConfigurer.java index 949370b3c..0a39a7aba 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/swagger/SwaggerTenantMvcConfigurer.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/swagger/SwaggerTenantMvcConfigurer.java @@ -24,7 +24,8 @@ public class SwaggerTenantMvcConfigurer implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new DocsInterceptor()).addPathPatterns(path.substring(0,path.indexOf("?"))); + var cleanedUpPath = path.contains("?") ? path.substring(0, path.indexOf("?")) : path; + registry.addInterceptor(new DocsInterceptor()).addPathPatterns(cleanedUpPath); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/TenantsResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/TenantsResource.java index 4e890cf87..35de894da 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/TenantsResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/TenantsResource.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; +import com.iqser.red.service.persistence.service.v1.api.shared.model.multitenancy.SimpleTenantResponse; import com.iqser.red.service.persistence.service.v1.api.shared.model.multitenancy.TenantRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.multitenancy.TenantResponse; @@ -36,6 +37,11 @@ public interface TenantsResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List getTenants(); + @GetMapping(value = ExternalApi.BASE_PATH + "/tenants/simple", produces = MediaType.APPLICATION_JSON_VALUE) + @Operation(summary = "Gets all existing tenant in a simplified format", description = "None") + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) + List getSimpleTenants(); + @GetMapping(value = ExternalApi.BASE_PATH + "/deploymentKey" + TENANT_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Returns the deployment key for a tenant", description = "None") diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/multitenancy/SimpleTenantResponse.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/multitenancy/SimpleTenantResponse.java new file mode 100644 index 000000000..b90dfe359 --- /dev/null +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/multitenancy/SimpleTenantResponse.java @@ -0,0 +1,18 @@ +package com.iqser.red.service.persistence.service.v1.api.shared.model.multitenancy; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class SimpleTenantResponse { + + private String tenantId; + private String displayName; + private String guid; + +}