RED-4249-As an admin of a dossier template I want to customize the highlighting color of a skipped redaction of an entity
- initialise existing watermark configurations for the new columns - update of tests
This commit is contained in:
parent
889c8f18a8
commit
93d54c0886
@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
|
||||
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.service.persistence.DossierTemplatePersistenceService;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository;
|
||||
@ -52,10 +53,12 @@ public class WatermarkService {
|
||||
if (watermark.getId() != null) { // update
|
||||
watermarkRepository.findById(watermark.getId())
|
||||
.ifPresentOrElse(loadedWatermark -> {
|
||||
validateWatermarkNameIsUnique(watermark.getName(), watermark.getDossierTemplateId(), loadedWatermark.getId());
|
||||
BeanUtils.copyProperties(watermark, loadedWatermark, "dossierTemplateId");
|
||||
var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId());
|
||||
loadedWatermark.setDossierTemplate(dossierTemplate);
|
||||
}, () -> {
|
||||
validateWatermarkNameIsUnique(watermark.getName(), watermark.getDossierTemplateId(), 0);
|
||||
WatermarkEntity watermarkEntity = new WatermarkEntity();
|
||||
BeanUtils.copyProperties(watermark, watermarkEntity, "id");
|
||||
var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId());
|
||||
@ -64,6 +67,7 @@ public class WatermarkService {
|
||||
});
|
||||
return watermarkRepository.findById(watermark.getId()).orElseThrow(() -> new NotFoundException("Watermark Configuration not found"));
|
||||
} else {
|
||||
validateWatermarkNameIsUnique(watermark.getName(), watermark.getDossierTemplateId(), 0);
|
||||
WatermarkEntity watermarkEntity = new WatermarkEntity();
|
||||
BeanUtils.copyProperties(watermark, watermarkEntity, "id");
|
||||
var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId());
|
||||
@ -78,12 +82,23 @@ public class WatermarkService {
|
||||
// if (watermark == null) {
|
||||
// throw new BadRequestException("The watermark may not be null");
|
||||
// }
|
||||
if (StringUtils.isBlank(watermark.getName())) {
|
||||
throw new BadRequestException("The watermaek name must not be null");
|
||||
}
|
||||
if (StringUtils.isNotBlank(watermark.getText()) && !StringUtils.isAsciiPrintable(StringUtils.normalizeSpace(watermark.getText()))) {
|
||||
throw new BadRequestException("The watermark may only contain ASCII characters");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void validateWatermarkNameIsUnique(String watermarkName, String dossierTemplateId, long watermarkId) {
|
||||
getWatermarksForDossierTemplateId(dossierTemplateId).forEach(existing -> {
|
||||
if (existing.getName().equals(watermarkName) && existing.getId() != watermarkId) {
|
||||
throw new ConflictException("Watermark name must be unique within the same dossier template");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public List<WatermarkEntity> getWatermarksForDossierTemplateId(String dossierTemplateId) {
|
||||
return watermarkRepository.findByDossierTemplateId(dossierTemplateId);
|
||||
}
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
-- add the generated id to watermark_configuration table
|
||||
alter table watermark_configuration add column id BIGINT GENERATED ALWAYS AS IDENTITY;
|
||||
alter table watermark_configuration add column name VARCHAR (255), add column enabled BOOLEAN;
|
||||
alter table watermark_configuration add column name VARCHAR (255), add column enabled BOOLEAN DEFAULT TRUE;
|
||||
--initialise the new columns for the current watermark configurations
|
||||
update watermark_configuration set name = 'Watermark ' || id, enabled = true;
|
||||
|
||||
-- update the primary key constraint based on the new configuration and add the foreign key contraints to the dossier and dossier_template tables
|
||||
alter table watermark_configuration drop constraint watermark_configuration_pkey;
|
||||
|
||||
@ -28,14 +28,14 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
try {
|
||||
watermarkClient.getWatermark(Long.valueOf(13));
|
||||
watermarkClient.getWatermark(13L);
|
||||
} catch (FeignException.FeignClientException e) {
|
||||
assertThat(e.status()).isEqualTo(404);
|
||||
}
|
||||
|
||||
Watermark watermark = new Watermark();
|
||||
watermark.setName("watermark name");
|
||||
watermark.setEnabled(true);
|
||||
// watermark.setEnabled(true);
|
||||
watermark.setText("Minions ipsum chasy para tu la bodaaa bananaaaa hana dul sae. Chasy hana dul sae pepete hana dul sae belloo! Tatata bala tu ti aamoo! Jeje.");
|
||||
watermark.setFontSize(12);
|
||||
watermark.setFontType("font");
|
||||
@ -47,12 +47,27 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest {
|
||||
var saved = watermarkClient.createOrUpdateWatermark(watermark);
|
||||
var loadedWatermark = watermarkClient.getWatermark(saved.getId());
|
||||
assertThat(loadedWatermark).isEqualTo(saved);
|
||||
|
||||
watermark.setFontSize(14);
|
||||
saved = watermarkClient.createOrUpdateWatermark(watermark);
|
||||
// update current watermark
|
||||
saved.setFontSize(14);
|
||||
saved = watermarkClient.createOrUpdateWatermark(saved);
|
||||
loadedWatermark = watermarkClient.getWatermark(saved.getId());
|
||||
assertThat(loadedWatermark).isEqualTo(saved);
|
||||
|
||||
var watermarkList = watermarkClient.getWatermarksForDossierTemplateId(dossierTemplate.getId());
|
||||
assertThat(watermarkList.size()).isEqualTo(1);
|
||||
|
||||
// create new watermark with same name:
|
||||
Watermark watermark2 = new Watermark();
|
||||
watermark2.setName("watermark name");
|
||||
watermark2.setOrientation(WatermarkOrientation.DIAGONAL);
|
||||
watermark2.setDossierTemplateId(dossierTemplate.getId());
|
||||
|
||||
try {
|
||||
var saved2 = watermarkClient.createOrUpdateWatermark(watermark2);
|
||||
} catch (FeignException.FeignClientException e) {
|
||||
assertThat(e.status()).isEqualTo(409);
|
||||
}
|
||||
// loadedWatermark = watermarkClient.getWatermark(saved.getId());
|
||||
// Delete first time
|
||||
watermarkClient.deleteWatermark(saved.getId());
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user