From a42c5efdc9dfb71401dcb9cdfbbd8283ef1121ad Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Thu, 3 Nov 2022 11:54:34 +0100 Subject: [PATCH] RED-5293: 500 for invalid tenant --- .../service/v1/api/model/multitenancy/TenantRequest.java | 1 + .../v1/server/service/TenantManagementService.java | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/multitenancy/TenantRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/multitenancy/TenantRequest.java index 8b3a1c525..c5afa21ec 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/multitenancy/TenantRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/multitenancy/TenantRequest.java @@ -19,6 +19,7 @@ public class TenantRequest { @NotBlank private String displayName; private String guid; + @NotBlank private String jdbcUrl; @NotBlank private String user; diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/TenantManagementService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/TenantManagementService.java index a47fcedbc..24c6c9d57 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/TenantManagementService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/TenantManagementService.java @@ -2,6 +2,7 @@ package com.iqser.red.service.peristence.v1.server.service; import java.sql.Connection; import java.sql.DriverManager; +import java.time.OffsetDateTime; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; @@ -13,9 +14,13 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.core.io.ResourceLoader; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.jdbc.datasource.SingleConnectionDataSource; import org.springframework.stereotype.Service; +import org.springframework.web.server.ResponseStatusException; +import com.iqser.red.commons.spring.ErrorMessage; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; @@ -63,6 +68,8 @@ public class TenantManagementService { try (Connection connection = DriverManager.getConnection(tenantRequest.getJdbcUrl(), tenantRequest.getUser(), tenantRequest.getPassword())) { DataSource tenantDataSource = new SingleConnectionDataSource(connection, false); runLiquibase(tenantDataSource); + } catch (PSQLException e) { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage()); } TenantEntity tenantEntity = TenantEntity.builder()