unique constraint fix
This commit is contained in:
parent
7bd8214a32
commit
0a6dc82e63
@ -27,7 +27,7 @@ public class DossierTemplateEntity {
|
||||
@Id
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Column(unique = true)
|
||||
private String name;
|
||||
|
||||
@Column(length = 4000)
|
||||
|
||||
@ -6,7 +6,9 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.postgresql.util.PSQLException;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
@ -55,4 +57,15 @@ public class ControllerAdvice {
|
||||
public ErrorMessage handleIBadRequestException(BadRequestException e) {
|
||||
return new ErrorMessage(OffsetDateTime.now(), e.getMessage());
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@ExceptionHandler(value = PSQLException.class)
|
||||
public ResponseEntity<ErrorMessage> handleSQLException(PSQLException e) {
|
||||
if (e.getMessage().contains("violates unique constraint")) {
|
||||
return new ResponseEntity<>(new ErrorMessage(OffsetDateTime.now(), "Unique constraint violation"), HttpStatus.CONFLICT);
|
||||
} else {
|
||||
log.error("PLSQL Exception occurred: {}", e.getMessage(), e);
|
||||
return new ResponseEntity<>(new ErrorMessage(OffsetDateTime.now(), "SQL Exception"), HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,7 @@ import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemp
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest;
|
||||
import feign.FeignException;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -21,9 +22,13 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
@Test
|
||||
public void testDossierTemplate() {
|
||||
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
try {
|
||||
dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
} catch (FeignException e) {
|
||||
assertThat(e.status()).isEqualTo(409);
|
||||
}
|
||||
|
||||
var allTemplates = dossierTemplateClient.getAllDossierTemplates();
|
||||
assertThat(allTemplates.size()).isEqualTo(1);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user