RED-4249-When I edit or create a dossier as an owner I want to select from multiple watermark configurations
- add columns id, name and enabled to watermark entity, - removed watermarkEnabled and watermarkPreviewEnabled and added new dependencies to watermark_configuration - updated tests
This commit is contained in:
parent
c149b67990
commit
ab5f644d33
@ -1,5 +1,6 @@
|
||||
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -11,6 +12,9 @@ import lombok.NoArgsConstructor;
|
||||
@AllArgsConstructor
|
||||
public class Watermark {
|
||||
|
||||
private Long id;
|
||||
private String name;
|
||||
private boolean enabled;
|
||||
private String dossierTemplateId;
|
||||
private String text;
|
||||
private String hexColor;
|
||||
@ -19,5 +23,4 @@ public class Watermark {
|
||||
private String fontType;
|
||||
private WatermarkOrientation orientation;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -33,10 +33,6 @@ public class CreateOrUpdateDossierRequest {
|
||||
@Builder.Default
|
||||
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||
|
||||
private boolean watermarkEnabled;
|
||||
|
||||
private boolean watermarkPreviewEnabled;
|
||||
|
||||
private OffsetDateTime dueDate;
|
||||
|
||||
private String dossierTemplateId;
|
||||
@ -48,4 +44,7 @@ public class CreateOrUpdateDossierRequest {
|
||||
|
||||
private String dossierStatusId;
|
||||
|
||||
private Long watermarkId;
|
||||
private Long previewWatermarkId;
|
||||
|
||||
}
|
||||
|
||||
@ -27,8 +27,8 @@ public class Dossier {
|
||||
private Set<String> approverIds = new HashSet<>();
|
||||
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||
private Set<String> reportTemplateIds = new HashSet<>();
|
||||
private boolean watermarkEnabled;
|
||||
private boolean watermarkPreviewEnabled;
|
||||
private Long watermarkId;
|
||||
private Long previewWatermarkId;
|
||||
private OffsetDateTime softDeletedTime;
|
||||
private OffsetDateTime hardDeletedTime;
|
||||
private OffsetDateTime startDate;
|
||||
|
||||
@ -9,18 +9,18 @@ import org.springframework.web.bind.annotation.*;
|
||||
public interface WatermarkResource {
|
||||
|
||||
String WATERMARK_PATH = "/watermark";
|
||||
String DOSSIER_TEMPLATE_PARAMETER_NAME = "dossierTemplateId";
|
||||
String DOSSIER_TEMPLATE_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_PARAMETER_NAME + "}";
|
||||
String WATERMARK_ID_PARAMETER_NAME = "watermarkId";
|
||||
String WATERMARK_ID_PATH_VARIABLE = "/{" + WATERMARK_ID_PARAMETER_NAME + "}";
|
||||
|
||||
@ResponseStatus(HttpStatus.CREATED)
|
||||
@PostMapping(value = WATERMARK_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
Watermark saveWatermark(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Watermark watermark);
|
||||
@PostMapping(value = WATERMARK_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
Watermark createOrUpdateWatermark(@RequestBody Watermark watermark);
|
||||
|
||||
@GetMapping(value = WATERMARK_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
Watermark getWatermark(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||
@GetMapping(value = WATERMARK_PATH + WATERMARK_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
Watermark getWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) Long watermarkId);
|
||||
|
||||
@ResponseStatus(HttpStatus.NO_CONTENT)
|
||||
@DeleteMapping(value = WATERMARK_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE)
|
||||
void deleteWatermark(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId);
|
||||
@DeleteMapping(value = WATERMARK_PATH + WATERMARK_ID_PATH_VARIABLE)
|
||||
void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) Long watermarkId);
|
||||
|
||||
}
|
||||
|
||||
@ -22,7 +22,13 @@ import javax.persistence.*;
|
||||
public class WatermarkEntity {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private long id;
|
||||
@Column
|
||||
private String name;
|
||||
@Column
|
||||
private boolean enabled;
|
||||
@Column(updatable = false, insertable = false, name = "dossier_template_id")
|
||||
private String dossierTemplateId;
|
||||
@Column(length = 4000)
|
||||
private String text;
|
||||
@ -39,9 +45,8 @@ public class WatermarkEntity {
|
||||
@Enumerated(EnumType.STRING)
|
||||
private WatermarkOrientation orientation;
|
||||
|
||||
@OneToOne(fetch = FetchType.LAZY)
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "dossier_template_id")
|
||||
private DossierTemplateEntity dossierTemplate;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.JSONDownloadFileTypeConverter;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.JSONStringSetConverter;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType;
|
||||
@ -59,12 +60,6 @@ public class DossierEntity {
|
||||
@Convert(converter = JSONDownloadFileTypeConverter.class)
|
||||
private Set<DownloadFileType> downloadFileTypes = new HashSet<>();
|
||||
|
||||
@Column
|
||||
private boolean watermarkEnabled;
|
||||
|
||||
@Column
|
||||
private boolean watermarkPreviewEnabled;
|
||||
|
||||
@Column
|
||||
private OffsetDateTime softDeletedTime;
|
||||
|
||||
@ -113,6 +108,18 @@ public class DossierEntity {
|
||||
@Column(updatable = false, insertable = false, name = "dossier_status_id")
|
||||
private String dossierStatusId;
|
||||
|
||||
@Column(updatable = false, insertable = false, name = "watermark_id")
|
||||
private Long watermarkId;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
private WatermarkEntity watermark;
|
||||
|
||||
@Column(updatable = false, insertable = false, name = "preview_watermark_id")
|
||||
private Long previewWatermarkId;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
private WatermarkEntity previewWatermark;
|
||||
|
||||
public boolean isDeleted() {
|
||||
return softDeletedTime != null || hardDeletedTime != null;
|
||||
}
|
||||
|
||||
@ -8,8 +8,8 @@ import java.util.Set;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.utils.JSONDownloadFileTypeConverter;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType;
|
||||
@ -89,6 +89,11 @@ public class DossierTemplateEntity {
|
||||
@OneToMany(mappedBy = "dossierTemplate")
|
||||
private List<DossierStatusEntity> dossierStatusList = new ArrayList<>();
|
||||
|
||||
@Builder.Default
|
||||
@Fetch(FetchMode.SUBSELECT)
|
||||
@OneToMany(mappedBy = "dossierTemplate")
|
||||
private List<WatermarkEntity> watermarkConfigs = new ArrayList<>();
|
||||
|
||||
@Transient
|
||||
private DossierTemplateStatus dossierTemplateStatus;
|
||||
|
||||
|
||||
@ -3,7 +3,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity;
|
||||
@ -45,7 +44,6 @@ public class DossierTemplateCloneService {
|
||||
private final EntryPersistenceService entryPersistenceService;
|
||||
private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService;
|
||||
private final ReportTemplatePersistenceService reportTemplatePersistenceService;
|
||||
private final WatermarkService watermarkService;
|
||||
private final ColorsService colorsService;
|
||||
private final StorageService storageService;
|
||||
private final DossierStatusPersistenceService dossierStatusPersistenceService;
|
||||
@ -93,9 +91,6 @@ public class DossierTemplateCloneService {
|
||||
//set report templates
|
||||
cloneReportTemplates(dossierTemplate, clonedDossierTemplate.getId());
|
||||
|
||||
//set watermarks
|
||||
cloneWatermark(dossierTemplate.getId(), clonedDossierTemplate.getId());
|
||||
|
||||
//set colors
|
||||
cloneColors(dossierTemplate.getId(), clonedDossierTemplate.getId());
|
||||
|
||||
@ -205,27 +200,6 @@ public class DossierTemplateCloneService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void cloneWatermark(String dossierTemplateId, String clonedDossierTemplateId) {
|
||||
|
||||
try {
|
||||
var watermark = watermarkService.getWatermark(dossierTemplateId);
|
||||
WatermarkEntity we = WatermarkEntity.builder()
|
||||
.dossierTemplateId(clonedDossierTemplateId)
|
||||
.text(watermark.getText())
|
||||
.hexColor(watermark.getHexColor())
|
||||
.opacity(watermark.getOpacity())
|
||||
.fontType(watermark.getFontType())
|
||||
.fontSize(watermark.getFontSize())
|
||||
.orientation(watermark.getOrientation())
|
||||
.build();
|
||||
watermarkService.saveWatermark(clonedDossierTemplateId, we);
|
||||
} catch (NotFoundException e) {
|
||||
log.debug("No watermark config found for cloning {}", dossierTemplateId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void cloneColors(String dossierTemplateId, String clonedDossierTemplateId) {
|
||||
|
||||
var colors = colorsService.getColors(dossierTemplateId);
|
||||
|
||||
@ -2,9 +2,11 @@ package com.iqser.red.service.persistence.management.v1.processor.service;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
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;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.dao.EmptyResultDataAccessException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
|
||||
@ -15,50 +17,70 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class WatermarkService {
|
||||
|
||||
private final WatermarkRepository watermarkRepository;
|
||||
private final DossierRepository dossierRepository;
|
||||
private final DossierTemplatePersistenceService dossierTemplatePersistenceService;
|
||||
|
||||
|
||||
public void deleteWatermark(String dossierTemplateId) {
|
||||
try {
|
||||
watermarkRepository.deleteById(dossierTemplateId);
|
||||
} catch (EmptyResultDataAccessException e) {
|
||||
log.info("Watermark for dossierTemplateId '{}' was already deleted.", dossierTemplateId);
|
||||
}
|
||||
@Transactional
|
||||
public void deleteWatermark(Long watermarkId) {
|
||||
watermarkRepository.findById(watermarkId).ifPresentOrElse(loadedWatermark -> {
|
||||
dossierRepository.countDeleteWatermark(watermarkId);
|
||||
dossierRepository.countDeletePreviewWatermark(watermarkId);
|
||||
watermarkRepository.deleteById(watermarkId);
|
||||
}, () -> {
|
||||
log.debug("Watermark with id '{}' was already deleted.", watermarkId);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public WatermarkEntity getWatermark(String dossierTemplateId) {
|
||||
public WatermarkEntity getWatermark(Long watermarkId) {
|
||||
|
||||
return watermarkRepository.findById(dossierTemplateId)
|
||||
return watermarkRepository.findById(watermarkId)
|
||||
.orElseThrow(() -> new NotFoundException("Watermark Configuration not found"));
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
public WatermarkEntity saveWatermark(String dossierTemplateId, WatermarkEntity watermark) {
|
||||
public WatermarkEntity createOrUpdateWatermark(Watermark watermark) {
|
||||
|
||||
validateWatermark(watermark);
|
||||
watermarkRepository.findById(dossierTemplateId)
|
||||
.ifPresentOrElse(loadedWatermark -> BeanUtils.copyProperties(watermark, loadedWatermark, "dossierTemplateId"), () -> {
|
||||
watermark.setDossierTemplateId(dossierTemplateId);
|
||||
watermarkRepository.save(watermark);
|
||||
});
|
||||
|
||||
return watermarkRepository.findById(dossierTemplateId)
|
||||
.orElseThrow(() -> new NotFoundException("Watermark not found"));
|
||||
if (watermark.getId() != null) { // update
|
||||
watermarkRepository.findById(watermark.getId())
|
||||
.ifPresentOrElse(loadedWatermark -> {
|
||||
BeanUtils.copyProperties(watermark, loadedWatermark, "dossierTemplateId");
|
||||
var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId());
|
||||
loadedWatermark.setDossierTemplate(dossierTemplate);
|
||||
}, () -> {
|
||||
WatermarkEntity watermarkEntity = new WatermarkEntity();
|
||||
BeanUtils.copyProperties(watermark, watermarkEntity, "id");
|
||||
var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId());
|
||||
watermarkEntity.setDossierTemplate(dossierTemplate);
|
||||
watermarkRepository.save(watermarkEntity);
|
||||
});
|
||||
return watermarkRepository.findById(watermark.getId()).orElseThrow(() -> new NotFoundException("Watermark Configuration not found"));
|
||||
} else {
|
||||
WatermarkEntity watermarkEntity = new WatermarkEntity();
|
||||
BeanUtils.copyProperties(watermark, watermarkEntity, "id");
|
||||
var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId());
|
||||
watermarkEntity.setDossierTemplate(dossierTemplate);
|
||||
return watermarkRepository.save(watermarkEntity);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void validateWatermark(WatermarkEntity watermark) {
|
||||
private void validateWatermark(Watermark watermark) {
|
||||
|
||||
if (watermark == null) {
|
||||
throw new BadRequestException("The watermark may not be null");
|
||||
}
|
||||
// if (watermark == null) {
|
||||
// throw new BadRequestException("The watermark may not be null");
|
||||
// }
|
||||
if (StringUtils.isNotBlank(watermark.getText()) && !StringUtils.isAsciiPrintable(StringUtils.normalizeSpace(watermark.getText()))) {
|
||||
throw new BadRequestException("The watermark may only contain ASCII characters");
|
||||
}
|
||||
|
||||
@ -12,6 +12,8 @@ import java.util.stream.Collectors;
|
||||
|
||||
import javax.transaction.Transactional;
|
||||
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -29,6 +31,7 @@ import lombok.RequiredArgsConstructor;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class DossierPersistenceService {
|
||||
|
||||
|
||||
@ -37,6 +40,7 @@ public class DossierPersistenceService {
|
||||
private final DossierTemplateRepository dossierTemplateRepository;
|
||||
private final ReportTemplateRepository reportTemplateRepository;
|
||||
private final DossierStatusPersistenceService dossierStatusPersistenceService;
|
||||
private final WatermarkService watermarkService;
|
||||
|
||||
|
||||
public DossierEntity insert(CreateOrUpdateDossierRequest createOrUpdateDossierRequest) {
|
||||
@ -51,7 +55,7 @@ public class DossierPersistenceService {
|
||||
reportTemplates.forEach(r -> r.getDossiers().add(dossier));
|
||||
dossier.setReportTemplates(reportTemplates);
|
||||
this.handleDossierStatus(createOrUpdateDossierRequest, dossier);
|
||||
|
||||
this.handleWatermark(createOrUpdateDossierRequest, dossier);
|
||||
return dossierRepository.save(dossier);
|
||||
|
||||
|
||||
@ -75,6 +79,7 @@ public class DossierPersistenceService {
|
||||
});
|
||||
dossier.setReportTemplates(reportTemplates);
|
||||
this.handleDossierStatus(createOrUpdateDossierRequest, dossier);
|
||||
this.handleWatermark(createOrUpdateDossierRequest, dossier);
|
||||
});
|
||||
|
||||
}
|
||||
@ -92,6 +97,29 @@ public class DossierPersistenceService {
|
||||
}
|
||||
}
|
||||
|
||||
private void handleWatermark(CreateOrUpdateDossierRequest createOrUpdateDossierRequest, DossierEntity dossier) {
|
||||
if (createOrUpdateDossierRequest.getWatermarkId() != null) {
|
||||
var watermarkEntity = watermarkService.getWatermark(createOrUpdateDossierRequest.getWatermarkId());
|
||||
if (watermarkEntity.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) {
|
||||
dossier.setWatermark(watermarkEntity);
|
||||
} else {
|
||||
log.debug("Invalid watermark id");
|
||||
}
|
||||
} else {
|
||||
dossier.setWatermark(null);
|
||||
}
|
||||
if (createOrUpdateDossierRequest.getPreviewWatermarkId() != null) {
|
||||
var previewWatermarkEntity = watermarkService.getWatermark(createOrUpdateDossierRequest.getPreviewWatermarkId());
|
||||
if (previewWatermarkEntity.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) {
|
||||
dossier.setPreviewWatermark(previewWatermarkEntity);
|
||||
} else {
|
||||
log.debug("Invalid preview watermark id");
|
||||
}
|
||||
} else {
|
||||
dossier.setPreviewWatermark(null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public DossierEntity getActiveOrArchivedDossier(String dossierId) {
|
||||
|
||||
|
||||
@ -58,4 +58,12 @@ public interface DossierRepository extends JpaRepository<DossierEntity, String>
|
||||
|
||||
@Query("select d from DossierEntity d where d.dossierTemplateId = :dossierTemplateId")
|
||||
List<DossierEntity> findByDossierTemplateId(String dossierTemplateId);
|
||||
|
||||
@Modifying
|
||||
@Query("update DossierEntity d set d.watermarkId = null where d.watermarkId = :watermarkId")
|
||||
int countDeleteWatermark(Long watermarkId);
|
||||
|
||||
@Modifying
|
||||
@Query("update DossierEntity d set d.previewWatermarkId = null where d.previewWatermarkId = :previewWatermarkId")
|
||||
int countDeletePreviewWatermark(Long previewWatermarkId);
|
||||
}
|
||||
|
||||
@ -3,5 +3,5 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface WatermarkRepository extends JpaRepository<WatermarkEntity, String> {
|
||||
public interface WatermarkRepository extends JpaRepository<WatermarkEntity, Long> {
|
||||
}
|
||||
|
||||
@ -17,16 +17,16 @@ public class WatermarkController implements WatermarkResource {
|
||||
private final WatermarkService watermarkService;
|
||||
|
||||
|
||||
public Watermark saveWatermark(String dossierTemplateId, @RequestBody Watermark watermark) {
|
||||
return convert(watermarkService.saveWatermark(dossierTemplateId, convert(watermark, WatermarkEntity.class)), Watermark.class);
|
||||
public Watermark createOrUpdateWatermark(@RequestBody Watermark watermark) {
|
||||
return convert(watermarkService.createOrUpdateWatermark(watermark), Watermark.class);
|
||||
}
|
||||
|
||||
public Watermark getWatermark(String dossierTemplateId) {
|
||||
return convert(watermarkService.getWatermark(dossierTemplateId), Watermark.class);
|
||||
public Watermark getWatermark(Long watermarkId) {
|
||||
return convert(watermarkService.getWatermark(watermarkId), Watermark.class);
|
||||
}
|
||||
|
||||
public void deleteWatermark(String dossierTemplateId) {
|
||||
watermarkService.deleteWatermark(dossierTemplateId);
|
||||
public void deleteWatermark(Long watermarkId) {
|
||||
watermarkService.deleteWatermark(watermarkId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -88,15 +88,15 @@ public class DownloadPreparationService {
|
||||
}
|
||||
if (downloadFileType.name().equals(DownloadFileType.PREVIEW.name())) {
|
||||
fileSystemBackedArchiver.addEntry(new FileSystemBackedArchiver.ArchiveModel("Preview", addSuffix(fileStatus.getFilename(), "highlighted"),
|
||||
getPreview(dossier.getId(), fileId, redactionLog, dossier.getDossierTemplateId(), dossier.isWatermarkPreviewEnabled())));
|
||||
getPreview(dossier.getId(), fileId, redactionLog, dossier.getDossierTemplateId(), dossier.getPreviewWatermarkId())));
|
||||
}
|
||||
if (downloadFileType.name().equals(DownloadFileType.DELTA_PREVIEW.name())) {
|
||||
fileSystemBackedArchiver.addEntry(new FileSystemBackedArchiver.ArchiveModel("Delta Preview", addSuffix(fileStatus.getFilename(), "delta_highlighted"),
|
||||
getDeltaPreview(dossier.getId(), fileId, redactionLog, dossier.getDossierTemplateId(), dossier.isWatermarkPreviewEnabled())));
|
||||
getDeltaPreview(dossier.getId(), fileId, redactionLog, dossier.getDossierTemplateId(), dossier.getPreviewWatermarkId())));
|
||||
}
|
||||
if (downloadFileType.name().equals(DownloadFileType.REDACTED.name())) {
|
||||
fileSystemBackedArchiver.addEntry(new FileSystemBackedArchiver.ArchiveModel("Redacted", addSuffix(fileStatus.getFilename(), "redacted"),
|
||||
getRedacted(dossier.getId(), fileId, redactionLog, dossier.getDossierTemplateId(), dossier.isWatermarkEnabled())));
|
||||
getRedacted(dossier.getId(), fileId, redactionLog, dossier.getDossierTemplateId(), dossier.getWatermarkId())));
|
||||
}
|
||||
}
|
||||
log.info("Successfully added file {}/{} for downloadId {}, took {}", i, fileIds
|
||||
@ -173,38 +173,38 @@ public class DownloadPreparationService {
|
||||
}
|
||||
|
||||
private byte[] getRedacted(String dossierId, String fileId, RedactionLog redactionLog, String dossierTemplateId,
|
||||
boolean watermarkEnabled) {
|
||||
Long watermarkId) {
|
||||
|
||||
return pdfTronRedactionClient.redact(RedactionRequest.builder()
|
||||
.dossierId(dossierId)
|
||||
.fileId(fileId)
|
||||
.dossierTemplateId(dossierTemplateId)
|
||||
.redactionLog(redactionLog)
|
||||
.applyWatermark(watermarkEnabled)
|
||||
.watermarkId(watermarkId)
|
||||
.build()).getDocument();
|
||||
}
|
||||
|
||||
|
||||
private byte[] getPreview(String dossierId, String fileId, RedactionLog redactionLog, String dossierTemplateId, boolean watermarkEnabled) {
|
||||
private byte[] getPreview(String dossierId, String fileId, RedactionLog redactionLog, String dossierTemplateId, Long watermarkId) {
|
||||
|
||||
return pdfTronRedactionClient.redactionPreview(RedactionRequest.builder()
|
||||
.dossierId(dossierId)
|
||||
.fileId(fileId)
|
||||
.dossierTemplateId(dossierTemplateId)
|
||||
.redactionLog(redactionLog)
|
||||
.applyWatermark(watermarkEnabled)
|
||||
.watermarkId(watermarkId)
|
||||
.build()).getDocument();
|
||||
}
|
||||
|
||||
|
||||
private byte[] getDeltaPreview(String dossierId, String fileId, RedactionLog redactionLog, String dossierTemplateId, boolean watermarkEnabled) {
|
||||
private byte[] getDeltaPreview(String dossierId, String fileId, RedactionLog redactionLog, String dossierTemplateId, Long watermarkId) {
|
||||
|
||||
return pdfTronRedactionClient.redactionPreviewDiff(RedactionRequest.builder()
|
||||
.dossierId(dossierId)
|
||||
.fileId(fileId)
|
||||
.dossierTemplateId(dossierTemplateId)
|
||||
.redactionLog(redactionLog)
|
||||
.applyWatermark(watermarkEnabled)
|
||||
.watermarkId(watermarkId)
|
||||
.build()).getDocument();
|
||||
}
|
||||
|
||||
|
||||
@ -73,3 +73,5 @@ databaseChangeLog:
|
||||
file: db/changelog/sql/30-change-bigint-to-serial.sql
|
||||
- include:
|
||||
file: db/changelog/31-add-file-size-column.changelog.yaml
|
||||
- include:
|
||||
file: db/changelog/sql/31-watermark-configuration.sql
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
-- 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;
|
||||
|
||||
-- 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;
|
||||
alter table watermark_configuration add constraint watermark_configuration_pkey PRIMARY KEY (id);
|
||||
delete from watermark_configuration where dossier_template_id not in ( select id from dossier_template );
|
||||
alter table watermark_configuration add constraint watermark_dossier_template_id_fk FOREIGN KEY (dossier_template_id) REFERENCES dossier_template (id);
|
||||
-- add the link to watermark_configuration to dossier table and the foreign key contraints
|
||||
alter table dossier add column watermark_id BIGINT;
|
||||
alter table dossier add column preview_watermark_id BIGINT;
|
||||
alter table dossier add constraint watermark_id_fk FOREIGN KEY (watermark_id) REFERENCES watermark_configuration (id);
|
||||
alter table dossier add constraint preview_watermark_id_fk FOREIGN KEY (preview_watermark_id) REFERENCES watermark_configuration (id);
|
||||
-- update the dossier table with the corresponding watermark based on the dossier template given
|
||||
update dossier d set watermark_id = (select id from watermark_configuration w where w.dossier_template_id = d.dossier_template_id) where d.watermark_enabled = true;
|
||||
update dossier d set preview_watermark_id = (select id from watermark_configuration w where w.dossier_template_id = d.dossier_template_id) where d.watermark_preview_enabled = true;
|
||||
-- remove the previous columns, not needed anymore
|
||||
alter table dossier drop column watermark_enabled;
|
||||
alter table dossier drop column watermark_preview_enabled;
|
||||
@ -54,7 +54,6 @@ public class DossierTesterAndProvider {
|
||||
if (dossierStatus != null) {
|
||||
cru.setDossierStatusId(dossierStatus.getId());
|
||||
}
|
||||
cru.setWatermarkEnabled(true);
|
||||
cru.setMemberIds(Sets.newHashSet("1"));
|
||||
cru.setOwnerId("1");
|
||||
cru.setApproverIds(Sets.newHashSet("1"));
|
||||
|
||||
@ -207,15 +207,6 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
.activeByDefault(true)
|
||||
.multiFileReport(false)
|
||||
.build());
|
||||
watermarkClient.saveWatermark(dossierTemplate.getId(), Watermark.builder()
|
||||
.dossierTemplateId(dossierTemplate.getId())
|
||||
.fontSize(10)
|
||||
.fontType("Arial")
|
||||
.text("watermark")
|
||||
.hexColor("#123456")
|
||||
.opacity(1)
|
||||
.orientation(WatermarkOrientation.HORIZONTAL)
|
||||
.build());
|
||||
var col = Colors.builder()
|
||||
.analysisColor("#111111")
|
||||
.defaultColor("#222222")
|
||||
@ -268,7 +259,6 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
|
||||
assertThat(reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId())
|
||||
.get(0)
|
||||
.getFileName()).isEqualTo(reportTemplateClient.getAvailableReportTemplates(clonedDT.getId()).get(0).getFileName());
|
||||
assertThat(watermarkClient.getWatermark(dossierTemplate.getId()).getText()).isEqualTo(watermarkClient.getWatermark(clonedDT.getId()).getText());
|
||||
assertThat(dictionaryClient.getColors(dossierTemplate.getId()).getRequestAdd()).isEqualTo(dictionaryClient.getColors(clonedDT.getId()).getRequestAdd());
|
||||
assertThat(dictionaryClient.getAllTypesForDossierTemplate(dossierTemplate.getId(), false)
|
||||
.get(0)
|
||||
|
||||
@ -7,6 +7,9 @@ import java.time.OffsetDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkClient;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.WatermarkOrientation;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -44,6 +47,9 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
@Autowired
|
||||
private DossierStatusClient dossierStatusClient;
|
||||
|
||||
@Autowired
|
||||
private WatermarkClient watermarkClient;
|
||||
|
||||
@Test
|
||||
public void testDossier() {
|
||||
|
||||
@ -51,6 +57,15 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||
|
||||
Watermark watermark = new Watermark();
|
||||
watermark.setName("watermark name");
|
||||
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.setOrientation(WatermarkOrientation.DIAGONAL);
|
||||
watermark.setDossierTemplateId(dossier.getDossierTemplateId());
|
||||
|
||||
var watermarkConfig = watermarkClient.createOrUpdateWatermark(watermark);
|
||||
|
||||
var allDossiers = dossierClient.getAllDossiers(false, false);
|
||||
assertThat(allDossiers.size()).isEqualTo(1);
|
||||
assertThat(allDossiers.get(0)).isEqualTo(dossier);
|
||||
@ -61,10 +76,10 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
// update
|
||||
CreateOrUpdateDossierRequest cru = new CreateOrUpdateDossierRequest();
|
||||
cru.setDossierTemplateId(dossier.getId());
|
||||
cru.setWatermarkPreviewEnabled(true);
|
||||
cru.setWatermarkId(watermarkConfig.getId());
|
||||
BeanUtils.copyProperties(dossier, cru);
|
||||
cru.setDossierName("Dossier 1 Update");
|
||||
cru.setWatermarkPreviewEnabled(true);
|
||||
cru.setPreviewWatermarkId(watermarkConfig.getId());
|
||||
// Create dossier status
|
||||
CreateOrUpdateDossierStatusRequest crudsr = new CreateOrUpdateDossierStatusRequest();
|
||||
crudsr.setName("name1");
|
||||
@ -78,7 +93,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
var updated = dossierClient.updateDossier(cru, dossier.getId());
|
||||
assertThat(updated.getDossierName()).isEqualTo("Dossier 1 Update");
|
||||
assertThat(updated.isWatermarkPreviewEnabled()).isEqualTo(true);
|
||||
assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId());
|
||||
assertThat(updated.getDossierStatusId()).isEqualTo(loadedDossierStatus.getId());
|
||||
|
||||
// put dossier status to null
|
||||
@ -232,7 +247,17 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
@Test
|
||||
public void testDossierWithReportTemplates() {
|
||||
|
||||
|
||||
var dossier = dossierTesterAndProvider.provideTestDossier();
|
||||
Watermark watermark = new Watermark();
|
||||
watermark.setName("watermark name");
|
||||
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.setOrientation(WatermarkOrientation.DIAGONAL);
|
||||
watermark.setDossierTemplateId(dossier.getDossierTemplateId());
|
||||
|
||||
var watermarkConfig = watermarkClient.createOrUpdateWatermark(watermark);
|
||||
|
||||
String dossierName = "Dossier 1 Update";
|
||||
|
||||
var allDossiers = dossierClient.getAllDossiers(false, false);
|
||||
@ -246,12 +271,12 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
cru.setDossierTemplateId(dossier.getId());
|
||||
BeanUtils.copyProperties(dossier, cru);
|
||||
cru.setDossierName(dossierName);
|
||||
cru.setWatermarkPreviewEnabled(true);
|
||||
cru.setPreviewWatermarkId(watermarkConfig.getId());
|
||||
cru.setReportTemplateIds(List.of(availableTemplates.get(0).getTemplateId(), "id-does-not-exist-1", "id-does-not-exist-2"));
|
||||
|
||||
var updated = dossierClient.updateDossier(cru, dossier.getId());
|
||||
assertThat(updated.getDossierName()).isEqualTo(dossierName);
|
||||
assertThat(updated.isWatermarkPreviewEnabled()).isEqualTo(true);
|
||||
assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId());
|
||||
assertThat(updated.getReportTemplateIds().size()).isEqualTo(1);
|
||||
assertThat(updated.getReportTemplateIds()).contains(availableTemplates.get(0).getTemplateId());
|
||||
|
||||
@ -270,12 +295,12 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
cru.setDossierTemplateId(dossier.getId());
|
||||
BeanUtils.copyProperties(dossier, cru);
|
||||
cru.setDossierName(dossierName);
|
||||
cru.setWatermarkPreviewEnabled(true);
|
||||
cru.setPreviewWatermarkId(watermarkConfig.getId());
|
||||
cru.setReportTemplateIds(List.of(availableTemplates.get(0).getTemplateId(), availableTemplates.get(1).getTemplateId()));
|
||||
|
||||
updated = dossierClient.updateDossier(cru, dossier.getId());
|
||||
assertThat(updated.getDossierName()).isEqualTo(dossierName);
|
||||
assertThat(updated.isWatermarkPreviewEnabled()).isEqualTo(true);
|
||||
assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId());
|
||||
assertThat(updated.getReportTemplateIds().size()).isEqualTo(2);
|
||||
assertThat(updated.getReportTemplateIds()).contains(availableTemplates.get(0).getTemplateId(), availableTemplates.get(1).getTemplateId());
|
||||
|
||||
@ -290,12 +315,12 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
cru.setDossierTemplateId(dossier.getId());
|
||||
BeanUtils.copyProperties(dossier, cru);
|
||||
cru.setDossierName(dossierName);
|
||||
cru.setWatermarkPreviewEnabled(true);
|
||||
cru.setPreviewWatermarkId(watermarkConfig.getId());
|
||||
cru.setReportTemplateIds(List.of(availableTemplates.get(1).getTemplateId(), availableTemplates.get(2).getTemplateId()));
|
||||
|
||||
updated = dossierClient.updateDossier(cru, dossier.getId());
|
||||
assertThat(updated.getDossierName()).isEqualTo(dossierName);
|
||||
assertThat(updated.isWatermarkPreviewEnabled()).isEqualTo(true);
|
||||
assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId());
|
||||
assertThat(updated.getReportTemplateIds().size()).isEqualTo(2);
|
||||
assertThat(updated.getReportTemplateIds()).contains(availableTemplates.get(1).getTemplateId(), availableTemplates.get(2).getTemplateId());
|
||||
|
||||
@ -310,12 +335,12 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
||||
cru.setDossierTemplateId(dossier.getId());
|
||||
BeanUtils.copyProperties(dossier, cru);
|
||||
cru.setDossierName(dossierName);
|
||||
cru.setWatermarkPreviewEnabled(true);
|
||||
cru.setPreviewWatermarkId(watermarkConfig.getId());
|
||||
cru.setReportTemplateIds(List.of(availableTemplates.get(0).getTemplateId()));
|
||||
|
||||
updated = dossierClient.updateDossier(cru, dossier.getId());
|
||||
assertThat(updated.getDossierName()).isEqualTo(dossierName);
|
||||
assertThat(updated.isWatermarkPreviewEnabled()).isEqualTo(true);
|
||||
assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId());
|
||||
assertThat(updated.getReportTemplateIds().size()).isEqualTo(1);
|
||||
assertThat(updated.getReportTemplateIds()).contains(availableTemplates.get(0).getTemplateId());
|
||||
|
||||
|
||||
@ -99,7 +99,7 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes
|
||||
.memberIds(dossier.getMemberIds())
|
||||
.approverIds(dossier.getApproverIds())
|
||||
.downloadFileTypes(dossier.getDownloadFileTypes())
|
||||
.watermarkEnabled(dossier.isWatermarkEnabled())
|
||||
.watermarkId(dossier.getWatermarkId())
|
||||
.dueDate(dossier.getDueDate())
|
||||
.dossierTemplateId(dossier.getDossierTemplateId())
|
||||
.reportTemplateIds(availableTemplates.stream().map(a -> a.getTemplateId()).collect(Collectors.toList()))
|
||||
|
||||
@ -28,37 +28,40 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
try {
|
||||
watermarkClient.getWatermark(dossierTemplate.getId());
|
||||
watermarkClient.getWatermark(Long.valueOf(13));
|
||||
} catch (FeignException.FeignClientException e) {
|
||||
assertThat(e.status()).isEqualTo(404);
|
||||
}
|
||||
|
||||
Watermark watermark = new Watermark();
|
||||
watermark.setName("watermark name");
|
||||
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");
|
||||
watermark.setHexColor("#dddddd");
|
||||
watermark.setOpacity(20);
|
||||
watermark.setOrientation(WatermarkOrientation.DIAGONAL);
|
||||
watermark.setDossierTemplateId(dossierTemplate.getId());
|
||||
|
||||
var saved = watermarkClient.saveWatermark(dossierTemplate.getId(), watermark);
|
||||
assertThat(watermarkClient.getWatermark(dossierTemplate.getId())).isEqualTo(saved);
|
||||
var saved = watermarkClient.createOrUpdateWatermark(watermark);
|
||||
var loadedWatermark = watermarkClient.getWatermark(saved.getId());
|
||||
assertThat(loadedWatermark).isEqualTo(saved);
|
||||
|
||||
watermark.setFontSize(14);
|
||||
saved = watermarkClient.saveWatermark(dossierTemplate.getId(), watermark);
|
||||
assertThat(watermarkClient.getWatermark(dossierTemplate.getId())).isEqualTo(saved);
|
||||
saved = watermarkClient.createOrUpdateWatermark(watermark);
|
||||
loadedWatermark = watermarkClient.getWatermark(saved.getId());
|
||||
assertThat(loadedWatermark).isEqualTo(saved);
|
||||
|
||||
// Delete first time
|
||||
watermarkClient.deleteWatermark(dossierTemplate.getId());
|
||||
watermarkClient.deleteWatermark(saved.getId());
|
||||
|
||||
try {
|
||||
watermarkClient.getWatermark(dossierTemplate.getId());
|
||||
watermarkClient.getWatermark(saved.getId());
|
||||
} catch (FeignException.FeignClientException e) {
|
||||
assertThat(e.status()).isEqualTo(404);
|
||||
}
|
||||
|
||||
// Delete second time
|
||||
watermarkClient.deleteWatermark(dossierTemplate.getId());
|
||||
}
|
||||
|
||||
|
||||
@ -70,6 +73,9 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest {
|
||||
var watermarkText = "This is not an ASCII text äöüÄÖÜéèê... \nand many more...\r May the force with you! ";
|
||||
|
||||
Watermark watermark = new Watermark();
|
||||
watermark.setName("name");
|
||||
watermark.setEnabled(true);
|
||||
watermark.setDossierTemplateId(dossierTemplate.getId());
|
||||
watermark.setFontSize(12);
|
||||
watermark.setFontType("font");
|
||||
watermark.setHexColor("#dddddd");
|
||||
@ -78,7 +84,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest {
|
||||
watermark.setText(watermarkText);
|
||||
|
||||
// Act
|
||||
FeignException exception = assertThrows(FeignException.class, () -> watermarkClient.saveWatermark(dossierTemplate.getId(), watermark));
|
||||
FeignException exception = assertThrows(FeignException.class, () -> watermarkClient.createOrUpdateWatermark(watermark));
|
||||
|
||||
// Assert
|
||||
assertThat(exception.status()).isEqualTo(400);
|
||||
@ -93,6 +99,9 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest {
|
||||
var watermarkText = "We love ASCII!\n\nThis text contains only ASCII chars and newlines\r\r\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
|
||||
|
||||
Watermark watermark = new Watermark();
|
||||
watermark.setName("name");
|
||||
watermark.setEnabled(true);
|
||||
watermark.setDossierTemplateId(dossierTemplate.getId());
|
||||
watermark.setFontSize(12);
|
||||
watermark.setFontType("font");
|
||||
watermark.setHexColor("#dddddd");
|
||||
@ -101,11 +110,12 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest {
|
||||
watermark.setText(watermarkText);
|
||||
|
||||
// Act
|
||||
var saved = watermarkClient.saveWatermark(dossierTemplate.getId(), watermark);
|
||||
var saved = watermarkClient.createOrUpdateWatermark(watermark);
|
||||
var loadedWatermarked = watermarkClient.getWatermark(saved.getId());
|
||||
|
||||
// Assert
|
||||
assertThat(watermarkClient.getWatermark(dossierTemplate.getId())).isEqualTo(saved);
|
||||
assertThat(watermarkClient.getWatermark(dossierTemplate.getId()).getText()).isEqualTo(watermarkText);
|
||||
assertThat(loadedWatermarked).isEqualTo(saved);
|
||||
assertThat(loadedWatermarked.getText()).isEqualTo(watermarkText);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -3,11 +3,14 @@ package com.iqser.red.service.peristence.v1.server.integration.tests.performance
|
||||
import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient;
|
||||
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.client.WatermarkClient;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.*;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.WatermarkOrientation;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeType;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus;
|
||||
@ -17,7 +20,6 @@ import org.assertj.core.util.Sets;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataIntegrityViolationException;
|
||||
|
||||
import java.time.OffsetDateTime;
|
||||
import java.util.*;
|
||||
@ -45,6 +47,9 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest {
|
||||
@Autowired
|
||||
private DossierStatsClient dossierStatsClient;
|
||||
|
||||
@Autowired
|
||||
private WatermarkClient watermarkClient;
|
||||
|
||||
@Before
|
||||
public void setupTest() {
|
||||
|
||||
@ -60,6 +65,15 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
dte = dossierTemplateRepository.save(dte);
|
||||
|
||||
Watermark watermark = new Watermark();
|
||||
watermark.setName("watermark name");
|
||||
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.setOrientation(WatermarkOrientation.DIAGONAL);
|
||||
watermark.setDossierTemplateId(dte.getId());
|
||||
|
||||
var watermarkConfig = watermarkClient.createOrUpdateWatermark(watermark);
|
||||
|
||||
List<FileAttributeConfigEntity> fces = new ArrayList<>();
|
||||
for (int i = 0; i < FILE_ATTRIBUTE_COUNT; i++) {
|
||||
FileAttributeConfigEntity fce = new FileAttributeConfigEntity();
|
||||
@ -122,7 +136,7 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest {
|
||||
d.setDossierTemplate(dte);
|
||||
d.setDueDate(OffsetDateTime.now());
|
||||
d.setDescription("Lorem Ipsum");
|
||||
d.setWatermarkEnabled(true);
|
||||
d.setWatermarkId(watermarkConfig.getId());
|
||||
d.setStartDate(OffsetDateTime.now());
|
||||
d.setApproverIds(Sets.newTreeSet("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"));
|
||||
d.setMemberIds(Sets.newTreeSet("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"));
|
||||
|
||||
@ -196,7 +196,6 @@ public abstract class AbstractPersistenceServerServiceTest {
|
||||
dossierAttributeConfigRepository.deleteAll();
|
||||
downloadStatusRepository.deleteAll();
|
||||
fileAttributesRepository.deleteAll();
|
||||
watermarkRepository.deleteAll();
|
||||
smtpRepository.deleteAll();
|
||||
digitalSignatureRepository.deleteAll();
|
||||
fileAttributesGeneralConfigurationRepository.deleteAll();
|
||||
@ -212,12 +211,12 @@ public abstract class AbstractPersistenceServerServiceTest {
|
||||
legalBasisChangeRepository.deleteAll();
|
||||
imageRecategorizationRepository.deleteAll();
|
||||
legalBasisMappingRepository.deleteAll();
|
||||
watermarkRepository.deleteAll();
|
||||
ruleSetRepository.deleteAll();
|
||||
smtpRepository.deleteAll();
|
||||
fileRepository.deleteAll();
|
||||
dossierRepository.deleteAll();
|
||||
dossierStatusRepository.deleteAll();
|
||||
watermarkRepository.deleteAll();
|
||||
dossierTemplateRepository.deleteAll();
|
||||
notificationPreferencesRepository.deleteAll();
|
||||
indexInformationRepository.deleteAll();
|
||||
|
||||
@ -1 +1 @@
|
||||
[{"dossierId":"48c10c3e-9831-4165-a80e-6e96ba2c3e98","dossierTemplateId":"49156a1f-30cc-412f-8778-eb5bd842d709","dossierName":"Dom2","date":"2021-11-15T13:27:48Z","description":"","status":"ACTIVE","ownerId":"f8960240-9973-42e9-9b0f-ed096ff5a018","memberIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"approverIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"downloadFileTypes":["PREVIEW","REDACTED"],"reportTypes":[],"dueDate":null,"reportTemplateIds":["e37613cb-e093-49af-ae69-5678148c29b8"],"watermarkEnabled":true,"watermarkPreviewEnabled":false,"softDeletedTime":null,"hardDeletedTime":null},{"dossierId":"b2c9c4e5-5382-4862-9402-5b619c41a68c","dossierTemplateId":"49156a1f-30cc-412f-8778-eb5bd842d709","dossierName":"Dom1","date":"2021-11-15T13:27:19Z","description":"","status":"ACTIVE","ownerId":"f8960240-9973-42e9-9b0f-ed096ff5a018","memberIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"approverIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"downloadFileTypes":["PREVIEW","REDACTED"],"reportTypes":[],"dueDate":null,"reportTemplateIds":["75674b0f-7c70-4903-b30a-2a4aa330b6b1","87553a68-49e7-4bb6-9af7-263dcb81e964","e2eff609-1dbb-4f10-a1a2-de71f03e5875","e37613cb-e093-49af-ae69-5678148c29b8"],"watermarkEnabled":true,"watermarkPreviewEnabled":false,"softDeletedTime":null,"hardDeletedTime":null},{"dossierId":"d46267c1-bb19-44ca-8c0c-60fb5d5309c5","dossierTemplateId":"9b7bd575-4566-4408-984f-b26da1d2616e","dossierName":"Dom3","date":"2021-11-15T13:28:31Z","description":"","status":"ACTIVE","ownerId":"f8960240-9973-42e9-9b0f-ed096ff5a018","memberIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"approverIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"downloadFileTypes":["PREVIEW","REDACTED"],"reportTypes":[],"dueDate":null,"reportTemplateIds":["bb18db9e-2730-403c-90c0-d306aac06284"],"watermarkEnabled":true,"watermarkPreviewEnabled":false,"softDeletedTime":null,"hardDeletedTime":null}]
|
||||
[{"dossierId":"48c10c3e-9831-4165-a80e-6e96ba2c3e98","dossierTemplateId":"49156a1f-30cc-412f-8778-eb5bd842d709","dossierName":"Dom2","date":"2021-11-15T13:27:48Z","description":"","status":"ACTIVE","ownerId":"f8960240-9973-42e9-9b0f-ed096ff5a018","memberIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"approverIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"downloadFileTypes":["PREVIEW","REDACTED"],"reportTypes":[],"dueDate":null,"reportTemplateIds":["e37613cb-e093-49af-ae69-5678148c29b8"],"softDeletedTime":null,"hardDeletedTime":null},{"dossierId":"b2c9c4e5-5382-4862-9402-5b619c41a68c","dossierTemplateId":"49156a1f-30cc-412f-8778-eb5bd842d709","dossierName":"Dom1","date":"2021-11-15T13:27:19Z","description":"","status":"ACTIVE","ownerId":"f8960240-9973-42e9-9b0f-ed096ff5a018","memberIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"approverIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"downloadFileTypes":["PREVIEW","REDACTED"],"reportTypes":[],"dueDate":null,"reportTemplateIds":["75674b0f-7c70-4903-b30a-2a4aa330b6b1","87553a68-49e7-4bb6-9af7-263dcb81e964","e2eff609-1dbb-4f10-a1a2-de71f03e5875","e37613cb-e093-49af-ae69-5678148c29b8"],"softDeletedTime":null,"hardDeletedTime":null},{"dossierId":"d46267c1-bb19-44ca-8c0c-60fb5d5309c5","dossierTemplateId":"9b7bd575-4566-4408-984f-b26da1d2616e","dossierName":"Dom3","date":"2021-11-15T13:28:31Z","description":"","status":"ACTIVE","ownerId":"f8960240-9973-42e9-9b0f-ed096ff5a018","memberIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"approverIds":["f8960240-9973-42e9-9b0f-ed096ff5a018"],"downloadFileTypes":["PREVIEW","REDACTED"],"reportTypes":[],"dueDate":null,"reportTemplateIds":["bb18db9e-2730-403c-90c0-d306aac06284"],"softDeletedTime":null,"hardDeletedTime":null}]
|
||||
@ -27,7 +27,7 @@
|
||||
<properties>
|
||||
<redaction-service.version>3.114.0</redaction-service.version>
|
||||
<search-service.version>2.36.0</search-service.version>
|
||||
<pdftron-redaction-service.version>3.96.0</pdftron-redaction-service.version>
|
||||
<pdftron-redaction-service.version>3.105.0</pdftron-redaction-service.version>
|
||||
<redaction-report-service.version>3.47.0</redaction-report-service.version>
|
||||
</properties>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user