From b4ae9b71379b1c24ca861e00b78468b2e3a1df3c Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Wed, 26 Oct 2022 17:24:34 +0200 Subject: [PATCH] RED-5293: 500 for invalid tenant --- .../v1/server/service/TenantManagementService.java | 8 ++++++++ 1 file changed, 8 insertions(+) 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 756da76a7..af393cab2 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 @@ -15,6 +15,8 @@ import org.springframework.core.io.ResourceLoader; import org.springframework.jdbc.datasource.SingleConnectionDataSource; import org.springframework.stereotype.Service; +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; import com.iqser.red.service.persistence.management.v1.processor.multitenancy.entity.TenantEntity; import com.iqser.red.service.persistence.management.v1.processor.service.EncryptionDecryptionService; @@ -55,6 +57,10 @@ public class TenantManagementService { if (tenantRepository.findById(tenantRequest.getTenantId()).isEmpty()) { + if (tenantRequest.getDisplayName().isEmpty() || tenantRequest.getUser().isEmpty() || tenantRequest.getPassword().isBlank()) { + throw new BadRequestException("Bad request: fields have wrong format or required fields are empty"); + } + String encryptedPassword = encryptionService.encrypt(tenantRequest.getPassword()); try (Connection connection = DriverManager.getConnection(tenantRequest.getJdbcUrl(), tenantRequest.getUser(), tenantRequest.getPassword())) { @@ -71,6 +77,8 @@ public class TenantManagementService { .password(encryptedPassword) .build(); tenantRepository.save(tenantEntity); + } else { + throw new ConflictException("Conflict: tenant id already exists."); } }