Pull request #562: RED-5293

Merge in RED/persistence-service from RED-5293 to master

* commit '1a1e799d40c01a2478fe132e6646cc4f95618f11':
  RED-5293: removed IllegalArgumentException in ControllerAdvice and specified it in in TenantsController
  RED-5293: fixed broken IllegalArgumentException, it throws now a 400 instead of 500
  RED-5293: fixed broken IllegalArgumentException, it throws now a 400 instead of 500
  RED-5293: fixed broken IllegalArgumentException, it throws now a 400 instead of 500
This commit is contained in:
Ali Oezyetimoglu 2022-11-09 17:26:19 +01:00 committed by Viktor Seifert
commit 3a2905200f
4 changed files with 15 additions and 11 deletions

View File

@ -1,7 +1,6 @@
package com.iqser.red.service.persistence.service.v1.api.model.multitenancy;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;

View File

@ -106,12 +106,4 @@ public class ControllerAdvice {
return new ErrorMessage(OffsetDateTime.now(), String.format("You have empty/wrong formatted parameters: %s", errorListAsString));
}
@ResponseBody
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
@ExceptionHandler(value = IllegalArgumentException.class)
public ErrorMessage handleIllegalArgumentException(IllegalArgumentException e) {
return new ErrorMessage(OffsetDateTime.now(), e.getMessage());
}
}

View File

@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RestController;
import com.iqser.red.service.peristence.v1.server.service.DeploymentKeyService;
import com.iqser.red.service.peristence.v1.server.service.TenantManagementService;
import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException;
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.model.multitenancy.TenantRequest;
import com.iqser.red.service.persistence.service.v1.api.model.multitenancy.TenantResponse;
@ -27,7 +28,11 @@ public class TenantsController implements TenantsResource {
public void createTenant(@Valid @RequestBody TenantRequest tenantRequest) {
tenantManagementService.createTenant(tenantRequest);
try {
tenantManagementService.createTenant(tenantRequest);
} catch (IllegalArgumentException e) {
throw new BadRequestException(e.getMessage(), e);
}
}

View File

@ -36,7 +36,15 @@ import lombok.extern.slf4j.Slf4j;
@EnableConfigurationProperties(LiquibaseProperties.class)
public class TenantManagementService {
private static final Set<String> SQL_CONNECTION_ERROR_CODES = Set.of("08000", "08003", "08006");
private static final Set<String> SQL_CONNECTION_ERROR_CODES = Set.of(
// connection_exception
"08000",
// connection_does_not_exist
"08003",
// connection_failure
"08006",
// invalid_catalog_name
"3D000");
private final EncryptionDecryptionService encryptionService;