RED-5293: 500 for invalid tenant
This commit is contained in:
parent
b4ae9b7137
commit
eaa0a640d5
@ -65,6 +65,12 @@
|
||||
<groupId>com.iqser.red.commons</groupId>
|
||||
<artifactId>jackson-commons</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.validation</groupId>
|
||||
<artifactId>jakarta.validation-api</artifactId>
|
||||
<version>2.0.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package com.iqser.red.service.persistence.service.v1.api.model.multitenancy;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -12,10 +14,13 @@ import lombok.NoArgsConstructor;
|
||||
public class TenantRequest {
|
||||
|
||||
private String tenantId;
|
||||
@NotBlank
|
||||
private String displayName;
|
||||
private String guid;
|
||||
private String jdbcUrl;
|
||||
@NotBlank
|
||||
private String user;
|
||||
@NotBlank
|
||||
private String password;
|
||||
|
||||
}
|
||||
|
||||
@ -7,4 +7,11 @@ public class ConflictException extends RuntimeException {
|
||||
super(message);
|
||||
}
|
||||
|
||||
|
||||
public static ConflictException withObjectName(String objectName) {
|
||||
|
||||
return new ConflictException(String.format("An object of type %s already exists.", objectName));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -2,6 +2,8 @@ package com.iqser.red.service.peristence.v1.server.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -22,7 +24,7 @@ public class TenantsController implements TenantsResource {
|
||||
private final TenantManagementService tenantManagementService;
|
||||
private final DeploymentKeyService deploymentKeyService;
|
||||
|
||||
|
||||
@Valid
|
||||
public void createTenant(@RequestBody TenantRequest tenantRequest) {
|
||||
|
||||
tenantManagementService.createTenant(tenantRequest);
|
||||
|
||||
@ -15,7 +15,6 @@ 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;
|
||||
@ -57,10 +56,6 @@ 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())) {
|
||||
@ -78,7 +73,7 @@ public class TenantManagementService {
|
||||
.build();
|
||||
tenantRepository.save(tenantEntity);
|
||||
} else {
|
||||
throw new ConflictException("Conflict: tenant id already exists.");
|
||||
throw ConflictException.withObjectName("tenant");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user