Pull request #73: enumerated type -> int to string in db
Merge in RED/persistence-service from 3.0-efsa-readiness to master * commit '693a92bf10960a0e4664964a0e1e696792a0df7d': unique constraint fix unique constraint fix enumerated type -> int to string in db
This commit is contained in:
commit
6dea6e1c18
@ -23,6 +23,7 @@ public class IdRemovalEntity {
|
||||
@Column(name = "user_id")
|
||||
private String user;
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private AnnotationStatus status;
|
||||
@Column
|
||||
private boolean removeFromDictionary;
|
||||
|
||||
@ -23,6 +23,7 @@ public class ManualForceRedactionEntity {
|
||||
@Column(name = "user_id")
|
||||
private String user;
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private AnnotationStatus status;
|
||||
@Column(length = 4000)
|
||||
private String legalBasis;
|
||||
|
||||
@ -23,6 +23,7 @@ public class ManualImageRecategorizationEntity {
|
||||
@Column(name = "user_id")
|
||||
private String user;
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private AnnotationStatus status;
|
||||
@Column
|
||||
private String typeId;
|
||||
|
||||
@ -24,6 +24,7 @@ public class ManualLegalBasisChangeEntity {
|
||||
@Column(name = "user_id")
|
||||
private String user;
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private AnnotationStatus status;
|
||||
@Column
|
||||
private String legalBasis;
|
||||
|
||||
@ -33,6 +33,7 @@ public class ManualRedactionEntryEntity {
|
||||
@Column
|
||||
private String legalBasis;
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private AnnotationStatus status;
|
||||
@Column
|
||||
private boolean addToDictionary;
|
||||
|
||||
@ -32,6 +32,7 @@ public class WatermarkEntity {
|
||||
@Column
|
||||
private String fontType;
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private WatermarkOrientation orientation;
|
||||
|
||||
@JsonIgnore
|
||||
|
||||
@ -27,6 +27,7 @@ public class DossierAttributeConfigEntity {
|
||||
private String placeholder;
|
||||
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private DossierAttributeType type = DossierAttributeType.TEXT;
|
||||
|
||||
|
||||
|
||||
@ -52,6 +52,7 @@ public class DossierEntity {
|
||||
|
||||
@Builder.Default
|
||||
@ElementCollection
|
||||
@Enumerated(EnumType.STRING)
|
||||
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||
|
||||
@Column
|
||||
|
||||
@ -27,7 +27,7 @@ public class DossierTemplateEntity {
|
||||
@Id
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Column(unique = true)
|
||||
private String name;
|
||||
|
||||
@Column(length = 4000)
|
||||
@ -55,6 +55,7 @@ public class DossierTemplateEntity {
|
||||
private boolean deleted;
|
||||
|
||||
@ElementCollection
|
||||
@Enumerated(EnumType.STRING)
|
||||
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||
|
||||
@JsonIgnore
|
||||
|
||||
@ -34,6 +34,7 @@ public class FileAttributeConfigEntity {
|
||||
@Column
|
||||
private String placeholder;
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private FileAttributeType type = FileAttributeType.TEXT;
|
||||
|
||||
@ManyToOne
|
||||
|
||||
@ -29,9 +29,11 @@ public class FileEntity {
|
||||
private String filename;
|
||||
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private FileStatus status;
|
||||
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private FileStatus lastSuccessfulStatus;
|
||||
|
||||
@Column
|
||||
|
||||
@ -31,6 +31,7 @@ public class DownloadStatusEntity {
|
||||
@Column
|
||||
private String mimeType;
|
||||
@Column
|
||||
@Enumerated(EnumType.STRING)
|
||||
private DownloadStatusValue status;
|
||||
@Column
|
||||
private OffsetDateTime creationDate;
|
||||
@ -46,6 +47,7 @@ public class DownloadStatusEntity {
|
||||
private List<FileEntity> files = new ArrayList<>();
|
||||
|
||||
@ElementCollection
|
||||
@Enumerated(EnumType.STRING)
|
||||
private List<DownloadFileType> downloadFileTypes = new ArrayList<>();
|
||||
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,11 +29,11 @@ public class DossierTesterAndProvider {
|
||||
return provideTestDossier(testTemplate, "Dossier1");
|
||||
}
|
||||
|
||||
public Dossier provideTestDossier(DossierTemplate testTemplate, String filename) {
|
||||
public Dossier provideTestDossier(DossierTemplate testTemplate, String dossierName) {
|
||||
CreateOrUpdateDossierRequest cru = new CreateOrUpdateDossierRequest();
|
||||
cru.setDownloadFileTypes(Sets.newHashSet(DownloadFileType.ORIGINAL));
|
||||
cru.setDossierName(filename);
|
||||
cru.setDescription(filename);
|
||||
cru.setDossierName(dossierName);
|
||||
cru.setDescription(dossierName);
|
||||
cru.setWatermarkEnabled(true);
|
||||
cru.setMemberIds(Sets.newHashSet("1"));
|
||||
cru.setOwnerId("1");
|
||||
@ -45,7 +45,7 @@ public class DossierTesterAndProvider {
|
||||
|
||||
Dossier result = dossierClient.addDossier(cru);
|
||||
|
||||
assertThat(result.getDossierName()).isEqualTo(filename);
|
||||
assertThat(result.getDossierName()).isEqualTo(dossierName);
|
||||
|
||||
Dossier loadedDossier = dossierClient.getDossierById(result.getId(),false);
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DossierStatsClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.FileClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
@ -22,6 +23,9 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
public class DossierStatsTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
private static final int NUMBER_PAGES_ANALYZED = 5;
|
||||
@Autowired
|
||||
private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider;
|
||||
|
||||
@Autowired
|
||||
private DossierTesterAndProvider dossierTesterAndProvider;
|
||||
|
||||
@ -40,7 +44,8 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
@Before
|
||||
public void setupData() {
|
||||
dossier1 = dossierTesterAndProvider.provideTestDossier();
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
dossier1 = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
|
||||
//provides 2 files
|
||||
var file1 = fileTesterAndProvider.testAndProvideFile(dossier1, "file1");
|
||||
var file2 = fileTesterAndProvider.testAndProvideFile(dossier1, "file2");
|
||||
@ -66,7 +71,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest {
|
||||
});
|
||||
|
||||
// second dossier
|
||||
dossier2 = dossierTesterAndProvider.provideTestDossier("Dossier2");
|
||||
dossier2 = dossierTesterAndProvider.provideTestDossier(dossierTemplate,"Dossier2");
|
||||
var file3 = fileTesterAndProvider.testAndProvideFile(dossier2, "file3");
|
||||
var file4 = fileTesterAndProvider.testAndProvideFile(dossier2, "file4");
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -69,7 +69,7 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
|
||||
|
||||
var file = fileTesterAndProvider.testAndProvideFile(dossier);
|
||||
|
||||
|
||||
@ -78,7 +78,7 @@ public class TypeTest extends AbstractPersistenceServerServiceTest {
|
||||
assertThat(typesForTemplate).isEmpty();
|
||||
|
||||
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate);
|
||||
var dossierType = typeProvider.testAndProvideType(dossierTemplate, dossier, "dossier-dict");
|
||||
|
||||
var typesForDossier = dictionaryClient.getAllTypesForDossier(dossierType.getDossierId());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user