diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierController.java index 8ef0cda94..53a9aef1b 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierController.java @@ -381,7 +381,6 @@ public class DossierController implements DossierResource { throw new AccessDeniedException("Can not delete dossier that is owned by a different user"); } - dossierManagementService.softDeleteDossier(dossierId); auditPersistenceService.audit(AuditRequest.builder() @@ -450,7 +449,7 @@ public class DossierController implements DossierResource { @PostFilter("hasPermission(filterObject.id, 'Dossier', 'VIEW_OBJECT')") public List getSoftDeletedDossiers() { - var dossiers = dossierManagementService.getSoftDeletedDossiers() + var dossiers = dossierManagementService.getSoftDeletedDossiers() .stream() .map(dossierACLService::enhanceDossierWithACLData) .collect(Collectors.toList()); @@ -463,7 +462,7 @@ public class DossierController implements DossierResource { @PostFilter("hasPermission(filterObject.id, 'Dossier', 'VIEW_OBJECT')") public List getArchivedDossiers() { - var dossiers = dossierManagementService.getArchivedDossiers() + var dossiers = dossierManagementService.getArchivedDossiers() .stream() .map(dossierACLService::enhanceDossierWithACLData) .collect(Collectors.toList()); diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java index 1e9baa3c9..1236803bd 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierTemplateController.java @@ -24,13 +24,15 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateExportService; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; 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.service.DossierManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateStatsService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; import com.iqser.red.service.persistence.service.v1.api.external.resource.DossierTemplateResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; @@ -42,7 +44,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplateStats; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplateStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; @@ -61,7 +62,8 @@ public class DossierTemplateController implements DossierTemplateResource { private final AuditPersistenceService auditPersistenceService; private final DossierManagementService dossierManagementService; private final DossierACLService dossierACLService; - private final UserService userService; + private final DossierTemplateImportService dossierTemplateImportService; + private final DossierTemplateExportService dossierTemplateExportService; @Override @@ -125,7 +127,7 @@ public class DossierTemplateController implements DossierTemplateResource { throw new ConflictException("Can not delete dossier template because there are dossiers based on it"); } - dossierTemplateManagementService.deleteDossierTemplate(dossierTemplateId, userId); + dossierTemplateManagementService.softDeleteDossierTemplate(dossierTemplateId, userId); auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) .objectId(dossierTemplateId) @@ -150,7 +152,7 @@ public class DossierTemplateController implements DossierTemplateResource { throw new ConflictException("Can not delete dossier template because there are dossiers based on it"); } - dossierTemplateManagementService.deleteDossierTemplate(dossierTemplateId, userId); + dossierTemplateManagementService.softDeleteDossierTemplate(dossierTemplateId, userId); auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) .objectId(dossierTemplateId) @@ -224,15 +226,16 @@ public class DossierTemplateController implements DossierTemplateResource { try { ExportDownloadRequest request = ExportDownloadRequest.builder().dossierTemplateId(dossierTemplateId).userId(KeycloakSecurity.getUserId()).build(); - var response = dossierTemplateManagementService.prepareExportDownload(request); + dossierTemplateManagementService.validateDossierTemplateForDuplicateRanks(request.getDossierTemplateId()); + String storageId = dossierTemplateExportService.prepareExportDownload(request); auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) - .objectId(response.getValue()) + .objectId(storageId) .category(AuditCategory.DOWNLOAD.name()) .message("Export Download was prepared") .details(Map.of("dossierTemplateId", request.getDossierTemplateId())) .build()); - return new DownloadResponse(response.getValue()); + return new DownloadResponse(storageId); } catch (FeignException e) { throw processFeignException(e); } @@ -265,15 +268,15 @@ public class DossierTemplateController implements DossierTemplateResource { .userId(KeycloakSecurity.getUserId()) .archive(file.getBytes()) .build(); - DossierTemplate loadedDossierTemplate = dossierTemplateManagementService.importDossierTemplate(request); + String importedDossierTemplateId = dossierTemplateImportService.importDossierTemplate(request); auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) - .objectId(loadedDossierTemplate.getId()) + .objectId(importedDossierTemplateId) .category(AuditCategory.DOSSIER_TEMPLATE.name()) .message("Dossier template was imported") - .details(Map.of("dossierTemplateId", loadedDossierTemplate.getId())) + .details(Map.of("dossierTemplateId", importedDossierTemplateId)) .build()); - return convert(loadedDossierTemplate); + return convert(dossierTemplateManagementService.getDossierTemplate(importedDossierTemplateId)); } catch (IOException e) { throw new BadRequestException(e.getMessage(), e); } catch (FeignException e) { diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java index 80d969d62..513d18488 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ManualRedactionController.java @@ -277,11 +277,7 @@ public class ManualRedactionController implements ManualRedactionResource { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); - List responseList = manualRedactionService.addRecategorization(dossierId, - fileId, - dossier, - recategorizationRequests, - includeUnprocessed); + List responseList = manualRedactionService.addRecategorization(dossierId, fileId, dossier, recategorizationRequests, includeUnprocessed); responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() .userId(KeycloakSecurity.getUserId()) diff --git a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReportTemplateController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReportTemplateController.java index b7704cbd0..c1639799d 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReportTemplateController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReportTemplateController.java @@ -76,7 +76,6 @@ public class ReportTemplateController implements ReportTemplateResource { private final FileManagementStorageService fileManagementStorageService; - @Override @PreAuthorize("hasAuthority('" + GET_REPORT_TEMPLATES + "')") public List getReportTemplatesByPlaceholder(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody JSONPrimitive placeholder) { diff --git a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DownloadControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DownloadControllerV2.java index 5a89c5332..40c315c98 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DownloadControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DownloadControllerV2.java @@ -27,34 +27,37 @@ public class DownloadControllerV2 implements DownloadResource { private final DownloadController downloadController; private final DownloadStatusPersistenceService downloadStatusPersistenceService; + @Transactional public DownloadStatusList getDownloadStatusList() { var downloads = downloadStatusPersistenceService.getStatusesByUser(KeycloakSecurity.getUserId()); - return new DownloadStatusList(downloads.stream().map( - status -> - DownloadStatus.builder() - .id(status.getUuid()) // This is a workaround the real id is the storageId. - .userId(status.getUserId()) - .filename(status.getFilename()) - .mimeType(status.getMimeType()) - .errorCause(status.getErrorCause()) - .status(status.getStatus()) - .creationDate(status.getCreationDate()) - .lastDownload(status.getLastDownload()) - .fileSize(status.getFileSize()) - .dossierId(status.getDossier() != null ? status.getDossier().getId() : null) - .fileIds(status.getFiles() - .stream() - .map(FileEntity::getId) - .toList()) - .downloadFileTypes(status.getDownloadFileTypes() - .stream() - .toList()) - .reportTemplateIds(status.getReports().stream().map(ReportTemplateEntity::getTemplateId).toList()) - .build()).toList() - ); + return new DownloadStatusList(downloads.stream() + .map(status -> DownloadStatus.builder() + .id(status.getUuid()) // This is a workaround the real id is the storageId. + .userId(status.getUserId()) + .filename(status.getFilename()) + .mimeType(status.getMimeType()) + .errorCause(status.getErrorCause()) + .status(status.getStatus()) + .creationDate(status.getCreationDate()) + .lastDownload(status.getLastDownload()) + .fileSize(status.getFileSize()) + .dossierId(status.getDossier() != null ? status.getDossier().getId() : null) + .fileIds(status.getFiles() + .stream() + .map(FileEntity::getId) + .toList()) + .downloadFileTypes(status.getDownloadFileTypes() + .stream() + .toList()) + .reportTemplateIds(status.getReports() + .stream() + .map(ReportTemplateEntity::getTemplateId) + .toList()) + .build()) + .toList()); } @@ -81,7 +84,10 @@ public class DownloadControllerV2 implements DownloadResource { .downloadFileTypes(status.getDownloadFileTypes() .stream() .toList()) - .reportTemplateIds(status.getReports().stream().map(ReportTemplateEntity::getTemplateId).toList()) + .reportTemplateIds(status.getReports() + .stream() + .map(ReportTemplateEntity::getTemplateId) + .toList()) .build(); } diff --git a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/mapper/ComponentMapper.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/mapper/ComponentMapper.java index e3fe4085e..b307a3a7a 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/mapper/ComponentMapper.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/mapper/ComponentMapper.java @@ -34,11 +34,13 @@ public interface ComponentMapper { List toComponentLogEntries(List values); + Component toComponent(ComponentLogEntry entry); List toComponents(List entries); + ComponentLogEntry toComponentLogEntry(Component component); diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ComponentLogResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ComponentLogResource.java index d3d4916c8..9e7220d18 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ComponentLogResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ComponentLogResource.java @@ -49,9 +49,7 @@ public interface ComponentLogResource { @PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Adds overrides for components", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found"), @ApiResponse(responseCode = "403", description = "Forbidden")}) - void addOverride(@PathVariable(DOSSIER_ID) String dossierId, - @PathVariable(FILE_ID) String fileId, - @RequestBody ComponentsOverrides componentsOverrides); + void addOverride(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides); @ResponseBody @@ -59,8 +57,7 @@ public interface ComponentLogResource { @GetMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Gets overrides for components", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found")}) - ComponentsOverrides getOverrides(@PathVariable(DOSSIER_ID) String dossierId, - @PathVariable(FILE_ID) String fileId); + ComponentsOverrides getOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId); @ResponseBody @@ -68,8 +65,6 @@ public interface ComponentLogResource { @PostMapping(value = COMPONENT_LOG_PATH + OVERRIDE_PATH + "/revert" + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Reverts overrides for components", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "404", description = "Not found"), @ApiResponse(responseCode = "403", description = "Forbidden")}) - void revertOverrides(@PathVariable(DOSSIER_ID) String dossierId, - @PathVariable(FILE_ID) String fileId, - @RequestBody RevertOverrideRequest revertOverrideRequest); + void revertOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RevertOverrideRequest revertOverrideRequest); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/SupportResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/SupportResource.java index 8424afe2b..849a43d3e 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/SupportResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/SupportResource.java @@ -56,15 +56,15 @@ public interface SupportResource { @PostMapping(value = REANALYSIS_REST_PATH + DOSSIER_TEMPLATE_DOSSIER_TEMPLATE_ID_PATH_VARIABLE) @Operation(summary = "Reanalyze all files in dossier template", description = """ ## Reanalyze Files Endpoint - + Use this endpoint to reanalyze all files in a specified Dossier Template. The reanalysis process can be tailored using various filtering options provided in the request body. - + ### Parameters - + - **DossierTemplateId**: Specifies the Dossier Template whose files need to be reanalyzed. - + ### Request Body Configuration Options - + - **dossierIds**: List of dossier IDs to filter. If empty, all dossiers are selected for reanalysis. - **fileIds**: List of file IDs to filter. If empty, all files are selected for reanalysis. - **repeatStructureAnalysis**: Boolean. If true, layout parsing and named entity recognition will be repeated. @@ -120,16 +120,16 @@ public interface SupportResource { + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Exports all dossiers and files from a given Dossier Template.", description = """ ## Export Files Endpoint - + Use this endpoint to export a full Dossier Template, including all configurations, dossiers, and files. The endpoint returns a String storageId, which is used to query the DownloadController for the export zip archive's status and to download the archive. - + ### Parameters - + - **DossierTemplateId**: Specifies the Dossier Template to be exported. - + ### Request Body Configuration Options - + - **dossierIds**: List of dossier IDs to filter. If empty, all dossiers are selected. - **fileIds**: List of file IDs to filter. If empty, all files are selected. - **excludeLayoutFiles**: Boolean. If true, excludes DOCUMENT_STRUCTURE/_PAGES/_TEXT/_POSITIONS, SIMPLIFIED_TEXT, and NER_ENTITIES files. diff --git a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/BulkDownloadRequest.java b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/BulkDownloadRequest.java index ace05e4fe..2aef82f54 100644 --- a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/BulkDownloadRequest.java +++ b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/BulkDownloadRequest.java @@ -22,4 +22,5 @@ public class BulkDownloadRequest { private Set downloadFileTypes = new HashSet<>(); private String redactionPreviewColor; private List fileIds = new ArrayList<>(); + } diff --git a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/ComponentOverrideList.java b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/ComponentOverrideList.java index 257e870eb..189b78121 100644 --- a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/ComponentOverrideList.java +++ b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/ComponentOverrideList.java @@ -19,4 +19,5 @@ public class ComponentOverrideList { String fileId; List componentOverrides = new ArrayList<>(); + } diff --git a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/DossierAttributeDefinitionList.java b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/DossierAttributeDefinitionList.java index a8ec38b8d..6963ae05f 100644 --- a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/DossierAttributeDefinitionList.java +++ b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/DossierAttributeDefinitionList.java @@ -14,5 +14,6 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class DossierAttributeDefinitionList { - private List dossierAttributeDefinitions= new ArrayList<>(); + private List dossierAttributeDefinitions = new ArrayList<>(); + } diff --git a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/DossierStatusDefinitionList.java b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/DossierStatusDefinitionList.java index 20d62ae92..7bf7b10c3 100644 --- a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/DossierStatusDefinitionList.java +++ b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/model/DossierStatusDefinitionList.java @@ -15,4 +15,5 @@ import lombok.NoArgsConstructor; public class DossierStatusDefinitionList { private List dossierStatusDefinitions = new ArrayList<>(); + } diff --git a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/resource/DossierResource.java b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/resource/DossierResource.java index 2d244e182..8aaa6df29 100644 --- a/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/resource/DossierResource.java +++ b/persistence-service-v1/persistence-service-external-api-v2/src/main/java/com/iqser/red/service/persistence/service/v2/api/external/resource/DossierResource.java @@ -89,8 +89,8 @@ public interface DossierResource { @Operation(summary = "Update or set attributes for a specific dossier.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Dossier attributes successfully updated."), @ApiResponse(responseCode = "404", description = "Not found")}) void setDossierAttributes(@Parameter(name = DOSSIER_TEMPLATE_ID_PARAM, description = "The identifier of a dossier template", required = true) @PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId, - @Parameter(name = DOSSIER_ID_PARAM, description = "The identifier of a dossier", required = true) @PathVariable(DOSSIER_ID_PARAM) String dossierId, - @RequestBody DossierAttributes dossierAttributes); + @Parameter(name = DOSSIER_ID_PARAM, description = "The identifier of a dossier", required = true) @PathVariable(DOSSIER_ID_PARAM) String dossierId, + @RequestBody DossierAttributes dossierAttributes); @ResponseBody diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/acl/custom/dossier/ViewObjectDossierObjectPermissionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/acl/custom/dossier/ViewObjectDossierObjectPermissionService.java index 8716e65ae..a4a83fdd9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/acl/custom/dossier/ViewObjectDossierObjectPermissionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/acl/custom/dossier/ViewObjectDossierObjectPermissionService.java @@ -1,6 +1,5 @@ package com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier; -import java.util.ArrayList; import java.util.Collection; import java.util.Set; import java.util.stream.Collectors; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/MessagingConfiguration.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/MessagingConfiguration.java index a60616246..e03e525ec 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/MessagingConfiguration.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/MessagingConfiguration.java @@ -73,7 +73,6 @@ public class MessagingConfiguration { public static final String X_ERROR_INFO_HEADER = "x-error-message"; public static final String X_ERROR_INFO_TIMESTAMP_HEADER = "x-error-message-timestamp"; - public static final String LAYOUT_PARSING_DLQ = "layout_parsing_dead_letter_queue"; // --- Saas Migration, can be removed later ---- @@ -251,19 +250,18 @@ public class MessagingConfiguration { .build(); } + @Bean public Queue ocrResponseQueue() { - return QueueBuilder.durable(OCR_RESPONSE_QUEUE) - .build(); + return QueueBuilder.durable(OCR_RESPONSE_QUEUE).build(); } @Bean public Queue ocrDLQ() { - return QueueBuilder.durable(OCR_DLQ) - .build(); + return QueueBuilder.durable(OCR_DLQ).build(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/RedisPubsubConfiguration.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/RedisPubsubConfiguration.java index 86b101cfc..6afc16ea8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/RedisPubsubConfiguration.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/RedisPubsubConfiguration.java @@ -21,18 +21,24 @@ public class RedisPubsubConfiguration { private final ObjectMapper mapper; private final RedisConnectionFactory connectionFactory; + @Bean public RedisPubsubReceiver redisPubsubReceiver() { + return new RedisPubsubReceiver(template, mapper); } + @Bean public MessageListenerAdapter redisPubsubListenerAdapter() { + return new MessageListenerAdapter(redisPubsubReceiver(), "receiveMessage"); } + @Bean public RedisMessageListenerContainer redisPubsubContainer() { + RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.addMessageListener(redisPubsubListenerAdapter(), new PatternTopic("persistence-service-websocket-messages")); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/WebSocketSecurityConfig.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/WebSocketSecurityConfig.java index d701de243..c22934abe 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/WebSocketSecurityConfig.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/configuration/WebSocketSecurityConfig.java @@ -73,6 +73,7 @@ public class WebSocketSecurityConfig extends AbstractSecurityWebSocketMessageBro } + private Optional extractTenantId(Message message) { StompHeaderAccessor sha = StompHeaderAccessor.wrap(message); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierImportService.java index f309674e3..58907fda3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierImportService.java @@ -11,6 +11,7 @@ import com.iqser.red.service.persistence.management.v1.processor.dataexchange.mo 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.service.DossierCreatorService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierService; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateExportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateExportService.java index 2421099d4..719ae4c91 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateExportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateExportService.java @@ -17,6 +17,10 @@ import org.springframework.util.FileSystemUtils; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessage; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportFilename; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.RulesExportModel; 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.LegalBasisEntity; @@ -30,10 +34,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.dossier. import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessage; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportFilename; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.RulesExportModel; import com.iqser.red.service.persistence.management.v1.processor.model.ComponentMapping; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService; @@ -100,18 +100,17 @@ public class DossierTemplateExportService { RabbitTemplate rabbitTemplate; - public JSONPrimitive prepareExportDownload(ExportDownloadRequest request) { + public String prepareExportDownload(ExportDownloadRequest request) { var mimeType = "application/zip"; - dossierTemplatePersistenceService.validateDossierTemplateForDuplicateRanks(request.getDossierTemplateId()); String downloadFilename = request.getDossierTemplateId() + ".zip"; String storageId = StorageIdUtils.getStorageId(request.getUserId(), request.getDossierTemplateId()); downloadStatusPersistenceService.createStatus(request.getUserId(), storageId, downloadFilename, mimeType); addToExportDownloadQueue(ExportDownloadMessage.builder().dossierTemplateId(request.getDossierTemplateId()).storageId(storageId).userId(request.getUserId()).build(), 1); - return new JSONPrimitive<>(storageId); + return storageId; } @@ -123,6 +122,7 @@ public class DossierTemplateExportService { }); } + @Observed(name = "DossierTemplateExportService", contextualName = "export-dossier-template") public long createDownloadArchive(ExportDownloadMessage downloadJob) throws IOException { @@ -142,6 +142,7 @@ public class DossierTemplateExportService { } + @Observed(name = "DossierTemplateExportService", contextualName = "write-dossier-template-to-archive") public void addDossierTemplateToArchive(FileSystemBackedArchiver fileSystemBackedArchiver, String folder, DossierTemplateEntity dossierTemplate) throws IOException { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateImportService.java index a34123c9a..887f00fd5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/DossierTemplateImportService.java @@ -21,6 +21,11 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ComponentMappingImportModel; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ImportTemplateResult; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.TemplateImportInfo; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.zipreaders.DossierTemplateArchiveReader; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.zipreaders.ZipEntryIterator; 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.WatermarkEntity; @@ -29,15 +34,12 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.dossier. import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; 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.dataexchange.models.ComponentMappingImportModel; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ImportTemplateResult; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.TemplateImportInfo; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.zipreaders.DossierTemplateArchiveReader; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.zipreaders.ZipEntryIterator; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.ReportTemplateService; import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; @@ -56,11 +58,14 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkMo import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentDefinition; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentDefinitionAddRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentMappingMetadata; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplateStatus; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ReportTemplateUploadRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.Colors; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierStatusInfo; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest; import com.iqser.red.service.redaction.v1.model.DroolsValidation; import com.iqser.red.storage.commons.service.StorageService; @@ -84,6 +89,7 @@ public class DossierTemplateImportService { LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; RulesPersistenceService rulesPersistenceService; DossierTemplatePersistenceService dossierTemplatePersistenceService; + DossierTemplateManagementService dossierTemplateManagementService; DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; ColorsService colorsService; @@ -103,7 +109,9 @@ public class DossierTemplateImportService { ImportTemplateResult archiveResult = readDossierTemplateImportArchive(request); - return importDossierTemplate(archiveResult).getDossierTemplateId(); + TemplateImportInfo templateImportInfo = importDossierTemplate(archiveResult); + + return templateImportInfo.getDossierTemplateId(); } @@ -121,11 +129,13 @@ public class DossierTemplateImportService { return dossierTemplateArchiveReader.buildResult(); } + @Observed(name = "DossierTemplateImportService", contextualName = "import-template") public TemplateImportInfo importDossierTemplate(ImportTemplateResult request) { long start = System.currentTimeMillis(); - String dossierTemplateId; + String dossierTemplateId = null; + var dossierTemplateMeta = request.getDossierTemplate(); TemplateImportInfo templateImportInfo = TemplateImportInfo.builder().build(); @@ -137,221 +147,277 @@ public class DossierTemplateImportService { } if (existingDossierTemplate != null) { - dossierTemplateId = existingDossierTemplate.getId(); + dossierTemplateId = updateExistingDossierTemplate(request, existingDossierTemplate, dossierTemplateMeta, templateImportInfo); + templateImportInfo.setDossierTemplateId(dossierTemplateId); - // override the existing dossier template - updateDossierTemplateMeta(existingDossierTemplate, dossierTemplateMeta, request.getUserId()); - dossierTemplateRepository.save(existingDossierTemplate); + long elapsedTime = System.currentTimeMillis() - start; + log.info("Finished update of existing dossier template in {} ms for: {}", elapsedTime, dossierTemplateId); + return templateImportInfo; + } - existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate) - .name())); + try { + importNewDossierTemplate(request, dossierTemplateMeta, templateImportInfo); + long elapsedTime = System.currentTimeMillis() - start; + log.info("Finished import dossier template in {} ms for: {}", elapsedTime, templateImportInfo.getDossierTemplateId()); - // set colors - this.setColors(dossierTemplateId, request.getColors()); - - // set watermarks - if (CollectionUtils.isNotEmpty(request.getWatermarks())) { - Set toSetWatermarks = request.getWatermarks() - .stream() - .map(WatermarkModel::getName) - .filter(Objects::nonNull) - .collect(Collectors.toSet()); - var currentWatermarkConfigs = watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId); - Set configsToRemove = currentWatermarkConfigs.stream() - .filter(c -> !toSetWatermarks.contains(c.getName())) - .collect(Collectors.toSet()); - var watermarkNameToEntity = currentWatermarkConfigs.stream() - .collect(Collectors.toMap(WatermarkEntity::getName, Function.identity())); - - request.getWatermarks() - .forEach(watermark -> { - log.info("watermark to add: " + watermark.getName()); - Long initialId = watermark.getId(); - if (!watermarkNameToEntity.isEmpty() && watermarkNameToEntity.get(watermark.getName()) != null) { - - watermark.setId(watermarkNameToEntity.get(watermark.getName()).getId()); - } else { - watermark.setId(null); - } - watermark.setDossierTemplateId(dossierTemplateId); - var entity = watermarkService.createOrUpdateWatermark(watermark); - templateImportInfo.getLongMapping().put(initialId, entity.getId()); - }); - configsToRemove.forEach(watermark -> watermarkService.deleteWatermark(watermark.getId())); + } catch (Exception e) { + log.error("Error with message: {} occurred during import, undo import", e.getMessage(), e); + if (templateImportInfo != null && templateImportInfo.getDossierTemplateId() != null) { + dossierTemplateManagementService.deleteDossierTemplateCompletely(templateImportInfo.getDossierTemplateId()); } + throw e; + } + return templateImportInfo; + } - // dossier status - if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) { - this.updateDossierStates(request, dossierTemplateId); - } else { // no states to add, delete current states - List currentStates = dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId); - currentStates.forEach(state -> dossierStatusPersistenceService.deleteDossierStatus(state.getId(), null)); - } - // update dossier attributes - if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) { - this.updateDossierAttributes(request, dossierTemplateId, templateImportInfo); - } else { // no dossier attributes to add, but delete existing ones - var currentConfigs = dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId); - currentConfigs.forEach(da -> dossierAttributeConfigPersistenceService.deleteDossierAttribute(da.getId())); - } + private void importNewDossierTemplate(ImportTemplateResult request, DossierTemplate dossierTemplateMeta, TemplateImportInfo templateImportInfo) { - //update file attributes - if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) { - this.updateFileAttributes(request, dossierTemplateId, templateImportInfo); - } else { // no file attributes to add, but delete existing - var currentConfigs = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId); - currentConfigs.forEach(fa -> fileAttributeConfigPersistenceService.deleteFileAttribute(fa.getId())); - } + String dossierTemplateId; + // creates new dossier template + if (StringUtils.isEmpty(dossierTemplateMeta.getName())) { + throw new ConflictException("DossierTemplate name must be set"); + } + dossierTemplateMeta.setId(""); + this.validateDossierTemplateName(dossierTemplateMeta); + DossierTemplateEntity dossierTemplateEntity = new DossierTemplateEntity(); - entityTypeImportService.updateTypes(dossierTemplateId, null, request.getEntityTypeImportModel()); + // order is important + BeanUtils.copyProperties(dossierTemplateMeta, dossierTemplateEntity); + dossierTemplateEntity.setId(UUID.randomUUID().toString()); + dossierTemplateEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + dossierTemplateEntity.setCreatedBy(request.getUserId()); + //set rules - if (CollectionUtils.isNotEmpty(request.getComponentDefinitions())) { - this.updateComponents(request, dossierTemplateId); - } else { // no components to add, but remove existing ones - List currentComponents = componentDefinitionPersistenceService.findComponentsByDossierTemplateId(dossierTemplateId); - this.deleteComponents(currentComponents); - } + var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplateEntity); + loadedDossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(loadedDossierTemplate)); + dossierTemplateId = loadedDossierTemplate.getId(); + templateImportInfo.setDossierTemplateId(dossierTemplateId); + // set colors + this.updateColors(dossierTemplateId, request.getColors()); - //set report templates - var existingReports = reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId); - - List reportsUpdated = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(request.getReportTemplateUploadRequests())) { - request.getReportTemplateUploadRequests() - .forEach(reportRequest -> { - reportRequest.setDossierTemplateId(dossierTemplateId); - var report = reportTemplateService.uploadTemplate(reportRequest); - reportsUpdated.add(report.getTemplateId()); - }); - } - - // delete the reports that were not in the import - existingReports.forEach(r -> { - String storageId = r.getStorageId(); - if (!reportsUpdated.contains(r.getTemplateId())) { - storageService.deleteObject(TenantContext.getTenantId(), storageId); - reportTemplatePersistenceService.delete(r.getTemplateId()); - } - }); - - // set legal basis - if (CollectionUtils.isNotEmpty(request.getLegalBases())) { - legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases()); - } else { // delete existing - legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId); - } - - } else { - // creates new dossier template - if (StringUtils.isEmpty(dossierTemplateMeta.getName())) { - throw new ConflictException("DossierTemplate name must be set"); - } - dossierTemplateMeta.setId(""); - this.validateDossierTemplateName(dossierTemplateMeta); - DossierTemplateEntity dossierTemplateEntity = new DossierTemplateEntity(); - - // order is important - BeanUtils.copyProperties(dossierTemplateMeta, dossierTemplateEntity); - dossierTemplateEntity.setId(UUID.randomUUID().toString()); - dossierTemplateEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - dossierTemplateEntity.setCreatedBy(request.getUserId()); - //set rules - - var loadedDossierTemplate = dossierTemplateRepository.save(dossierTemplateEntity); - loadedDossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(loadedDossierTemplate)); - - dossierTemplateId = loadedDossierTemplate.getId(); - // set colors - this.setColors(dossierTemplateId, request.getColors()); - - // set watermarks - if (CollectionUtils.isNotEmpty(request.getWatermarks())) { - request.getWatermarks() - .forEach(watermark -> { - Long initialId = watermark.getId(); - watermark.setDossierTemplateId(dossierTemplateId); - watermark.setId(null); - var en = watermarkService.createOrUpdateWatermark(watermark); - templateImportInfo.getLongMapping().put(initialId, en.getId()); - }); - } - - // dossier status - if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) { - request.getDossierStatusInfos() - .forEach(state -> { - state.setId(null); - this.updateDossierStatus(dossierTemplateId, state); - }); - } - - //set dossier attributes - if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) { - request.getDossierAttributesConfigs() - .forEach(da -> { - String initialId = da.getId(); - da.setId(null); // in order to create a new dossier attribute - var e = dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, convert(da, DossierAttributeConfigEntity.class)); - templateImportInfo.getIdMapping().put(initialId, e.getId()); - }); - } - - //set file attributes - if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) { - request.getFileAttributesConfigs() - .forEach(fa -> { - String initialId = fa.getId(); - fa.setId(null); // in order to force creation of new file attribute - var e = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, convert(fa, FileAttributeConfigEntity.class)); - templateImportInfo.getIdMapping().put(initialId, e.getId()); - }); - } - - //set types - entityTypeImportService.importEntityTypes(dossierTemplateId, null, request.getEntityTypeImportModel()); - - // set components - if (CollectionUtils.isNotEmpty(request.getComponentDefinitions())) { - for (ComponentDefinition componentDefinition : request.getComponentDefinitions()) { - ComponentDefinitionAddRequest componentDefinitionAddRequest = ComponentDefinitionAddRequest.builder() - .displayName(componentDefinition.getDisplayName()) - .description(componentDefinition.getDescription()) - .technicalName(componentDefinition.getTechnicalName()) - .build(); - componentDefinitionPersistenceService.insert(componentDefinitionAddRequest, componentDefinition.getRank(), dossierTemplateId); - } - } - - //set report templates - if (CollectionUtils.isNotEmpty(request.getReportTemplateUploadRequests())) { - request.getReportTemplateUploadRequests() - .forEach(reportRequest -> { - reportRequest.setDossierTemplateId(dossierTemplateId); - reportTemplateService.uploadTemplate(reportRequest); - }); - } - // set legal basis - if (CollectionUtils.isNotEmpty(request.getLegalBases())) { - legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases()); + // set watermarks + if (CollectionUtils.isNotEmpty(request.getWatermarks())) { + for (WatermarkModel watermark : request.getWatermarks()) { + Long initialId = watermark.getId(); + watermark.setDossierTemplateId(dossierTemplateId); + watermark.setId(null); + var en = watermarkService.createOrUpdateWatermark(watermark); + templateImportInfo.getLongMapping().put(initialId, en.getId()); } } + // dossier status + if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) { + for (DossierStatusInfo state : request.getDossierStatusInfos()) { + state.setId(null); + this.updateDossierStatus(dossierTemplateId, state); + } + } + + //set dossier attributes + if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) { + for (DossierAttributeConfig da : request.getDossierAttributesConfigs()) { + String initialId = da.getId(); + da.setId(null); // in order to create a new dossier attribute + var e = dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, convert(da, DossierAttributeConfigEntity.class)); + templateImportInfo.getIdMapping().put(initialId, e.getId()); + } + } + + //set file attributes + if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) { + for (FileAttributeConfig fa : request.getFileAttributesConfigs()) { + String initialId = fa.getId(); + fa.setId(null); // in order to force creation of new file attribute + var e = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, convert(fa, FileAttributeConfigEntity.class)); + templateImportInfo.getIdMapping().put(initialId, e.getId()); + } + } + + //set types + entityTypeImportService.importEntityTypes(dossierTemplateId, null, request.getEntityTypeImportModel()); + + // set components + if (CollectionUtils.isNotEmpty(request.getComponentDefinitions())) { + for (ComponentDefinition componentDefinition : request.getComponentDefinitions()) { + ComponentDefinitionAddRequest componentDefinitionAddRequest = ComponentDefinitionAddRequest.builder() + .displayName(componentDefinition.getDisplayName()) + .description(componentDefinition.getDescription()) + .technicalName(componentDefinition.getTechnicalName()) + .build(); + componentDefinitionPersistenceService.insert(componentDefinitionAddRequest, componentDefinition.getRank(), dossierTemplateId); + } + } + + //set report templates + if (CollectionUtils.isNotEmpty(request.getReportTemplateUploadRequests())) { + for (ReportTemplateUploadRequest reportRequest : request.getReportTemplateUploadRequests()) { + reportRequest.setDossierTemplateId(dossierTemplateId); + reportTemplateService.uploadTemplate(reportRequest); + } + } + // set legal basis + if (CollectionUtils.isNotEmpty(request.getLegalBases())) { + legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases()); + } + setRulesWhenCompiled(request, dossierTemplateId); + setComponentMappings(dossierTemplateId, request.getComponentMappings()); + setFileAttributeGeneralConfig(request, dossierTemplateId); + + } + + + private void setFileAttributeGeneralConfig(ImportTemplateResult request, String dossierTemplateId) { // file attribute general configuration if (request.getFileAttributesGeneralConfiguration() != null) { fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId, convert(request.getFileAttributesGeneralConfiguration(), FileAttributesGeneralConfigurationEntity.class)); } + } + + private String updateExistingDossierTemplate(ImportTemplateResult request, + DossierTemplateEntity existingDossierTemplate, + DossierTemplate dossierTemplateMeta, + TemplateImportInfo templateImportInfo) { + + String dossierTemplateId; + dossierTemplateId = existingDossierTemplate.getId(); + updateDossierTemplateMeta(existingDossierTemplate, dossierTemplateMeta, request.getUserId()); + dossierTemplateRepository.save(existingDossierTemplate); + existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate) + .name())); + updateColors(dossierTemplateId, request.getColors()); + updateWatermarks(request, templateImportInfo, dossierTemplateId); + updateDossiers(request, dossierTemplateId); + updateDossierAttributes(request, templateImportInfo, dossierTemplateId); + updateFileAttributes(request, templateImportInfo, dossierTemplateId); + entityTypeImportService.updateTypes(dossierTemplateId, null, request.getEntityTypeImportModel()); + updateComponents(request, dossierTemplateId); + var existingReports = reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId); + updateReports(request, dossierTemplateId, existingReports); + updateLegalBasis(request, dossierTemplateId); setRulesWhenCompiled(request, dossierTemplateId); setComponentMappings(dossierTemplateId, request.getComponentMappings()); + setFileAttributeGeneralConfig(request, dossierTemplateId); + return dossierTemplateId; + } - templateImportInfo.setDossierTemplateId(dossierTemplateId); - long elapsedTime = System.currentTimeMillis() - start; - log.info("Finished import dossier template : {} for: {}", elapsedTime, dossierTemplateId); - return templateImportInfo; + private void updateLegalBasis(ImportTemplateResult request, String dossierTemplateId) { + // set legal basis + if (CollectionUtils.isNotEmpty(request.getLegalBases())) { + legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases()); + } else { // delete existing + legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId); + } + } + + + private void updateReports(ImportTemplateResult request, String dossierTemplateId, List existingReports) { + + List reportsUpdated = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(request.getReportTemplateUploadRequests())) { + for (ReportTemplateUploadRequest reportRequest : request.getReportTemplateUploadRequests()) { + reportRequest.setDossierTemplateId(dossierTemplateId); + var report = reportTemplateService.uploadTemplate(reportRequest); + reportsUpdated.add(report.getTemplateId()); + } + } + + // delete the reports that were not in the import + existingReports.forEach(r -> { + String storageId = r.getStorageId(); + if (!reportsUpdated.contains(r.getTemplateId())) { + storageService.deleteObject(TenantContext.getTenantId(), storageId); + reportTemplatePersistenceService.delete(r.getTemplateId()); + } + }); + } + + + private void updateComponents(ImportTemplateResult request, String dossierTemplateId) { + + if (CollectionUtils.isNotEmpty(request.getComponentDefinitions())) { + request.getComponentDefinitions() + .forEach(componentDefinition -> { + componentDefinition.setDossierTemplateId(dossierTemplateId); + componentDefinitionPersistenceService.insert(MagicConverter.convert(componentDefinition, ComponentDefinitionEntity.class)); + }); + } else { // no components to add, but remove existing ones + List currentComponents = componentDefinitionPersistenceService.findComponentsByDossierTemplateId(dossierTemplateId); + currentComponents.forEach(componentDefinition -> { + componentDefinitionPersistenceService.delete(componentDefinition.getId()); + }); + } + } + + + private void updateFileAttributes(ImportTemplateResult request, TemplateImportInfo templateImportInfo, String dossierTemplateId) { + //update file attributes + if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) { + this.updateFileAttributes(request, dossierTemplateId, templateImportInfo); + } else { // no file attributes to add, but delete existing + var currentConfigs = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId); + currentConfigs.forEach(fa -> fileAttributeConfigPersistenceService.deleteFileAttribute(fa.getId())); + } + } + + + private void updateWatermarks(ImportTemplateResult request, TemplateImportInfo templateImportInfo, String dossierTemplateId) { + // set watermarks + if (CollectionUtils.isNotEmpty(request.getWatermarks())) { + Set toSetWatermarks = request.getWatermarks() + .stream() + .map(WatermarkModel::getName) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + var currentWatermarkConfigs = watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId); + Set configsToRemove = currentWatermarkConfigs.stream() + .filter(c -> !toSetWatermarks.contains(c.getName())) + .collect(Collectors.toSet()); + var watermarkNameToEntity = currentWatermarkConfigs.stream() + .collect(Collectors.toMap(WatermarkEntity::getName, Function.identity())); + + for (WatermarkModel watermarkModel : request.getWatermarks()) { + log.info("watermark to add: " + watermarkModel.getName()); + Long initialId = watermarkModel.getId(); + if (!watermarkNameToEntity.isEmpty() && watermarkNameToEntity.get(watermarkModel.getName()) != null) { + + watermarkModel.setId(watermarkNameToEntity.get(watermarkModel.getName()).getId()); + } else { + watermarkModel.setId(null); + } + watermarkModel.setDossierTemplateId(dossierTemplateId); + var entity = watermarkService.createOrUpdateWatermark(watermarkModel); + templateImportInfo.getLongMapping().put(initialId, entity.getId()); + } + configsToRemove.forEach(watermark -> watermarkService.deleteWatermark(watermark.getId())); + } + } + + + private void updateDossiers(ImportTemplateResult request, String dossierTemplateId) { + // dossier status + if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) { + this.updateDossierStates(request, dossierTemplateId); + } else { // no states to add, delete current states + List currentStates = dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId); + currentStates.forEach(state -> dossierStatusPersistenceService.deleteDossierStatus(state.getId(), null)); + } + } + + + private void updateDossierAttributes(ImportTemplateResult request, TemplateImportInfo templateImportInfo, String dossierTemplateId) { + + if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) { + this.updateDossierAttributes(request, dossierTemplateId, templateImportInfo); + } else { // no dossier attributes to add, but delete existing ones + var currentConfigs = dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId); + currentConfigs.forEach(da -> dossierAttributeConfigPersistenceService.deleteDossierAttribute(da.getId())); + } } @@ -435,7 +501,7 @@ public class DossierTemplateImportService { } - private void setColors(String dossierTemplateId, Colors requestedColors) { + private void updateColors(String dossierTemplateId, Colors requestedColors) { // set colors if (requestedColors != null) { ColorsEntity colorsEntity = convert(requestedColors, ColorsEntity.class); @@ -530,24 +596,6 @@ public class DossierTemplateImportService { } - private void updateComponents(ImportTemplateResult request, String dossierTemplateId) { - - request.getComponentDefinitions() - .forEach(componentDefinition -> { - componentDefinition.setDossierTemplateId(dossierTemplateId); - componentDefinitionPersistenceService.insert(MagicConverter.convert(componentDefinition, ComponentDefinitionEntity.class)); - }); - } - - - private void deleteComponents(List componentDefinitionEntities) { - - componentDefinitionEntities.forEach(componentDefinition -> { - componentDefinitionPersistenceService.delete(componentDefinition.getId()); - }); - } - - private void validateDossierTemplateName(DossierTemplate dossierTemplateMeta) { int nameSuffix = 0; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeExportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeExportService.java index e949768dd..2359dc2c1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeExportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeExportService.java @@ -15,9 +15,9 @@ import org.springframework.stereotype.Service; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportFilename; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.BaseDictionaryEntry; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportFilename; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.EntryPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.utils.FileSystemBackedArchiver; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; @@ -41,6 +41,7 @@ public class EntityTypeExportService { ObjectMapper mapper; EntryPersistenceService entryPersistenceService; + @Observed(name = "EntityTypeExportService", contextualName = "export-entity-type") public void addEntityTypeToArchive(FileSystemBackedArchiver fileSystemBackedArchiver, TypeEntity typeEntity, String folder) throws JsonProcessingException { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeImportService.java index 6e89e29da..343424475 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/EntityTypeImportService.java @@ -9,9 +9,9 @@ import java.util.stream.Collectors; import org.springframework.stereotype.Service; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.EntityTypeImportModel; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.BaseDictionaryEntry; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.EntityTypeImportModel; import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeExportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeExportService.java index d3d8d38ad..cfb65b4fd 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeExportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeExportService.java @@ -8,9 +8,9 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessage; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.FileExchangeNames; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.service.DossierIdFileIdRequestValidator; import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeImportService.java index bd3ff7bd6..4ac11061f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileExchangeImportService.java @@ -10,6 +10,7 @@ import com.iqser.red.service.persistence.management.v1.processor.dataexchange.mo import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.TemplateImportInfo; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; import com.iqser.red.service.persistence.service.v1.api.shared.model.ImportResponse; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; @@ -32,6 +33,7 @@ public class FileExchangeImportService { FileExchangeArchivalService fileExchangeArchivalService; ReportTemplatePersistenceService reportTemplateService; ObservationRegistry registry; + DossierTemplateManagementService dossierTemplateManagementService; @Observed(name = "FileExchangeImportService", contextualName = "import-files") @@ -68,11 +70,18 @@ public class FileExchangeImportService { .stream() .map(ReportTemplateEntity::getTemplateId) .toList(); - - for (Dossier dossierToImport : fileExchangeImportModel.getDossiers()) { - dossierImportService.importDossier(fileExchangeImportModel, userId, dossierToImport, templateImportInfo, allReportTemplateIds); + try { + for (Dossier dossierToImport : fileExchangeImportModel.getDossiers()) { + dossierImportService.importDossier(fileExchangeImportModel, userId, dossierToImport, templateImportInfo, allReportTemplateIds); + } + return templateImportInfo.getDossierTemplateId(); + } catch (Exception e) { + log.error("Error with message {} ocurred, deleting imported dossier template again.", e.getMessage()); + if (templateImportInfo.getDossierTemplateId() != null) { + dossierTemplateManagementService.deleteDossierTemplateCompletely(templateImportInfo.getDossierTemplateId()); + } + throw e; } - return templateImportInfo.getDossierTemplateId(); } @@ -90,5 +99,4 @@ public class FileExchangeImportService { } } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileImportPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileImportPersistenceService.java index 3f39342a4..ecdd5cc5d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileImportPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/FileImportPersistenceService.java @@ -4,9 +4,9 @@ import java.util.Map; import org.springframework.stereotype.Service; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.FileExchangeImportModel; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.TemplateImportInfo; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.management.v1.processor.service.UploadService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; import com.iqser.red.service.persistence.management.v1.processor.utils.FileEntityMapper; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/ManualChangesExportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/ManualChangesExportService.java index eb6b60725..473b1b8c2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/ManualChangesExportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/ManualChangesExportService.java @@ -2,9 +2,9 @@ package com.iqser.red.service.persistence.management.v1.processor.dataexchange.s import org.springframework.stereotype.Service; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualChangesExportModel; import com.iqser.red.service.persistence.management.v1.processor.mapper.ManualChangesExportMapper; import com.iqser.red.service.persistence.management.v1.processor.model.ManualChangesQueryOptions; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualChangesExportModel; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.AddRedactionPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.ForceRedactionPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.LegalBasisChangePersistenceService; @@ -39,29 +39,29 @@ public class ManualChangesExportService { ManualChangesExportModel exportModel = new ManualChangesExportModel(); exportModel.setManualAddExportModels(addRedactionPersistenceService.findEntriesByFileIdAndOptions(fileId, ManualChangesQueryOptions.all()) - .stream() - .map(mapper::toModel) - .toList()); + .stream() + .map(mapper::toModel) + .toList()); exportModel.setManualRemoveExportModels(removeRedactionPersistenceService.findEntriesByFileIdAndOptions(fileId, ManualChangesQueryOptions.all()) - .stream() - .map(mapper::toModel) - .toList()); + .stream() + .map(mapper::toModel) + .toList()); exportModel.setManualForceExportModels(forceRedactionPersistenceService.findEntriesByFileIdAndOptions(fileId, ManualChangesQueryOptions.all()) - .stream() - .map(mapper::toModel) - .toList()); + .stream() + .map(mapper::toModel) + .toList()); exportModel.setManualLegalBasisChangeExportModels(legalBasisChangePersistenceService.findEntriesByFileIdAndOptions(fileId, ManualChangesQueryOptions.all()) - .stream() - .map(mapper::toModel) - .toList()); + .stream() + .map(mapper::toModel) + .toList()); exportModel.setManualRecategorizationExportModels(recategorizationPersistenceService.findEntriesByFileIdAndOptions(fileId, ManualChangesQueryOptions.all()) - .stream() - .map(mapper::toModel) - .toList()); + .stream() + .map(mapper::toModel) + .toList()); exportModel.setManualResizeExportModels(resizeRedactionPersistenceService.findEntriesByFileIdAndOptions(fileId, ManualChangesQueryOptions.all()) - .stream() - .map(mapper::toModel) - .toList()); + .stream() + .map(mapper::toModel) + .toList()); return exportModel; } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/ManualChangesImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/ManualChangesImportService.java index 5250e7e2c..b2dcb1150 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/ManualChangesImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/service/ManualChangesImportService.java @@ -2,9 +2,9 @@ package com.iqser.red.service.persistence.management.v1.processor.dataexchange.s import org.springframework.stereotype.Service; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualChangesExportModel; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.management.v1.processor.mapper.ManualChangesExportMapper; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualChangesExportModel; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ForceRedactionRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.LegalBasisChangeRepository; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/DossierTemplateArchiveReader.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/DossierTemplateArchiveReader.java index cf78d56d0..72b9af42f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/DossierTemplateArchiveReader.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/DossierTemplateArchiveReader.java @@ -11,11 +11,11 @@ import org.apache.commons.compress.utils.FileNameUtils; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.commons.jackson.ObjectMapperFactory; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ComponentMappingImportModel; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportFilename; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ComponentMappingImportModel; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ImportTemplateResult; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.RulesExportModel; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentDefinition; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentMappingMetadata; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/EntityTypeArchiveReader.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/EntityTypeArchiveReader.java index a9d20bc0b..b58e3fa05 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/EntityTypeArchiveReader.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/EntityTypeArchiveReader.java @@ -10,9 +10,9 @@ import java.util.stream.Collectors; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.commons.jackson.ObjectMapperFactory; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.EntityTypeImportModel; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportFilename; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.EntityTypeImportModel; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type; import lombok.AccessLevel; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/FileExchangeArchiveReader.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/FileExchangeArchiveReader.java index d3ef43887..751b6bc07 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/FileExchangeArchiveReader.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/FileExchangeArchiveReader.java @@ -13,8 +13,8 @@ import java.util.regex.Pattern; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.commons.jackson.ObjectMapperFactory; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.FileExchangeImportModel; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.FileExchangeNames; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.FileExchangeImportModel; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.FileWithType; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualChangesExportModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttribute; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/ZipEntryIterator.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/ZipEntryIterator.java index 2669501dd..506b09209 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/ZipEntryIterator.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/dataexchange/zipreaders/ZipEntryIterator.java @@ -1,6 +1,10 @@ package com.iqser.red.service.persistence.management.v1.processor.dataexchange.zipreaders; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; import java.util.Iterator; import java.util.NoSuchElementException; import java.util.UUID; @@ -70,7 +74,7 @@ public class ZipEntryIterator implements Iterator, AutoCloseable { double compressionRatio = (double) totalSizeEntry / nextEntry.getCompressedSize(); if (compressionRatio > compressionThresholdRatio) { - throw new BadRequestException("ZIP-Bomb detected (compressionRatio). " + compressionRatio + "/" + compressionThresholdRatio ); + throw new BadRequestException("ZIP-Bomb detected (compressionRatio). " + compressionRatio + "/" + compressionThresholdRatio); } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/ComponentMappingEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/ComponentMappingEntity.java index 67f27f504..e9668dc8c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/ComponentMappingEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/ComponentMappingEntity.java @@ -4,7 +4,6 @@ import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.List; -import org.hibernate.annotations.Fetch; import org.springframework.data.annotation.LastModifiedDate; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/AnnotationEntityId.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/AnnotationEntityId.java index bb127624a..db3e52811 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/AnnotationEntityId.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/AnnotationEntityId.java @@ -4,7 +4,6 @@ import java.io.Serializable; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/CommentEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/CommentEntity.java index 739f5bcf8..67a5a3cb8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/CommentEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/CommentEntity.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotat import java.time.OffsetDateTime; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; @@ -9,9 +11,6 @@ import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/RectangleEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/RectangleEntity.java index 1ff69ffe6..c6b247f11 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/RectangleEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/RectangleEntity.java @@ -1,7 +1,6 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; import jakarta.persistence.Embeddable; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ViewedPageEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ViewedPageEntity.java index f8286d4d1..eb6ab8793 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ViewedPageEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ViewedPageEntity.java @@ -3,6 +3,8 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotat import java.io.Serializable; import java.time.OffsetDateTime; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; + import jakarta.persistence.Column; import jakarta.persistence.Embeddable; import jakarta.persistence.EmbeddedId; @@ -11,9 +13,6 @@ import jakarta.persistence.FetchType; import jakarta.persistence.ManyToOne; import jakarta.persistence.MapsId; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/audit/AuditEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/audit/AuditEntity.java index 0b2763e7d..7c0fbcbb9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/audit/AuditEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/audit/AuditEntity.java @@ -4,6 +4,8 @@ import java.time.OffsetDateTime; import java.util.HashMap; import java.util.Map; +import com.iqser.red.service.persistence.management.v1.processor.utils.JSONMapConverter; + import jakarta.persistence.Basic; import jakarta.persistence.Column; import jakarta.persistence.Convert; @@ -13,9 +15,6 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.management.v1.processor.utils.JSONMapConverter; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java index 05fcc900a..afbe19bc5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java @@ -4,7 +4,6 @@ import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Table; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java index c5ad43f13..24d2236f4 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java @@ -8,7 +8,6 @@ import jakarta.persistence.Id; import jakarta.persistence.PrePersist; import jakarta.persistence.PreUpdate; import jakarta.persistence.Table; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryEntryEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryEntryEntity.java index 69521864f..74b663c7d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryEntryEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryEntryEntity.java @@ -6,7 +6,6 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalseRecommendationEntryEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalseRecommendationEntryEntity.java index a712ac189..7d99af8a9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalseRecommendationEntryEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalseRecommendationEntryEntity.java @@ -6,7 +6,6 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureEntity.java index b2bdaf86a..fcd104181 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureEntity.java @@ -1,13 +1,12 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.SuppressFBWarnings; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Lob; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.SuppressFBWarnings; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureKmsEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureKmsEntity.java index 9911d6ba4..e975effb2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureKmsEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureKmsEntity.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.SuppressFBWarnings; + import jakarta.persistence.Basic; import jakarta.persistence.Column; import jakarta.persistence.Entity; @@ -7,9 +9,6 @@ import jakarta.persistence.FetchType; import jakarta.persistence.Id; import jakarta.persistence.Lob; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.SuppressFBWarnings; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureTypeEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureTypeEntity.java index acd7e1a2a..ea9c05c41 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureTypeEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureTypeEntity.java @@ -1,15 +1,14 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.DigitalSignatureType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.SuppressFBWarnings; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; import jakarta.persistence.Id; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.DigitalSignatureType; -import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.SuppressFBWarnings; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/FileAttributesGeneralConfigurationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/FileAttributesGeneralConfigurationEntity.java index d03bf6c98..3cdafabad 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/FileAttributesGeneralConfigurationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/FileAttributesGeneralConfigurationEntity.java @@ -1,15 +1,14 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.MapsId; import jakarta.persistence.OneToOne; import jakarta.persistence.Table; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java index f750dc3e1..34dcf74bd 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java @@ -2,7 +2,6 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configu import jakarta.persistence.Column; import jakarta.persistence.Embeddable; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java index 8c09d538b..843e04806 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java @@ -3,11 +3,15 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configu import java.util.ArrayList; import java.util.List; -import jakarta.persistence.*; - import org.hibernate.annotations.Fetch; import org.hibernate.annotations.FetchMode; +import jakarta.persistence.Column; +import jakarta.persistence.ElementCollection; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/TypeEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/TypeEntity.java index bdbe6b86a..447664f00 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/TypeEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/TypeEntity.java @@ -2,6 +2,9 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configu import java.time.OffsetDateTime; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -9,10 +12,6 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/WatermarkEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/WatermarkEntity.java index 32072f0b4..1366d5c5c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/WatermarkEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/WatermarkEntity.java @@ -2,6 +2,11 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configu import java.time.OffsetDateTime; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.HorizontalTextAlignment; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.VerticalTextAlignment; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.WatermarkOrientation; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; @@ -13,12 +18,6 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.HorizontalTextAlignment; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.VerticalTextAlignment; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.WatermarkOrientation; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ComponentDefinitionEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ComponentDefinitionEntity.java index 31ad16c90..89d7c6ffb 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ComponentDefinitionEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ComponentDefinitionEntity.java @@ -4,8 +4,6 @@ import java.time.OffsetDateTime; import jakarta.persistence.Column; import jakarta.persistence.Entity; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; import jakarta.persistence.UniqueConstraint; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeConfigEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeConfigEntity.java index d32875d31..2c368edf3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeConfigEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeConfigEntity.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierAttributeType; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; @@ -7,9 +9,6 @@ import jakarta.persistence.Enumerated; import jakarta.persistence.Id; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierAttributeType; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeEntity.java index f2e1ea0fd..66d5f0d33 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeEntity.java @@ -7,7 +7,6 @@ import jakarta.persistence.Embeddable; import jakarta.persistence.EmbeddedId; import jakarta.persistence.Entity; import jakarta.persistence.Table; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierEntity.java index feeb1226b..b0886bc76 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierEntity.java @@ -6,6 +6,17 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + +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.shared.model.dossiertemplate.DownloadFileType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierVisibility; + import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Convert; @@ -19,18 +30,6 @@ import jakarta.persistence.ManyToMany; import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; - -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; - -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.shared.model.dossiertemplate.DownloadFileType; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierVisibility; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierStatusEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierStatusEntity.java index e2f85fef9..e717e91e0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierStatusEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierStatusEntity.java @@ -3,6 +3,9 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier import java.util.ArrayList; import java.util.List; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -11,10 +14,6 @@ import jakarta.persistence.JoinColumn; import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; - -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java index 4a182c0b8..6ca5a5a6d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java @@ -1,5 +1,8 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeType; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; @@ -7,10 +10,6 @@ import jakarta.persistence.Enumerated; import jakarta.persistence.Id; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeType; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeEntity.java index add81d9e4..abfc0e988 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeEntity.java @@ -7,7 +7,6 @@ import jakarta.persistence.Embeddable; import jakarta.persistence.EmbeddedId; import jakarta.persistence.Entity; import jakarta.persistence.Table; - import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ReportTemplateEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ReportTemplateEntity.java index 2d3e69bfa..faf7dc8ad 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ReportTemplateEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ReportTemplateEntity.java @@ -4,6 +4,8 @@ import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnore; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -11,9 +13,6 @@ import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; - -import com.fasterxml.jackson.annotation.JsonIgnore; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/download/DownloadRedactionFileStatusEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/download/DownloadRedactionFileStatusEntity.java index 6d68d43b8..359f131f8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/download/DownloadRedactionFileStatusEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/download/DownloadRedactionFileStatusEntity.java @@ -1,17 +1,21 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.download; +import java.util.ArrayList; +import java.util.List; + import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionResultDetail; import com.iqser.red.service.persistence.management.v1.processor.utils.JSONDownloadRedactionFileDetailsConverter; -import jakarta.persistence.*; +import jakarta.persistence.Column; +import jakarta.persistence.Convert; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.ArrayList; -import java.util.List; - @Data @Entity @Builder diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/index/IndexInformationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/index/IndexInformationEntity.java index e1e33db3e..5d9bfa38d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/index/IndexInformationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/index/IndexInformationEntity.java @@ -2,13 +2,12 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.index; import java.time.OffsetDateTime; +import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.SuppressFBWarnings; + import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.service.v1.api.shared.model.utils.SuppressFBWarnings; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/MigrationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/MigrationEntity.java index 08a214d4c..13696e266 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/MigrationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/MigrationEntity.java @@ -6,7 +6,6 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/SaasMigrationStatusEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/SaasMigrationStatusEntity.java index b4ed82546..8082bcd84 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/SaasMigrationStatusEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/SaasMigrationStatusEntity.java @@ -2,7 +2,12 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.migrati import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.SaasMigrationStatus; -import jakarta.persistence.*; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationEntity.java index 3602548d7..2d050eb9f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationEntity.java @@ -4,6 +4,8 @@ import java.time.OffsetDateTime; import java.util.HashMap; import java.util.Map; +import com.iqser.red.service.persistence.management.v1.processor.utils.JSONMapConverter; + import jakarta.persistence.Basic; import jakarta.persistence.Column; import jakarta.persistence.Convert; @@ -12,11 +14,7 @@ import jakarta.persistence.FetchType; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; - -import com.iqser.red.service.persistence.management.v1.processor.utils.JSONMapConverter; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationPreferencesEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationPreferencesEntity.java index c5ba59d42..8101fb327 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationPreferencesEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationPreferencesEntity.java @@ -3,18 +3,17 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.notific import java.util.ArrayList; import java.util.List; +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + +import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.EmailNotificationType; + import jakarta.persistence.Column; import jakarta.persistence.ElementCollection; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; import jakarta.persistence.Id; import jakarta.persistence.Table; - -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; - -import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.EmailNotificationType; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/permissions/CustomPermissionEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/permissions/CustomPermissionEntity.java index b41e3dab1..ddb4582a9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/permissions/CustomPermissionEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/permissions/CustomPermissionEntity.java @@ -7,7 +7,6 @@ import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.IdClass; import jakarta.persistence.Table; - import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/jobs/CreateJobsConfiguration.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/jobs/CreateJobsConfiguration.java index 660fbfa8f..0f41ef832 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/jobs/CreateJobsConfiguration.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/jobs/CreateJobsConfiguration.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.management.v1.processor.jobs; import java.text.ParseException; -import com.iqser.red.service.persistence.management.v1.processor.service.job.*; - import org.quartz.CronExpression; import org.quartz.CronScheduleBuilder; import org.quartz.JobBuilder; @@ -13,6 +11,15 @@ import org.quartz.TriggerBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import com.iqser.red.service.persistence.management.v1.processor.service.job.AnalysisFlagCalculationSchedulerJob; +import com.iqser.red.service.persistence.management.v1.processor.service.job.AutomaticAnalysisJob; +import com.iqser.red.service.persistence.management.v1.processor.service.job.DeletedFilesCleanupJob; +import com.iqser.red.service.persistence.management.v1.processor.service.job.DownloadCleanupJob; +import com.iqser.red.service.persistence.management.v1.processor.service.job.DownloadReadyJob; +import com.iqser.red.service.persistence.management.v1.processor.service.job.KeyCloakUserSyncJob; +import com.iqser.red.service.persistence.management.v1.processor.service.job.SendNotificationEmailJob; +import com.iqser.red.service.persistence.management.v1.processor.service.job.SyncUserPermissionsJob; + @Configuration public class CreateJobsConfiguration { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/lifecycle/LifecycleProperties.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/lifecycle/LifecycleProperties.java index bab7b5d2f..3de6b4f7d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/lifecycle/LifecycleProperties.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/lifecycle/LifecycleProperties.java @@ -13,4 +13,5 @@ import lombok.NoArgsConstructor; public class LifecycleProperties { private String basePackage; + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/mapper/ManualChangesExportMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/mapper/ManualChangesExportMapper.java index 5e5f4b6b6..9a6beea47 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/mapper/ManualChangesExportMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/mapper/ManualChangesExportMapper.java @@ -8,6 +8,12 @@ import org.mapstruct.MappingTarget; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualAddExportModel; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualForceExportModel; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualLegalBasisChangeExportModel; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualRecategorizationExportModel; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualRemoveExportModel; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualResizeExportModel; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity; @@ -16,12 +22,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualResizeRedactionEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualAddExportModel; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualForceExportModel; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualLegalBasisChangeExportModel; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualRecategorizationExportModel; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualRemoveExportModel; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.manualchanges.ManualResizeExportModel; @Mapper public interface ManualChangesExportMapper { @@ -74,7 +74,8 @@ public interface ManualChangesExportMapper { @AfterMapping default void setFileStatusAndId(ManualLegalBasisChangeExportModel model, @MappingTarget ManualLegalBasisChangeEntity.ManualLegalBasisChangeEntityBuilder entity, - @Context FileEntity file, @Context String userId) { + @Context FileEntity file, + @Context String userId) { AnnotationEntityId annotationEntityId = new AnnotationEntityId(model.getAnnotationId(), file.getId()); entity.id(annotationEntityId); @@ -86,7 +87,8 @@ public interface ManualChangesExportMapper { @AfterMapping default void setFileStatusAndId(ManualRecategorizationExportModel model, @MappingTarget ManualRecategorizationEntity.ManualRecategorizationEntityBuilder entity, - @Context FileEntity file, @Context String userId) { + @Context FileEntity file, + @Context String userId) { AnnotationEntityId annotationEntityId = new AnnotationEntityId(model.getAnnotationId(), file.getId()); entity.id(annotationEntityId); @@ -96,7 +98,10 @@ public interface ManualChangesExportMapper { @AfterMapping - default void setFileStatusAndId(ManualAddExportModel model, @MappingTarget ManualRedactionEntryEntity.ManualRedactionEntryEntityBuilder entity, @Context FileEntity file, @Context String userId) { + default void setFileStatusAndId(ManualAddExportModel model, + @MappingTarget ManualRedactionEntryEntity.ManualRedactionEntryEntityBuilder entity, + @Context FileEntity file, + @Context String userId) { AnnotationEntityId annotationEntityId = new AnnotationEntityId(model.getAnnotationId(), file.getId()); entity.id(annotationEntityId); @@ -106,7 +111,10 @@ public interface ManualChangesExportMapper { @AfterMapping - default void setFileStatusAndId(ManualResizeExportModel model, @MappingTarget ManualResizeRedactionEntity.ManualResizeRedactionEntityBuilder entity, @Context FileEntity file, @Context String userId) { + default void setFileStatusAndId(ManualResizeExportModel model, + @MappingTarget ManualResizeRedactionEntity.ManualResizeRedactionEntityBuilder entity, + @Context FileEntity file, + @Context String userId) { AnnotationEntityId annotationEntityId = new AnnotationEntityId(model.getAnnotationId(), file.getId()); entity.id(annotationEntityId); @@ -116,7 +124,10 @@ public interface ManualChangesExportMapper { @AfterMapping - default void setFileStatusAndId(ManualForceExportModel model, @MappingTarget ManualForceRedactionEntity.ManualForceRedactionEntityBuilder entity, @Context FileEntity file, @Context String userId) { + default void setFileStatusAndId(ManualForceExportModel model, + @MappingTarget ManualForceRedactionEntity.ManualForceRedactionEntityBuilder entity, + @Context FileEntity file, + @Context String userId) { AnnotationEntityId annotationEntityId = new AnnotationEntityId(model.getAnnotationId(), file.getId()); entity.id(annotationEntityId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/SaasAnnotationIdMigrationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/SaasAnnotationIdMigrationService.java index 239f2981f..2c07f325f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/SaasAnnotationIdMigrationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/SaasAnnotationIdMigrationService.java @@ -1,9 +1,23 @@ package com.iqser.red.service.persistence.management.v1.processor.migration; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.*; +import org.springframework.stereotype.Service; + +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRecategorizationEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualResizeRedactionEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.RectangleEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.CommentRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.*; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ForceRedactionRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.LegalBasisChangeRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ManualRedactionRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RecategorizationRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.RemoveRedactionRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ResizeRedactionRepository; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import jakarta.transaction.Transactional; @@ -12,8 +26,6 @@ import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - @Slf4j @Service @Transactional diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/SaasMigrationManualChangesUpdateService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/SaasMigrationManualChangesUpdateService.java index cfdcfbd6f..49b2351b4 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/SaasMigrationManualChangesUpdateService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/SaasMigrationManualChangesUpdateService.java @@ -12,8 +12,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity; import com.iqser.red.service.persistence.management.v1.processor.model.ManualChangesQueryOptions; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.AddRedactionPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.RemoveRedactionPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.ResizeRedactionPersistenceService; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; import lombok.RequiredArgsConstructor; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/UncompressedFilesMigrationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/UncompressedFilesMigrationService.java index 72090d8ad..882b3e596 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/UncompressedFilesMigrationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/UncompressedFilesMigrationService.java @@ -2,19 +2,16 @@ package com.iqser.red.service.persistence.management.v1.processor.migration; import java.io.File; import java.io.FileInputStream; -import java.io.FileOutputStream; import java.nio.file.Files; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.concurrent.atomic.AtomicInteger; +import org.apache.commons.io.IOUtils; import org.springframework.stereotype.Service; import com.azure.storage.blob.BlobClient; -import com.azure.storage.blob.BlobContainerClient; -import com.iqser.red.storage.commons.exception.StorageException; import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; import com.iqser.red.storage.commons.service.StorageClientCache; import com.iqser.red.storage.commons.service.StorageService; @@ -23,9 +20,6 @@ import com.iqser.red.storage.commons.service.azure.AzureBlobClient; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; - -import org.apache.commons.io.IOUtils; - import software.amazon.awssdk.services.s3.model.DeleteObjectRequest; import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.services.s3.model.ListObjectsV2Request; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/FixDossierDictionaryEntryInRedactionLog14.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/FixDossierDictionaryEntryInRedactionLog14.java index eab343abc..d24bf2ad5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/FixDossierDictionaryEntryInRedactionLog14.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/FixDossierDictionaryEntryInRedactionLog14.java @@ -1,12 +1,12 @@ package com.iqser.red.service.persistence.management.v1.processor.migration.migrations; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.migration.Migration; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - @Slf4j @Setter @Service diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/MigrateImportedRedactionsFiles17.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/MigrateImportedRedactionsFiles17.java index 1fbd780fb..61deda566 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/MigrateImportedRedactionsFiles17.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/MigrateImportedRedactionsFiles17.java @@ -1,6 +1,5 @@ package com.iqser.red.service.persistence.management.v1.processor.migration.migrations; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -14,7 +13,6 @@ import com.iqser.red.service.persistence.management.v1.processor.service.FileMan import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.Position; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.imported.ImportedRedaction; -import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.imported.ImportedRedactions; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.imported.ImportedRedactionsPerPage; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/MissingFileSizeMigration13.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/MissingFileSizeMigration13.java index e44aa2641..9242d44ee 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/MissingFileSizeMigration13.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/migration/migrations/MissingFileSizeMigration13.java @@ -1,5 +1,10 @@ package com.iqser.red.service.persistence.management.v1.processor.migration.migrations; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.management.v1.processor.migration.Migration; import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; @@ -9,11 +14,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - @Slf4j @Setter @Service diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/ComponentOverride.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/ComponentOverride.java index 5a06c3994..e03ce504d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/ComponentOverride.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/ComponentOverride.java @@ -18,4 +18,5 @@ public class ComponentOverride { String name; List componentOverrideValues = new ArrayList<>(); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/ManualChangesQueryOptions.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/ManualChangesQueryOptions.java index efc747575..340fc0868 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/ManualChangesQueryOptions.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/ManualChangesQueryOptions.java @@ -43,6 +43,7 @@ public class ManualChangesQueryOptions { return ManualChangesQueryOptions.builder().includeDeletions(false).includeDictChanges(true).includeOnlyUnprocessed(true).build(); } + public static ManualChangesQueryOptions unprocessedOnlyForIds(List annotationIds) { return ManualChangesQueryOptions.builder().includeDeletions(false).includeDictChanges(true).includeOnlyUnprocessed(true).annotationIds(annotationIds).build(); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/AnalyseEvent.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/AnalyseEvent.java index 3ca4d5b0d..1bf96e707 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/AnalyseEvent.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/AnalyseEvent.java @@ -21,7 +21,9 @@ public class AnalyseEvent { private int numberOfPagesToOCR; private int numberOfOCRedPages; + public AnalyseEvent(String dossierId, String fileId, AnalyseStatus analyseStatus, Integer analysisNumber, OffsetDateTime timestamp) { + this.dossierId = dossierId; this.fileId = fileId; this.analyseStatus = analyseStatus; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DossierEvent.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DossierEvent.java index f8eefbde7..4ce49246d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DossierEvent.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DossierEvent.java @@ -10,6 +10,8 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class DossierEvent { + private String dossierId; private DossierEventType dossierEventType; + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DossierEventType.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DossierEventType.java index 7399e1c5a..ed14e47b8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DossierEventType.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DossierEventType.java @@ -1,5 +1,11 @@ package com.iqser.red.service.persistence.management.v1.processor.model.websocket; public enum DossierEventType { - CREATE, UPDATE, SOFT_DELETE, HARD_DELETE, UNDELETE, ARCHIVE, UNARCHIVE + CREATE, + UPDATE, + SOFT_DELETE, + HARD_DELETE, + UNDELETE, + ARCHIVE, + UNARCHIVE } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DownloadEvent.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DownloadEvent.java index 9b64a898b..cd0d6e4a5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DownloadEvent.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/DownloadEvent.java @@ -16,4 +16,5 @@ public class DownloadEvent { private String downloadId; private String userId; private DownloadStatusValue status; + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/FileEvent.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/FileEvent.java index 244ca757b..891cd78d8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/FileEvent.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/FileEvent.java @@ -15,5 +15,4 @@ public class FileEvent { private String fileId; private FileEventType fileEventType; - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/FileEventType.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/FileEventType.java index c075d892a..0787859ee 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/FileEventType.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/FileEventType.java @@ -1,5 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.model.websocket; public enum FileEventType { - CREATE, UPDATE, SOFT_DELETE, HARD_DELETE, UNDELETE + CREATE, + UPDATE, + SOFT_DELETE, + HARD_DELETE, + UNDELETE } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/NotificationEvent.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/NotificationEvent.java index 8c147a0b0..4db187eb0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/NotificationEvent.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/websocket/NotificationEvent.java @@ -12,4 +12,5 @@ import lombok.NoArgsConstructor; public class NotificationEvent { private String userId; + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentDefinitionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentDefinitionService.java index e4363e3d1..dbea426bd 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentDefinitionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentDefinitionService.java @@ -47,7 +47,8 @@ public class ComponentDefinitionService { validateAddRequest(componentDefinitionAddRequests); List componentEntities = new ArrayList<>(); - componentDefinitionAddRequests.forEach(componentDefinitionAddRequest -> componentEntities.add(componentDefinitionPersistenceService.insert(componentDefinitionAddRequest, dossierTemplateId))); + componentDefinitionAddRequests.forEach(componentDefinitionAddRequest -> componentEntities.add(componentDefinitionPersistenceService.insert(componentDefinitionAddRequest, + dossierTemplateId))); return componentEntities.stream() .map(componentDefinitionEntity -> MagicConverter.convert(componentDefinitionEntity, ComponentDefinition.class)) .sorted(Comparator.comparing(ComponentDefinition::getRank)) @@ -57,7 +58,9 @@ public class ComponentDefinitionService { private void validateAddRequest(List componentDefinitionAddRequests) { - long nrOfComponentsWithEmptyTechnicalName = componentDefinitionAddRequests.stream().filter(c -> StringUtils.isEmpty(c.getTechnicalName())).count(); + long nrOfComponentsWithEmptyTechnicalName = componentDefinitionAddRequests.stream() + .filter(c -> StringUtils.isEmpty(c.getTechnicalName())) + .count(); if (nrOfComponentsWithEmptyTechnicalName != 0) { throw new BadRequestException("Technical name can not be empty for a component."); } @@ -193,4 +196,5 @@ public class ComponentDefinitionService { throw new NotFoundException(String.format("DossierTemplate with Id %s not found.", dossierTemplateId)); } } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentLogService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentLogService.java index 8bd0db3b4..6b77f255b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentLogService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentLogService.java @@ -48,7 +48,8 @@ public class ComponentLogService { public ComponentLog getComponentLog(String dossierId, String fileId, boolean includeOverrides) { - List orderedEntities = componentDefinitionPersistenceService.findByDossierTemplateIdAndNotSoftDeleted(dossierRepository.findDossierTemplateId(dossierId)) + List orderedEntities = componentDefinitionPersistenceService.findByDossierTemplateIdAndNotSoftDeleted(dossierRepository.findDossierTemplateId( + dossierId)) .stream() .sorted(Comparator.comparing(ComponentDefinitionEntity::getRank)) .toList(); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentMappingService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentMappingService.java index c725fa8e6..146263df1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentMappingService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ComponentMappingService.java @@ -17,6 +17,7 @@ import java.util.List; import java.util.UUID; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.iqser.red.service.persistence.management.v1.processor.entity.ComponentMappingEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; @@ -229,6 +230,13 @@ public class ComponentMappingService { return dossierTemplateId + "/" + id + "_" + name + "_" + fileName; } + @Transactional + public void deleteByDossierTemplateId(String dossierTemplateId) { + + componentMappingPersistenceService.getByDossierTemplateId(dossierTemplateId) + .forEach(cm -> componentMappingPersistenceService.deleteById(dossierTemplateId, cm.getId())); + } + private static class CSVSorter implements Comparator { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java index 8df87041d..2d67aed6e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryManagementService.java @@ -33,6 +33,7 @@ import com.iqser.red.service.persistence.management.v1.processor.utils.TypeMappe import com.iqser.red.service.persistence.management.v1.processor.validation.DictionaryValidator; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.TypeRankSummary; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import jakarta.transaction.Transactional; @@ -237,10 +238,11 @@ public class DictionaryManagementService { @Transactional public void addEntries(String typeId, List entries, boolean removeCurrent, boolean ignoreInvalidEntries, DictionaryEntryType dictionaryEntryType) { + addEntries(typeId, entries, removeCurrent, ignoreInvalidEntries, dictionaryEntryType, false); } - - + + @Transactional public void addEntries(String typeId, List entries, boolean removeCurrent, boolean ignoreInvalidEntries, DictionaryEntryType dictionaryEntryType, boolean isImport) { @@ -403,6 +405,13 @@ public class DictionaryManagementService { } + @Transactional + public void hardDeleteByDossierTemplateId(String dossierTemplateId) { + + dictionaryPersistenceService.hardDeleteTypesByDossierTemplateId(dossierTemplateId); + } + + public long getCurrentVersion(String typeId) { Type typeResult = MagicConverter.convert(dictionaryPersistenceService.getType(typeId), Type.class); @@ -432,4 +441,16 @@ public class DictionaryManagementService { } + + public List getTypeRankSummaryList(String dossierTemplateId) { + + return dictionaryPersistenceService.getTypeRankSummaryList(dossierTemplateId); + } + + + public void hardDeleteByDossierId(String dossierId) { + + dictionaryPersistenceService.hardDeleteTypesByDossierId(dossierId); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java index 993f7e4d8..9b8a67d53 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DictionaryService.java @@ -132,7 +132,8 @@ public class DictionaryService { if (entriesToDelete != null && !entriesToDelete.isEmpty()) { deleteGlobalEntries(type, dossierTemplateId, entriesToDelete, dictionaryEntryType); } - if (entriesToAdd != null && !entriesToAdd.isEmpty() && !entriesToAdd.stream().allMatch(String::isEmpty)) { + if (entriesToAdd != null && !entriesToAdd.isEmpty() && !entriesToAdd.stream() + .allMatch(String::isEmpty)) { addGlobalEntries(type, dossierTemplateId, entriesToAdd, false, dictionaryEntryType); } } @@ -150,7 +151,8 @@ public class DictionaryService { if (entriesToDelete != null && !entriesToDelete.isEmpty()) { deleteDossierEntries(type, dossierTemplateId, entriesToDelete, dossierId, dictionaryEntryType); } - if (entriesToAdd != null && !entriesToAdd.isEmpty() && !entriesToAdd.stream().allMatch(String::isEmpty)) { + if (entriesToAdd != null && !entriesToAdd.isEmpty() && !entriesToAdd.stream() + .allMatch(String::isEmpty)) { addDossierEntries(type, dossierTemplateId, entriesToAdd, false, dossierId, dictionaryEntryType); } } @@ -487,6 +489,7 @@ public class DictionaryService { return MagicConverter.convert(colorsService.getColors(dossierTemplateId), Colors.class); } + @PreAuthorize("hasAuthority('" + ADD_UPDATE_DICTIONARY_TYPE + "')") public void changeAddToDictionary(String type, String dossierTemplateId, String dossierId, boolean addToDictionary) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java index ac2c66722..d8c54434b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java @@ -1,7 +1,5 @@ package com.iqser.red.service.persistence.management.v1.processor.service; -import jakarta.transaction.Transactional; - import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -10,11 +8,12 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DigitalSignatureRepository; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.DigitalSignature; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.DigitalSignatureType; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import com.knecon.fforesight.tenantcommons.EncryptionDecryptionService; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierAttributesManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierAttributesManagementService.java index 5f18bc2c4..2ac71d617 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierAttributesManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierAttributesManagementService.java @@ -13,12 +13,11 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; 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.service.persistence.DossierAttributeConfigPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributePersistenceService; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierAttribute; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierAttributeType; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import lombok.RequiredArgsConstructor; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierCreatorService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierCreatorService.java index 0a055ebb4..e32536e1d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierCreatorService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierCreatorService.java @@ -1,5 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.service; +import java.util.Set; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; import com.iqser.red.service.persistence.management.v1.processor.utils.DossierMapper; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest; @@ -11,10 +15,6 @@ import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.Set; - @Slf4j @Service @RequiredArgsConstructor diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierDeletionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierDeletionService.java index f1e91341e..24dee8350 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierDeletionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierDeletionService.java @@ -5,6 +5,10 @@ import java.util.List; import org.springframework.stereotype.Service; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeConfigRepository; + import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @@ -14,6 +18,10 @@ public class DossierDeletionService { private final FileDeletionService fileDeletionService; private final DossierService dossierService; + private final DictionaryManagementService dictionaryManagementService; + private final DossierAttributePersistenceService dossierAttributePersistenceService; + private final DossierAttributeConfigRepository dossierAttributeConfigRepository; + private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; @Transactional @@ -44,6 +52,19 @@ public class DossierDeletionService { } + public void deleteAllDossiersInTemplate(String dossierTemplateId) { + + for (String dossierId : dossierService.getAllDossierIdsForDossierTemplateId(dossierTemplateId)) { + + fileDeletionService.hardDeleteFilesAndDataByDossierId(dossierId); + dictionaryManagementService.hardDeleteByDossierId(dossierId); + dossierAttributePersistenceService.deleteDossierAttribute(dossierId); + dossierService.hardDeleteDossier(dossierId); + } + + } + + public void hardDeleteFileDataAndIndexUpdates(String dossierId, List fileIds) { fileDeletionService.hardDeleteFileDataAndIndexUpdates(dossierId, fileIds); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierIdFileIdRequestValidator.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierIdFileIdRequestValidator.java index 11dc6aa41..813eb5e99 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierIdFileIdRequestValidator.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierIdFileIdRequestValidator.java @@ -1,6 +1,5 @@ package com.iqser.red.service.persistence.management.v1.processor.service; -import java.util.HashSet; import java.util.Set; import java.util.stream.Collectors; @@ -23,6 +22,7 @@ public class DossierIdFileIdRequestValidator { DossierManagementService dossierManagementService; FileStatusManagementService fileStatusManagementService; + @Observed(name = "DossierIdFileIdRequestValidator", contextualName = "validate-request") public void validateRequestOrThrow404(String dossierTemplateId, Set dossierIds, Set fileIds) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierManagementService.java index 7ef356635..ee3666d0c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierManagementService.java @@ -1,5 +1,16 @@ package com.iqser.red.service.persistence.management.v1.processor.service; +import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; + +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Collections; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; import com.iqser.red.service.persistence.management.v1.processor.utils.DossierMapper; @@ -16,17 +27,6 @@ import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.Collections; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - -import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; - @Slf4j @Service @RequiredArgsConstructor @@ -64,8 +64,9 @@ public class DossierManagementService { List fileStatuses = fileStatusService.getDossierStatus(dossierId); var relevantFileIds = fileStatuses.stream() - .filter(fileStatus -> fileStatus.getDeleted() == null).map(FileModel::getId).toList(); - + .filter(fileStatus -> fileStatus.getDeleted() == null) + .map(FileModel::getId) + .toList(); dossierDeletionService.softDeleteDossier(dossierId, relevantFileIds, now); fileDeletionService.reindexDeletedFiles(dossierId, relevantFileIds); @@ -119,6 +120,7 @@ public class DossierManagementService { } + @Transactional public Set getAllDossierIdsForDossierTemplateId(String dossierTemplateId) { @@ -208,7 +210,10 @@ public class DossierManagementService { for (String dossierId : dossierIds) { - List fileIds = fileStatusService.getDossierStatus(dossierId).stream().map(FileModel::getId).collect(Collectors.toList()); + List fileIds = fileStatusService.getDossierStatus(dossierId) + .stream() + .map(FileModel::getId) + .collect(Collectors.toList()); dossierDeletionService.hardDeleteDossier(dossierId, fileIds); dossierDeletionService.hardDeleteFileDataAndIndexUpdates(dossierId, fileIds); } @@ -221,10 +226,13 @@ public class DossierManagementService { for (String dossierId : dossierIds) { var dossier = dossierService.getDossierById(dossierId); List fileStatuses = fileStatusService.getDossierStatus(dossierId); - var relevantFileIds = fileStatuses.stream().filter(fileStatus -> fileStatus.getDeleted() != null && (fileStatus.getDeleted().equals(dossier.getSoftDeletedTime()) || fileStatus.getDeleted() - .isAfter(dossier.getSoftDeletedTime()))).map(FileModel::getId).collect(Collectors.toList()); + var relevantFileIds = fileStatuses.stream() + .filter(fileStatus -> fileStatus.getDeleted() != null && (fileStatus.getDeleted().equals(dossier.getSoftDeletedTime()) || fileStatus.getDeleted() + .isAfter(dossier.getSoftDeletedTime()))) + .map(FileModel::getId) + .collect(Collectors.toList()); - dossierDeletionService.undeleteDossier(dossierId,relevantFileIds,dossier.getSoftDeletedTime()); + dossierDeletionService.undeleteDossier(dossierId, relevantFileIds, dossier.getSoftDeletedTime()); dossierDeletionService.reindexUndeletedFiles(dossier.getDossierTemplateId(), dossierId, relevantFileIds); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierService.java index 8a18c26d4..bb4efd2f6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierService.java @@ -6,6 +6,7 @@ import java.util.Set; import org.springframework.stereotype.Service; +import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; @@ -118,6 +119,7 @@ public class DossierService { } + @Transactional public void hardDeleteDossier(String dossierId) { dossierPersistenceService.hardDelete(dossierId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java index 6d56e875e..11849c511 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java @@ -92,7 +92,6 @@ public class DossierTemplateCloneService { } DossierTemplateEntity clonedDossierTemplate = DossierTemplateEntity.copyDossierTemplateEntityWithoutChildEntities(dossierTemplate.get()); - dossierTemplatePersistenceService.validateDossierTemplateForDuplicateRanks(dossierTemplateId); OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); clonedDossierTemplate.setId(UUID.randomUUID().toString()); clonedDossierTemplate.setName(cloneDossierTemplateRequest.getName()); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java index 074f204cc..8ef548696 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateManagementService.java @@ -3,18 +3,19 @@ package com.iqser.red.service.persistence.management.v1.processor.service; import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter.convert; import java.util.List; +import java.util.stream.Collectors; import org.springframework.stereotype.Service; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateExportService; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributePersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; -import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CloneDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -24,10 +25,15 @@ import lombok.extern.slf4j.Slf4j; @RequiredArgsConstructor public class DossierTemplateManagementService { - private final DossierTemplateExportService dossierTemplateExportService; - private final DossierTemplateImportService dossierTemplateImportService; private final DossierTemplatePersistenceService dossierTemplatePersistenceService; private final DossierTemplateCloneService dossierTemplateCloneService; + private final DossierDeletionService dossierDeletionService; + private final DictionaryManagementService dictionaryManagementService; + private final ComponentMappingService componentMappingService; + private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; + private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; + private final ReportTemplatePersistenceService reportTemplatePersistenceService; + private final WatermarkService watermarkService; public DossierTemplate createOrUpdateDossierTemplate(CreateOrUpdateDossierTemplateRequest dossierTemplate) { @@ -48,29 +54,44 @@ public class DossierTemplateManagementService { } - public void deleteDossierTemplate(String dossierTemplateId, String deletingUserId) { + public void deleteDossierTemplateCompletely(String dossierTemplateId) { - dossierTemplatePersistenceService.deleteDossierTemplate(dossierTemplateId, deletingUserId); + watermarkService.deleteByDossierTemplateId(dossierTemplateId); + reportTemplatePersistenceService.deleteAllByDossierTemplateId(dossierTemplateId); + fileAttributeConfigPersistenceService.deleteByDossierTemplateId(dossierTemplateId); + dictionaryManagementService.hardDeleteByDossierTemplateId(dossierTemplateId); + componentMappingService.deleteByDossierTemplateId(dossierTemplateId); + dossierDeletionService.deleteAllDossiersInTemplate(dossierTemplateId); + dossierAttributeConfigPersistenceService.deleteAllDossierAttributeConfigsInTemplate(dossierTemplateId); + dossierTemplatePersistenceService.deleteDossierTemplate(dossierTemplateId); + } + + + public void softDeleteDossierTemplate(String dossierTemplateId, String userId) { + + dossierTemplatePersistenceService.softDeleteDossierTemplate(dossierTemplateId, userId); } public DossierTemplate cloneDossierTemplate(String dossierTemplateId, CloneDossierTemplateRequest cloneDossierTemplateRequest) { + validateDossierTemplateForDuplicateRanks(dossierTemplateId); return convert(dossierTemplateCloneService.cloneDossierTemplate(dossierTemplateId, cloneDossierTemplateRequest), DossierTemplate.class); } - public JSONPrimitive prepareExportDownload(ExportDownloadRequest request) { + public void validateDossierTemplateForDuplicateRanks(String dossierTemplateId) { - return dossierTemplateExportService.prepareExportDownload(request); - } - - - - public DossierTemplate importDossierTemplate(ImportDossierTemplateRequest request) { - - String dossierTemplateId = dossierTemplateImportService.importDossierTemplate(request); - return convert(dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId), DossierTemplate.class); + var duplicateRanks = dictionaryManagementService.getTypeRankSummaryList(dossierTemplateId) + .stream() + .filter(t -> t.getTypesCount() > 1) + .toList(); + if (!duplicateRanks.isEmpty()) { + String errorMessage = "Duplicate ranks found in dossier template " + dossierTemplateId + "\n" + duplicateRanks.stream() + .map(t -> String.format(" Rank %d has %d entries", t.getRank(), t.getTypesCount())) + .collect(Collectors.joining("\n")); + throw new BadRequestException(errorMessage); + } } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DownloadService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DownloadService.java index 55af4280e..796b4e77b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DownloadService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DownloadService.java @@ -20,14 +20,14 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ReportTemplateRepository; import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; -import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatusValue; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils; import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatus; +import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatusValue; import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadWithOptionRequest; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EmailService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EmailService.java index 67b8fcb27..0005bf17e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EmailService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EmailService.java @@ -4,14 +4,6 @@ import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.Properties; -import jakarta.mail.Address; -import jakarta.mail.Message; -import jakarta.mail.Multipart; -import jakarta.mail.internet.AddressException; -import jakarta.mail.internet.InternetAddress; -import jakarta.mail.internet.MimeBodyPart; -import jakarta.mail.internet.MimeMultipart; - import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.stereotype.Service; @@ -19,6 +11,13 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.SMTPConfiguration; +import jakarta.mail.Address; +import jakarta.mail.Message; +import jakarta.mail.Multipart; +import jakarta.mail.internet.AddressException; +import jakarta.mail.internet.InternetAddress; +import jakarta.mail.internet.MimeBodyPart; +import jakarta.mail.internet.MimeMultipart; import lombok.extern.slf4j.Slf4j; /* diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMongoWrapperService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMongoWrapperService.java index 15dd91688..7e6c69baf 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMongoWrapperService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMongoWrapperService.java @@ -37,7 +37,12 @@ public class EntityLogMongoWrapperService { if (includeUnprocessed) { DossierEntity dossier = dossierService.getDossierById(dossierId); ManualRedactions unprocessedManualRedactions = manualRedactionProviderService.getManualRedactions(fileId, ManualChangesQueryOptions.unprocessedOnlyForIds(ids)); - entityLogEntries = entityLogMergeService.mergeEntityLogEntries(unprocessedManualRedactions, entityLogEntries.stream().map(EntityLogEntry::getId).toList(), dossier, fileId); + entityLogEntries = entityLogMergeService.mergeEntityLogEntries(unprocessedManualRedactions, + entityLogEntries.stream() + .map(EntityLogEntry::getId) + .toList(), + dossier, + fileId); } return entityLogEntries; } @@ -47,4 +52,5 @@ public class EntityLogMongoWrapperService { return String.format("EntityLogEntry does not exist for annotationId ID \"%s\"!", annotationId); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java index 16cb9a3a6..e4dec110c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogService.java @@ -45,6 +45,7 @@ public class EntityLogService { return entityLog; } + @Observed(name = "EntityLogService", contextualName = "get-entity-log") public EntityLog getEntityLog(String dossierId, String fileId, boolean includeUnProcessed) { @@ -52,6 +53,8 @@ public class EntityLogService { postProcessEntityLog(dossierId, fileId, entityLog, includeUnProcessed); return entityLog; } + + @Observed(name = "EntityLogService", contextualName = "get-entity-log") public EntityLog getEntityLog(String dossierId, String fileId, List excludedTypes, boolean includeUnProcessed) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileDeletionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileDeletionService.java index 57322f64c..c0821c6ef 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileDeletionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileDeletionService.java @@ -16,28 +16,34 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.RecategorizationPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.RemoveRedactionPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.ResizeRedactionPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesRepository; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; import com.iqser.red.service.search.v1.model.IndexMessageType; + import jakarta.transaction.Transactional; +import lombok.AccessLevel; import lombok.RequiredArgsConstructor; +import lombok.experimental.FieldDefaults; import lombok.extern.slf4j.Slf4j; @Slf4j @Service @RequiredArgsConstructor +@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) public class FileDeletionService { - private final CommentPersistenceService commentPersistenceService; - private final ViewedPagesPersistenceService viewedPagesPersistenceService; - private final AddRedactionPersistenceService addRedactionPersistenceService; - private final ForceRedactionPersistenceService forceRedactionPersistenceService; - private final RemoveRedactionPersistenceService removeRedactionPersistenceService; - private final RecategorizationPersistenceService recategorizationPersistenceService; - private final LegalBasisChangePersistenceService legalBasisChangePersistenceService; - private final ResizeRedactionPersistenceService resizeRedactionPersistenceService; - private final FileStatusPersistenceService fileStatusPersistenceService; - private final FileManagementStorageService fileManagementStorageService; - private final IndexingService indexingService; + CommentPersistenceService commentPersistenceService; + ViewedPagesPersistenceService viewedPagesPersistenceService; + AddRedactionPersistenceService addRedactionPersistenceService; + ForceRedactionPersistenceService forceRedactionPersistenceService; + RemoveRedactionPersistenceService removeRedactionPersistenceService; + RecategorizationPersistenceService recategorizationPersistenceService; + LegalBasisChangePersistenceService legalBasisChangePersistenceService; + ResizeRedactionPersistenceService resizeRedactionPersistenceService; + FileStatusPersistenceService fileStatusPersistenceService; + FileManagementStorageService fileManagementStorageService; + IndexingService indexingService; + FileAttributesRepository fileAttributesRepository; @Transactional @@ -83,6 +89,8 @@ public class FileDeletionService { private void hardDeleteFileData(String dossierId, List fileIds) { fileIds.forEach(fileId -> { + fileManagementStorageService.deleteEntityLog(dossierId, fileId); + fileManagementStorageService.deleteComponentLog(dossierId, fileId); Arrays.stream(FileType.values()) .forEach(fileType -> { try { @@ -137,11 +145,22 @@ public class FileDeletionService { // delete all viewed pages for all files viewedPagesPersistenceService.deleteForFiles(fileIds); + fileAttributesRepository.deleteByFileIds(fileIds); + fileStatusPersistenceService.hardDeleteFiles(fileIds); } + @Transactional + public void hardDeleteFilesAndDataByDossierId(String dossierId) { + + List fileIds = fileStatusPersistenceService.getStatusIdsForDossier(dossierId); + hardDeleteFileData(dossierId, fileIds); + hardDeleteFiles(fileIds); + } + + public void reindexDeletedFiles(String dossierId, Collection relevantFileIds) { relevantFileIds.forEach(fileId -> { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileManagementStorageService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileManagementStorageService.java index 289109aba..7b560a2ae 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileManagementStorageService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileManagementStorageService.java @@ -20,6 +20,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.imported.ImportedRedactions; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.section.SectionGrid; +import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.ComponentLogMongoService; import com.iqser.red.service.persistence.service.v1.api.shared.mongo.service.EntityLogMongoService; import com.iqser.red.storage.commons.exception.StorageException; import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; @@ -40,6 +41,8 @@ public class FileManagementStorageService { private final EntityLogMongoService entityLogMongoService; + private final ComponentLogMongoService componentLogMongoService; + @SneakyThrows public byte[] getStoredObjectBytes(String dossierId, String fileId, FileType fileType) { @@ -145,6 +148,7 @@ public class FileManagementStorageService { entityLogMongoService.saveEntityLog(dossierId, fileId, entityLog); } + @SneakyThrows public void insertEntityLog(String dossierId, String fileId, EntityLog entityLog) { @@ -217,6 +221,12 @@ public class FileManagementStorageService { } + public void deleteComponentLog(String dossierId, String fileId) { + + componentLogMongoService.deleteComponentLog(dossierId, fileId); + } + + public void deleteEntityLog(String dossierId, String fileId) { entityLogMongoService.deleteEntityLog(dossierId, fileId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusManagementService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusManagementService.java index 626a13c98..04bd41956 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusManagementService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusManagementService.java @@ -38,11 +38,13 @@ public class FileStatusManagementService { return fileStatusService.getAllFiles(); } + public List getAllDossierTemplateStatus(String dossierTemplateId) { return fileStatusService.getDossierTemplateStatus(dossierTemplateId); } + public List getDossierStatus(String dossierId) { return fileStatusService.getDossierStatus(dossierId) @@ -52,7 +54,6 @@ public class FileStatusManagementService { } - public List getAllDossierStatus(String dossierId) { return fileStatusService.getDossierStatus(dossierId); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusProcessingUpdateService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusProcessingUpdateService.java index 0b165653e..b989ab6c2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusProcessingUpdateService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FileStatusProcessingUpdateService.java @@ -1,9 +1,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service; import org.apache.commons.lang3.StringUtils; - import org.springframework.retry.support.RetryTemplate; -import org.springframework.scheduling.annotation.Async; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FilterByPermissionsService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FilterByPermissionsService.java index 10e4bb0a6..f0160d676 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FilterByPermissionsService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/FilterByPermissionsService.java @@ -3,7 +3,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service; import java.util.List; import java.util.Set; -import org.springframework.security.access.prepost.PostAuthorize; import org.springframework.security.access.prepost.PreFilter; import org.springframework.stereotype.Service; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/KeyCloakUserSyncService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/KeyCloakUserSyncService.java index a3dc4eb2e..21acb44fe 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/KeyCloakUserSyncService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/KeyCloakUserSyncService.java @@ -7,8 +7,8 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; import com.iqser.red.service.persistence.management.v1.processor.client.tenantusermanagementservice.UsersClient; -import com.iqser.red.service.persistence.management.v1.processor.service.users.model.User; import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; +import com.iqser.red.service.persistence.management.v1.processor.service.users.model.User; import com.iqser.red.service.persistence.management.v1.processor.utils.TenantUtils; import com.knecon.fforesight.tenantcommons.TenantContext; import com.knecon.fforesight.tenantcommons.TenantProvider; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/LicenseReportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/LicenseReportService.java index 39a3124ae..11e7da5a9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/LicenseReportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/LicenseReportService.java @@ -1,5 +1,20 @@ package com.iqser.red.service.persistence.management.v1.processor.service; +import java.time.OffsetDateTime; +import java.time.YearMonth; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.license.LicenseReport; @@ -9,16 +24,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.license.Mon import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.time.Instant; -import java.time.OffsetDateTime; -import java.time.YearMonth; -import java.time.ZoneId; -import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; - @Service @RequiredArgsConstructor @Slf4j diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisService.java index fea636eb6..4d93b52fb 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ReanalysisService.java @@ -1,5 +1,16 @@ package com.iqser.red.service.persistence.management.v1.processor.service; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +import org.springframework.stereotype.Service; + import com.google.common.collect.Sets; import com.iqser.red.service.pdftron.redaction.v1.api.model.ByteContentDocument; import com.iqser.red.service.pdftron.redaction.v1.api.model.highlights.TextHighlightConversionOperation; @@ -20,17 +31,6 @@ import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Set; -import java.util.function.Predicate; -import java.util.stream.Collectors; - @Slf4j @Service @RequiredArgsConstructor diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/StopwordService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/StopwordService.java index 775f865b9..d4cf0d8ae 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/StopwordService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/StopwordService.java @@ -4,12 +4,11 @@ import java.util.HashSet; import java.util.Locale; import java.util.Set; -import jakarta.annotation.PostConstruct; - import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.utils.ResourceLoader; +import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; @Service diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java index ffcaae738..8d5fe57c5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java @@ -5,8 +5,6 @@ import java.time.temporal.ChronoUnit; import java.util.List; import java.util.Optional; -import jakarta.transaction.Transactional; - import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -17,12 +15,14 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Confl 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; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.WatermarkRepository; import com.iqser.red.service.persistence.management.v1.processor.utils.ColorUtils; import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.HorizontalTextAlignment; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.VerticalTextAlignment; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -35,7 +35,7 @@ public class WatermarkService { private final static int DEFAULT_OPACITY = 30; private final WatermarkRepository watermarkRepository; private final DossierRepository dossierRepository; - private final DossierTemplatePersistenceService dossierTemplatePersistenceService; + private final DossierTemplateRepository dossierTemplateRepository; @Transactional @@ -70,7 +70,8 @@ public class WatermarkService { validateWatermarkNameIsUnique(watermark.getName(), loadedWatermark.get().getDossierTemplateId(), loadedWatermark.get().getId()); BeanUtils.copyProperties(watermark, loadedWatermark.get(), "dossierTemplateId", "createdBy", "dateAdded", "dateModified"); loadedWatermark.get().setDateModified(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(loadedWatermark.get().getDossierTemplateId()); + var dossierTemplate = dossierTemplateRepository.findById(watermark.getDossierTemplateId()) + .orElseThrow(() -> new NotFoundException("Dossier Template not found")); loadedWatermark.get().setDossierTemplate(dossierTemplate); return loadedWatermark.get(); } else { // if not found by id -> add it as a new watermark @@ -79,7 +80,8 @@ public class WatermarkService { WatermarkEntity watermarkEntity = new WatermarkEntity(); BeanUtils.copyProperties(watermark, watermarkEntity, "id", "dateAdded", "dateModified"); watermarkEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId()); + var dossierTemplate = dossierTemplateRepository.findById(watermark.getDossierTemplateId()) + .orElseThrow(() -> new NotFoundException("Dossier Template not found")); watermarkEntity.setDossierTemplate(dossierTemplate); return watermarkRepository.save(watermarkEntity); } @@ -89,7 +91,8 @@ public class WatermarkService { WatermarkEntity watermarkEntity = new WatermarkEntity(); BeanUtils.copyProperties(watermark, watermarkEntity, "id", "dateAdded", "dateModified"); watermarkEntity.setDateAdded(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(watermark.getDossierTemplateId()); + var dossierTemplate = dossierTemplateRepository.findById(watermark.getDossierTemplateId()) + .orElseThrow(() -> new NotFoundException("Dossier Template not found")); watermarkEntity.setDossierTemplate(dossierTemplate); return watermarkRepository.save(watermarkEntity); } @@ -168,4 +171,11 @@ public class WatermarkService { return count != 0; } + + @Transactional + public void deleteByDossierTemplateId(String dossierTemplateId) { + + watermarkRepository.deleteByDossierTemplateId(dossierTemplateId); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadCompressingService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadCompressingService.java index 20e920c8a..41ef58c3e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadCompressingService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadCompressingService.java @@ -5,8 +5,8 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration; import com.iqser.red.service.persistence.management.v1.processor.model.DownloadJob; -import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadStatusRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatusValue; import lombok.RequiredArgsConstructor; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadCompressionMessageReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadCompressionMessageReceiver.java index d9ab7b453..b5906fb42 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadCompressionMessageReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadCompressionMessageReceiver.java @@ -1,6 +1,5 @@ package com.iqser.red.service.persistence.management.v1.processor.service.download; -import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Service; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadDLQMessageReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadDLQMessageReceiver.java index b59bb9e75..6453e42bb 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadDLQMessageReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadDLQMessageReceiver.java @@ -10,8 +10,8 @@ import org.springframework.stereotype.Service; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration; import com.iqser.red.service.persistence.management.v1.processor.model.DownloadJob; -import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatusValue; import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage; import com.iqser.red.service.redaction.report.v1.api.model.ReportResultMessage; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java index 091825021..66063ad12 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java @@ -29,12 +29,12 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.download import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; -import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadRedactionFileStatusRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings; import com.iqser.red.service.persistence.management.v1.processor.utils.FileSystemBackedArchiver; import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadProcessorService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadProcessorService.java index a5f91152c..e9eedcec1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadProcessorService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadProcessorService.java @@ -13,8 +13,8 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.dossier. import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.model.DownloadJob; import com.iqser.red.service.persistence.management.v1.processor.service.DossierService; -import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatusValue; import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage; @@ -38,7 +38,6 @@ public class DownloadProcessorService { downloadStatusPersistenceService.updateStatus(downloadJob.getStorageId(), DownloadStatusValue.GENERATING); websocketService.sendDownloadEvent(downloadJob.getStorageId(), downloadJob.getUserId(), DownloadStatusValue.GENERATING); - var dossier = dossierService.getDossierById(downloadStatus.getFiles() .iterator().next().getDossierId()); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionDlqMessageReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionDlqMessageReceiver.java index ab0928b1d..38332d276 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionDlqMessageReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionDlqMessageReceiver.java @@ -2,18 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.downlo import static com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration.X_ERROR_INFO_HEADER; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionMessage; -import com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings; -import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatusValue; -import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage; - -import lombok.AccessLevel; -import lombok.RequiredArgsConstructor; -import lombok.experimental.FieldDefaults; -import lombok.extern.slf4j.Slf4j; +import java.io.IOException; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.annotation.RabbitHandler; @@ -22,7 +11,17 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.retry.support.RetryTemplate; import org.springframework.stereotype.Service; -import java.io.IOException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionMessage; +import com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings; +import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatusValue; + +import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; +import lombok.experimental.FieldDefaults; +import lombok.extern.slf4j.Slf4j; @Slf4j @Service diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionResultMessageReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionResultMessageReceiver.java index 2e9f19bbd..f9409673c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionResultMessageReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionResultMessageReceiver.java @@ -1,5 +1,11 @@ package com.iqser.red.service.persistence.management.v1.processor.service.download; +import org.springframework.amqp.AmqpRejectAndDontRequeueException; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Service; + import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionResultMessage; @@ -11,12 +17,6 @@ import lombok.SneakyThrows; import lombok.experimental.FieldDefaults; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.AmqpRejectAndDontRequeueException; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Service; - @Slf4j @Service @RequiredArgsConstructor diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AnalysisFlagCalculationSchedulerJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AnalysisFlagCalculationSchedulerJob.java index 4b1c80f4d..a506d9866 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AnalysisFlagCalculationSchedulerJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/AnalysisFlagCalculationSchedulerJob.java @@ -2,7 +2,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.job; import static com.iqser.red.service.persistence.management.v1.processor.utils.TenantUtils.isTenantReadyForPersistence; -import java.time.OffsetDateTime; import java.util.Set; import org.quartz.DisallowConcurrentExecution; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DeletedFilesCleanupJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DeletedFilesCleanupJob.java index c94958700..c01cc5ba9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DeletedFilesCleanupJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DeletedFilesCleanupJob.java @@ -3,7 +3,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.job; import java.time.OffsetDateTime; import java.util.List; -import com.iqser.red.service.persistence.management.v1.processor.service.FileDeletionService; import org.quartz.DisallowConcurrentExecution; import org.quartz.Job; import org.quartz.JobExecutionContext; @@ -12,6 +11,7 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.service.ApplicationConfigService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierService; +import com.iqser.red.service.persistence.management.v1.processor.service.FileDeletionService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; import com.iqser.red.service.persistence.management.v1.processor.utils.TenantUtils; import com.knecon.fforesight.tenantcommons.TenantContext; @@ -62,7 +62,7 @@ public class DeletedFilesCleanupJob implements Job { .isBefore(now.minusHours(applicationConfigurationEntity.getSoftDeleteCleanupTime()))) { fileDeletionService.hardDeleteFile(file.getId()); - fileDeletionService.hardDeleteFileDataAndIndexUpdates(dossierEntity.getId(),file.getId()); + fileDeletionService.hardDeleteFileDataAndIndexUpdates(dossierEntity.getId(), file.getId()); log.info("Hard deleted file with dossier id {} and file id {}", dossierEntity.getId(), file.getId()); } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadReadyJob.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadReadyJob.java index eaae4b3a6..ff39be692 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadReadyJob.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/job/DownloadReadyJob.java @@ -1,7 +1,11 @@ package com.iqser.red.service.persistence.management.v1.processor.service.job; +import org.quartz.DisallowConcurrentExecution; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.service.download.DownloadCompressingService; -import com.iqser.red.service.persistence.management.v1.processor.service.download.DownloadPreparationService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadRedactionFileStatusRepository; import com.iqser.red.service.persistence.management.v1.processor.utils.TenantUtils; @@ -12,11 +16,6 @@ import com.knecon.fforesight.tenantcommons.TenantProvider; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.quartz.DisallowConcurrentExecution; -import org.quartz.Job; -import org.quartz.JobExecutionContext; -import org.springframework.stereotype.Service; - @Slf4j @RequiredArgsConstructor @Service diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/layoutparsing/LayoutParsingRequestFactory.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/layoutparsing/LayoutParsingRequestFactory.java index 9a2f15d75..6db205b10 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/layoutparsing/LayoutParsingRequestFactory.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/layoutparsing/LayoutParsingRequestFactory.java @@ -5,7 +5,6 @@ import java.util.Optional; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings; import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/layoutparsing/LayoutParsingRequestIdentifierService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/layoutparsing/LayoutParsingRequestIdentifierService.java index 5eccf6b44..90b2035d8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/layoutparsing/LayoutParsingRequestIdentifierService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/layoutparsing/LayoutParsingRequestIdentifierService.java @@ -4,8 +4,6 @@ import java.util.Map; import org.springframework.stereotype.Service; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; - @Service public class LayoutParsingRequestIdentifierService { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java index b859a58a2..83ad345b3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionDictionaryUpdateHandler.java @@ -69,17 +69,17 @@ public class ManualRedactionDictionaryUpdateHandler { Set typeIdsOfModifiedDictionaries) { List dictionaryEntriesToUnDelete = dictionaryManagementService.getAllEntriesInDossierTemplate(manualRequestWithAddToDictionary.getDictionaryTypeId(), - value, - manualRequestWithAddToDictionary.getDictionaryEntryType()); + value, + manualRequestWithAddToDictionary.getDictionaryEntryType()); dictionaryEntriesToUnDelete.forEach(entry -> { typeIdsOfModifiedDictionaries.add(entry.getTypeId()); addToDictionary(entry.getTypeId(), value, manualRequestWithAddToDictionary.getDossierId(), fileId, manualRequestWithAddToDictionary.getDictionaryEntryType()); }); addToDictionary(manualRequestWithAddToDictionary.getDictionaryTypeId(), - value, - manualRequestWithAddToDictionary.getDossierId(), - fileId, - manualRequestWithAddToDictionary.getDictionaryEntryType()); + value, + manualRequestWithAddToDictionary.getDossierId(), + fileId, + manualRequestWithAddToDictionary.getDictionaryEntryType()); typeIdsOfModifiedDictionaries.add(manualRequestWithAddToDictionary.getDictionaryTypeId()); return typeIdsOfModifiedDictionaries; } @@ -300,7 +300,8 @@ public class ManualRedactionDictionaryUpdateHandler { resizeRedactionsWithSameValue.forEach(resizeRedaction -> { var file = fileStatusPersistenceService.getStatus(resizeRedaction.getId().getFileId()); var dossierForResizeRedaction = dossierPersistenceService.findByDossierId(file.getDossierId()); - if (!file.getWorkflowStatus().equals(WorkflowStatus.APPROVED) && dossierTemplateId.equals(dossierForResizeRedaction.getDossierTemplateId()) + if (!file.getWorkflowStatus().equals(WorkflowStatus.APPROVED) + && dossierTemplateId.equals(dossierForResizeRedaction.getDossierTemplateId()) && (resizeRedaction.isAddToAllDossiers() || resizeRedaction.getUpdateDictionary())) { resizeRedactionPersistenceService.hardDelete(resizeRedaction.getId().getFileId(), resizeRedaction.getId().getAnnotationId()); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java index 14aa95aad..b55bd9b44 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionService.java @@ -71,7 +71,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.AddRedactionRequestModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.ForceRedactionRequestModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.LegalBasisChangeRequestModel; @@ -223,7 +222,6 @@ public class ManualRedactionService { removeRedactionRequest.getDossierTemplateId()); } - log.info("add removeRedaction for file {} and annotation {}", fileId, removeRedactionRequest.getAnnotationId()); IdRemovalEntity idRemoval = removeRedactionPersistenceService.insert(fileId, removeRedactionRequest); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java index 574303499..504c22e69 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java @@ -9,9 +9,6 @@ import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.List; -import io.micrometer.observation.annotation.Observed; -import jakarta.transaction.Transactional; - import org.springframework.beans.BeanUtils; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -25,6 +22,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.Audit import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditSearchRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.CategoryModel; +import io.micrometer.observation.annotation.Observed; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ComponentDefinitionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ComponentDefinitionPersistenceService.java index f6e7a0f58..5b4913b46 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ComponentDefinitionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ComponentDefinitionPersistenceService.java @@ -36,6 +36,7 @@ public class ComponentDefinitionPersistenceService { return componentDefinitionRepository.saveAndFlush(componentDefinition); } + public ComponentDefinitionEntity insert(ComponentDefinitionAddRequest component, int rank, String dossierTemplateId) { ComponentDefinitionEntity componentDefinitionEntity = new ComponentDefinitionEntity(); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java index f970eeb56..334c0015f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java @@ -15,8 +15,11 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Confl import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.EntryRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalsePositiveEntryRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalseRecommendationEntryRepository; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionarySummaryResponse; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.TypeRankSummary; @@ -34,6 +37,9 @@ public class DictionaryPersistenceService { private final DossierRepository dossierRepository; private final EntryRepository entryRepository; + private final FalsePositiveEntryRepository falsePositiveEntryRepository; + private final FileAttributesRepository fileAttributesRepository; + private final FalseRecommendationEntryRepository falseRecommendationEntryRepository; @Transactional(Transactional.TxType.REQUIRES_NEW) // This needs a single transaction because of the creation of types on the fly, otherwise add entries will fails @@ -229,6 +235,7 @@ public class DictionaryPersistenceService { typeRepository.updateByIdSetIncrementVersionByOne(typeId); } + @Transactional public void setVersion(String typeId, long version) { @@ -319,13 +326,38 @@ public class DictionaryPersistenceService { @Transactional - public void setExperimentalTrue(String typeId){ - typeRepository.findById(typeId).ifPresent(type -> { - type.setVersion(type.getVersion() + 1); - type.setSystemManaged(true); - type.setExperimental(true); - typeRepository.saveAndFlush(type); - }); + public void setExperimentalTrue(String typeId) { + + typeRepository.findById(typeId) + .ifPresent(type -> { + type.setVersion(type.getVersion() + 1); + type.setSystemManaged(true); + type.setExperimental(true); + typeRepository.saveAndFlush(type); + }); + } + + + public void hardDeleteTypesByDossierTemplateId(String dossierTemplateId) { + + for (TypeEntity typeEntity : typeRepository.findAllByDossierTemplateId(dossierTemplateId)) { + entryRepository.deleteAllByTypeId(typeEntity.getId()); + falsePositiveEntryRepository.deleteAllByTypeId(typeEntity.getId()); + falseRecommendationEntryRepository.deleteAllByTypeId(typeEntity.getId()); + typeRepository.deleteById(typeEntity.getId()); + } + } + + + @Transactional + public void hardDeleteTypesByDossierId(String dossierId) { + + for (TypeEntity typeEntity : typeRepository.findByDossierId(dossierId)) { + entryRepository.deleteAllByTypeId(typeEntity.getId()); + falsePositiveEntryRepository.deleteAllByTypeId(typeEntity.getId()); + falseRecommendationEntryRepository.deleteAllByTypeId(typeEntity.getId()); + typeRepository.deleteById(typeEntity.getId()); + } } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java index 331de9058..f2ab3a741 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java @@ -7,8 +7,6 @@ import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; -import jakarta.transaction.Transactional; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; import org.springframework.stereotype.Service; @@ -19,6 +17,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @Service @@ -136,4 +135,11 @@ public class DossierAttributeConfigPersistenceService { return result.isPresent() ? result.get().getId() : null; } + + @Transactional + public void deleteAllDossierAttributeConfigsInTemplate(String dossierTemplateId) { + + dossierAttributeConfigRepository.deleteAllByDossierTemplateId(dossierTemplateId); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributePersistenceService.java index 541df78b9..7afeebc84 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributePersistenceService.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import java.util.List; -import jakarta.transaction.Transactional; - import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -11,6 +9,7 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.dossier. import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeRepository; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @Service diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java index a4e10a712..7aa6b2b40 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java @@ -65,7 +65,7 @@ public class DossierPersistenceService { if (createOrUpdateDossierRequest.getDossierStatusId() != null) { var dossierStatus = dossierStatusPersistenceService.getDossierStatus(createOrUpdateDossierRequest.getDossierStatusId()); - if (dossierStatus.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) { + if (dossierStatus.getDossierTemplate().getId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) { dossier.setDossierStatus(dossierStatus); } else { throw new BadRequestException("Invalid Dossier Status"); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java index 050584b87..2076a19df 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java @@ -6,8 +6,6 @@ import java.util.Optional; import java.util.UUID; import java.util.stream.Collectors; -import jakarta.transaction.Transactional; - import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -17,11 +15,13 @@ 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 com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierStatusRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.management.v1.processor.utils.DossierStatusFilteringMapper; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierStatusInfo; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @Service @@ -31,7 +31,7 @@ public class DossierStatusPersistenceService { public static final String DOSSIER_STATUS_NOT_FOUND_MESSAGE = "Dossier Status with Id %s not found."; private final DossierStatusRepository dossierStatusRepository; - private final DossierTemplatePersistenceService dossierTemplatePersistenceService; + private final DossierTemplateRepository dossierTemplateRepository; private final DossierStatusFilteringMapper dossierStatusFilteringMapper; private final static int MAX_STATUS_NAME_LENGTH = 255; @@ -64,16 +64,19 @@ public class DossierStatusPersistenceService { validateDossierStatusForTemplate(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(), null); DossierStatusEntity dossierStatus = new DossierStatusEntity(); dossierStatus.setId(UUID.randomUUID().toString()); - BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus); - var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(createOrUpdateDossierStatusRequest.getDossierTemplateId()); // in case of duplicate ranks, increase the ranks if (dossierStatusRepository.getDuplicateRanks(createOrUpdateDossierStatusRequest.getDossierTemplateId(), createOrUpdateDossierStatusRequest.getRank()) > 0) { dossierStatusRepository.adjustRanksForDossierTemplate(createOrUpdateDossierStatusRequest.getDossierTemplateId(), createOrUpdateDossierStatusRequest.getRank()); } - var loadedDossierStatus = dossierStatusRepository.save(dossierStatus); - loadedDossierStatus.setDossierTemplate(dossierTemplate); + BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus); + if (createOrUpdateDossierStatusRequest.getDossierTemplateId() != null) { + var dossierTemplate = dossierTemplateRepository.findById(createOrUpdateDossierStatusRequest.getDossierTemplateId()) + .orElseThrow(() -> new NotFoundException("DossierTemplate with id" + createOrUpdateDossierStatusRequest.getDossierTemplateId())); - return loadedDossierStatus; + dossierStatus.setDossierTemplate(dossierTemplate); + } + + return dossierStatusRepository.save(dossierStatus); } } @@ -114,7 +117,6 @@ public class DossierStatusPersistenceService { } - @Transactional public List getAllDossierStatuses(List dossierTemplateIds) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java index a1bd54ad1..24e8cb6e6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java @@ -5,7 +5,6 @@ import java.time.temporal.ChronoUnit; import java.util.List; import java.util.Optional; import java.util.UUID; -import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -24,10 +23,15 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplateStatus; import jakarta.transaction.Transactional; +import lombok.AccessLevel; import lombok.RequiredArgsConstructor; +import lombok.experimental.FieldDefaults; +import lombok.extern.slf4j.Slf4j; +@Slf4j @Service @RequiredArgsConstructor +@FieldDefaults(level = AccessLevel.PRIVATE) public class DossierTemplatePersistenceService { @Value("${application.type}") @@ -35,15 +39,13 @@ public class DossierTemplatePersistenceService { public static final String DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE = "DossierTemplate with Id %s not found."; - private final DossierTemplateRepository dossierTemplateRepository; - private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; - private final RulesPersistenceService rulesPersistenceService; - private final DictionaryPersistenceService dictionaryPersistenceService; + final DossierTemplateRepository dossierTemplateRepository; + final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; + final RulesPersistenceService rulesPersistenceService; + final TypeRepository typeRepository; - private final TypeRepository typeRepository; - - private final static int MAX_NAME_LENGTH = 255; - private final static int MAX_DESCRIPTION_LENGTH = 4000; + static int MAX_NAME_LENGTH = 255; + static int MAX_DESCRIPTION_LENGTH = 4000; @Transactional @@ -164,7 +166,6 @@ public class DossierTemplatePersistenceService { } - @Transactional public List getAllDossierTemplates() { var allDossierTemplates = dossierTemplateRepository.findAllWhereDeletedIsFalse(); @@ -174,7 +175,6 @@ public class DossierTemplatePersistenceService { } - @Transactional public DossierTemplateEntity getDossierTemplate(String dossierTemplateId) { var dossierTemplate = dossierTemplateRepository.findByIdAndNotDeleted(dossierTemplateId) @@ -201,7 +201,7 @@ public class DossierTemplatePersistenceService { @Transactional - public void deleteDossierTemplate(String dossierTemplateId, String deletingUserId) { + public void softDeleteDossierTemplate(String dossierTemplateId, String deletingUserId) { dossierTemplateRepository.findById(dossierTemplateId).ifPresentOrElse((dossierTemplate) -> { @@ -216,6 +216,7 @@ public class DossierTemplatePersistenceService { dossierTemplate.setDateModified(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); dossierTemplate.setSoftDeleteTime(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); dossierTemplate.setName(dossierTemplate.getName() + "_" + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + } }, () -> { throw new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, dossierTemplateId)); @@ -224,25 +225,18 @@ public class DossierTemplatePersistenceService { } + @Transactional + public void deleteDossierTemplate(String dossierTemplateId) { + + rulesPersistenceService.deleteRulesByDossierTemplateId(dossierTemplateId); + dossierTemplateRepository.deleteById(dossierTemplateId); + } + + @Transactional(Transactional.TxType.REQUIRES_NEW) public void insertDossierTemplate(DossierTemplateEntity dossierTemplate) { dossierTemplateRepository.saveAndFlush(dossierTemplate); } - - public void validateDossierTemplateForDuplicateRanks(String dossierTemplateId) { - - var duplicateRanks = dictionaryPersistenceService.getTypeRankSummaryList(dossierTemplateId) - .stream() - .filter(t -> t.getTypesCount() > 1) - .collect(Collectors.toList()); - if (!duplicateRanks.isEmpty()) { - String errorMessage = "Duplicate ranks found in dossier template " + dossierTemplateId + "\n" + duplicateRanks.stream() - .map(t -> String.format(" Rank %d has %d entries", t.getRank(), t.getTypesCount())) - .collect(Collectors.joining("\n")); - throw new BadRequestException(errorMessage); - } - } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java index a9ec3de3c..ce34409f4 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java @@ -134,7 +134,8 @@ public class DownloadStatusPersistenceService { @Transactional public DownloadStatusEntity getStatusesByUuid(String uuid) { - return downloadStatusRepository.findByUuid(uuid).orElseThrow(() -> new NotFoundException(String.format("DownloadStatus not found for uuid: %s", uuid))); + return downloadStatusRepository.findByUuid(uuid) + .orElseThrow(() -> new NotFoundException(String.format("DownloadStatus not found for uuid: %s", uuid))); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/EntryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/EntryPersistenceService.java index e3952250c..45b14234d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/EntryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/EntryPersistenceService.java @@ -1,5 +1,12 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.BaseDictionaryEntry; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryFalsePositiveEntryEntity; @@ -15,13 +22,6 @@ import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - @Service @Slf4j @RequiredArgsConstructor diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java index 739679c89..d73dad888 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java @@ -11,8 +11,6 @@ import java.util.Set; import java.util.UUID; import java.util.stream.Collectors; -import jakarta.transaction.Transactional; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.text.WordUtils; import org.springframework.stereotype.Service; @@ -27,6 +25,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesGeneralConfigurationRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesRepository; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @Service @@ -175,6 +174,16 @@ public class FileAttributeConfigPersistenceService { } + @Transactional + public void deleteByDossierTemplateId(String dossierTemplateId) { + + for (FileAttributeConfigEntity fileAttribute : getFileAttributes(dossierTemplateId)) { + deleteFileAttribute(fileAttribute.getId()); + } + fileAttributesGeneralConfigurationRepository.deleteByDossierTemplateId(dossierTemplateId); + } + + @Transactional public void deleteFileAttribute(String fileAttributeId) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java index c8bbcbd78..6662b178b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java @@ -22,9 +22,9 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.NotFo import com.iqser.red.service.persistence.management.v1.processor.model.FileIdentifier; import com.iqser.red.service.persistence.management.v1.processor.model.OCRStatusUpdateResponse; import com.iqser.red.service.persistence.management.v1.processor.model.websocket.AnalyseStatus; -import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttribute; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentMappingMetadata; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileErrorInfo; @@ -678,4 +678,10 @@ public class FileStatusPersistenceService { fileRepository.setLastFlagCalculationDate(fileId, lastFlagCalculation, OffsetDateTime.now()); } + + public List getStatusIdsForDossier(String dossierId) { + + return fileRepository.findIdsByDossierId(dossierId); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java index 874d90457..572b9f5c1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java @@ -7,8 +7,6 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import jakarta.transaction.Transactional; - import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisEntity; @@ -17,6 +15,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @Service diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationPersistenceService.java index 7959db856..15963d453 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationPersistenceService.java @@ -10,8 +10,8 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.notification.NotificationEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.NotificationPreferencesService; -import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.NotificationRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.EmailNotificationType; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationPreferencesPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationPreferencesPersistenceService.java index d1e7b585c..7a2616010 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationPreferencesPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationPreferencesPersistenceService.java @@ -5,24 +5,19 @@ import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; -import jakarta.transaction.Transactional; - import org.springframework.beans.BeanUtils; -import org.springframework.dao.DataIntegrityViolationException; -import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.notification.NotificationPreferencesEntity; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.NotificationPreferencesRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.NotificationRepository; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.NotificationPreferences; import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.NotificationType; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; +import jakarta.transaction.Transactional; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ReportTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ReportTemplatePersistenceService.java index 1a8ddc47c..f08ff5d41 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ReportTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ReportTemplatePersistenceService.java @@ -77,4 +77,14 @@ public class ReportTemplatePersistenceService { } } + + @Transactional + public void deleteAllByDossierTemplateId(String dossierTemplateId) { + + for (ReportTemplateEntity reportTemplateEntity : findByDossierTemplateId(dossierTemplateId)) { + delete(reportTemplateEntity.getTemplateId()); + } + + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java index cc80d2b39..07a0c0ec4 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java @@ -3,6 +3,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.RuleSetEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.RuleSetEntityKey; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.RuleSetRepository; import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; @@ -139,6 +140,7 @@ public class RulesPersistenceService { }); } + @Transactional public void setRules(@NonNull String rules, String dossierTemplateId, RuleFileType ruleFileType, long version, boolean timeoutDetected) { @@ -166,4 +168,11 @@ public class RulesPersistenceService { ruleSetRepository.updateTimeoutDetected(dossierTemplateId, ruleFileType.name()); } + + public void deleteRulesByDossierTemplateId(String id) { + + ruleSetRepository.deleteById(new RuleSetEntityKey(id, RuleFileType.ENTITY.name())); + ruleSetRepository.deleteById(new RuleSetEntityKey(id, RuleFileType.COMPONENT.name())); + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SaasMigrationStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SaasMigrationStatusPersistenceService.java index a2a71292e..10bd285b1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SaasMigrationStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SaasMigrationStatusPersistenceService.java @@ -1,6 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId; +import java.util.List; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.migration.SaasMigrationStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.SaasMigrationStatusRepository; @@ -9,10 +12,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -import java.util.List; - @Service @RequiredArgsConstructor public class SaasMigrationStatusPersistenceService { @@ -42,6 +41,7 @@ public class SaasMigrationStatusPersistenceService { return migrationStatusOptional.isPresent() && migrationStatusOptional.get().getStatus() != SaasMigrationStatus.FINISHED; } + public boolean migrationFinishedForTenant() { return saasMigrationStatusRepository.findAllWhereStatusNotFinishedAndNotError() == 0; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ViewedPagesPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ViewedPagesPersistenceService.java index a5ae0e9bb..49f6c2fed 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ViewedPagesPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ViewedPagesPersistenceService.java @@ -3,14 +3,13 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import java.time.OffsetDateTime; import java.util.List; -import jakarta.transaction.Transactional; - import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ViewedPageEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ViewedPagesRepository; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @Service @@ -56,8 +55,8 @@ public class ViewedPagesPersistenceService { public void deleteForFiles(List fileIds) { - viewedPagesRepository.deleteByFileIds(fileIds); + viewedPagesRepository.deleteByFileIds(fileIds); } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/CommentPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/CommentPersistenceService.java index 535780504..15c4b99bb 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/CommentPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/CommentPersistenceService.java @@ -6,8 +6,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import jakarta.transaction.Transactional; - import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.stereotype.Service; @@ -15,6 +13,7 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.CommentRepository; +import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -55,17 +54,21 @@ public class CommentPersistenceService { return commentRepository.existsByFileIdAndSoftDeletedTimeIsNull(fileId); } + public void softDeleteCommentsForFiles(List fileId, OffsetDateTime softDeletedTime) { commentRepository.softDeleteCommentsByFiles(fileId, softDeletedTime); } + public void undeleteByFileId(String fileId, OffsetDateTime deletionTime) { commentRepository.undeleteByFileId(fileId, deletionTime); } + public void deleteByFileIds(List fileIds) { + commentRepository.deleteCommentsByFiles(fileIds); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java index ebe5186c9..e020600ab 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java @@ -2,9 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; -import java.util.HashSet; import java.util.List; -import java.util.Set; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -12,7 +10,6 @@ import org.springframework.transaction.annotation.Transactional; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualForceRedactionEntity; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.model.ManualChangesQueryOptions; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.ForceRedactionRepository; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ForceRedactionRequest; @@ -43,14 +40,19 @@ public class ForceRedactionPersistenceService { if (options.getAnnotationIds().isEmpty()) { return forceRedactionRepository.findByFileIdAndOptions(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed()); } - return forceRedactionRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed(), options.getAnnotationIds()); + return forceRedactionRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, + options.isIncludeDeletions(), + options.isIncludeOnlyUnprocessed(), + options.getAnnotationIds()); } + public int softDeleteByFileIds(List fileIds, OffsetDateTime softDeletionTime) { return forceRedactionRepository.softDeleteByFileIds(fileIds, softDeletionTime); } + public int deleteByFileIds(List fileIds) { return forceRedactionRepository.deleteByFileIds(fileIds); @@ -77,12 +79,14 @@ public class ForceRedactionPersistenceService { forceRedactionRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), null); } + @Transactional public void markAsProcessed(String annotationId, String fileId) { forceRedactionRepository.markAsProcessed(new AnnotationEntityId(annotationId, fileId), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } + public void undeleteByFileId(String fileId, OffsetDateTime deletionTime) { forceRedactionRepository.undeleteByFileId(fileId, deletionTime); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java index 80dbb6188..e8c307824 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java @@ -2,9 +2,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; -import java.util.HashSet; import java.util.List; -import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -14,7 +12,6 @@ import org.springframework.transaction.annotation.Transactional; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.AnnotationEntityId; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualLegalBasisChangeEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.model.ManualChangesQueryOptions; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.annotationentity.LegalBasisChangeRepository; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.LegalBasisChangeRequest; @@ -84,19 +81,25 @@ public class LegalBasisChangePersistenceService { if (options.getAnnotationIds().isEmpty()) { return legalBasisChangeRepository.findByFileIdAndOptions(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed()); } - return legalBasisChangeRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed(), options.getAnnotationIds()); + return legalBasisChangeRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, + options.isIncludeDeletions(), + options.isIncludeOnlyUnprocessed(), + options.getAnnotationIds()); } + public int softDeleteByFileIds(List fileIds, OffsetDateTime softDeletionTime) { return legalBasisChangeRepository.softDeleteByFileIds(fileIds, softDeletionTime); } + public int deleteByFileIds(List fileIds) { return legalBasisChangeRepository.deleteByFileIds(fileIds); } + public void undeleteByFileId(String fileId, OffsetDateTime deletionTime) { legalBasisChangeRepository.undeleteByFileId(fileId, deletionTime); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RecategorizationPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RecategorizationPersistenceService.java index 7da941ec7..d5db91b11 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RecategorizationPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RecategorizationPersistenceService.java @@ -3,7 +3,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.List; -import java.util.Set; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -87,24 +86,32 @@ public class RecategorizationPersistenceService { .orElseThrow(() -> new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId)); } + public List findEntriesByFileIdAndOptions(String fileId, ManualChangesQueryOptions options) { if (options.getAnnotationIds().isEmpty()) { return recategorizationRepository.findByFileIdAndOptions(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed(), options.isIncludeDictChanges()); } - return recategorizationRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed(), options.isIncludeDictChanges(), options.getAnnotationIds()); + return recategorizationRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, + options.isIncludeDeletions(), + options.isIncludeOnlyUnprocessed(), + options.isIncludeDictChanges(), + options.getAnnotationIds()); } + public int softDeleteByFileIds(List fileIds, OffsetDateTime softDeletionTime) { return recategorizationRepository.softDeleteByFileIds(fileIds, softDeletionTime); } + public int deleteByFileIds(List fileIds) { return recategorizationRepository.deleteByFileIds(fileIds); } + @Transactional public void markAsProcessed(String annotationId, String fileId) { @@ -118,6 +125,7 @@ public class RecategorizationPersistenceService { recategorizationRepository.saveAndFlush(recategorizationEntity); } + public void undeleteByFileId(String fileId, OffsetDateTime deletionTime) { recategorizationRepository.undeleteByFileId(fileId, deletionTime); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java index 1fc3e29f1..37e75571b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java @@ -2,7 +2,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; -import java.util.HashSet; import java.util.List; import java.util.Set; @@ -47,29 +46,38 @@ public class RemoveRedactionPersistenceService { .orElseThrow(() -> new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId)); } + public List findEntriesByFileIdAndOptions(String fileId, ManualChangesQueryOptions options) { if (options.getAnnotationIds().isEmpty()) { return removeRedactionRepository.findByFileIdAndOptions(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed(), options.isIncludeDictChanges()); } - return removeRedactionRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed(), options.isIncludeDictChanges(), options.getAnnotationIds()); + return removeRedactionRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, + options.isIncludeDeletions(), + options.isIncludeOnlyUnprocessed(), + options.isIncludeDictChanges(), + options.getAnnotationIds()); } + public int softDeleteByFileIds(List fileIds, OffsetDateTime softDeletionTime) { return removeRedactionRepository.softDeleteByFileIds(fileIds, softDeletionTime); } + public int deleteByFileIds(List fileIds) { return removeRedactionRepository.deleteByFileIds(fileIds); } + public void undeleteByFileId(String fileId, OffsetDateTime deletionTime) { removeRedactionRepository.undeleteByFileId(fileId, deletionTime); } + @Transactional public void hardDelete(String fileId, String annotationId) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ResizeRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ResizeRedactionPersistenceService.java index b36fe25d8..8f892bf37 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ResizeRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ResizeRedactionPersistenceService.java @@ -104,7 +104,11 @@ public class ResizeRedactionPersistenceService { if (options.getAnnotationIds().isEmpty()) { return resizeRedactionRepository.findByFileIdAndOptions(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed(), options.isIncludeDictChanges()); } - return resizeRedactionRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, options.isIncludeDeletions(), options.isIncludeOnlyUnprocessed(), options.isIncludeDictChanges(), options.getAnnotationIds()); + return resizeRedactionRepository.findByFileIdAndOptionsAndAnnotationIds(fileId, + options.isIncludeDeletions(), + options.isIncludeOnlyUnprocessed(), + options.isIncludeDictChanges(), + options.getAnnotationIds()); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/CommentRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/CommentRepository.java index 43ab1fc55..1a3db127f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/CommentRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/CommentRepository.java @@ -27,12 +27,15 @@ public interface CommentRepository extends JpaRepository { @Query("select e from CommentEntity e where e.fileId = :fileId and (:includeDeletions = true or e.softDeletedTime is null)") List findByFileId(@Param("fileId") String fileId, @Param("includeDeletions") boolean includeDeletions); + boolean existsByFileIdAndSoftDeletedTimeIsNull(String fileId); + @Modifying @Query("update CommentEntity c set c.softDeletedTime = :softDeleteTime where c.id = :id") int updateSoftDelete(@Param("id") long id, @Param("softDeleteTime") OffsetDateTime softDeleteTime); + @Modifying @Query("update CommentEntity c set c.softDeletedTime = :softDeleteTime where c.fileId in (:fileIds) and " + "(exists (select a from ManualForceRedactionEntity a where a.id.annotationId = c.annotationId and a.softDeletedTime = :softDeleteTime) or " @@ -43,6 +46,7 @@ public interface CommentRepository extends JpaRepository { + "exists (select a from ManualLegalBasisChangeEntity a where a.id.annotationId = c.annotationId and a.softDeletedTime = :softDeleteTime)) ") void softDeleteCommentsByFilesAndAnnotationSoftDeletedTime(@Param("fileIds") List fileIds, @Param("softDeleteTime") OffsetDateTime softDeleteTime); + @Modifying @Query("update CommentEntity c set c.softDeletedTime = :softDeleteTime where c.fileId in (:fileIds) and c.softDeletedTime is null") void softDeleteCommentsByFiles(@Param("fileIds") List fileIds, @Param("softDeleteTime") OffsetDateTime softDeleteTime); @@ -73,7 +77,4 @@ public interface CommentRepository extends JpaRepository { @Query("update CommentEntity c set c.annotationId = :newAnnotationId where c.annotationId = :oldAnnotationId and c.fileId = :fileId") int saasMigrationUpdateAnnotationIds(@Param("fileId") String fileId, @Param("oldAnnotationId") String oldAnnotationId, @Param("newAnnotationId") String newAnnotationId); - - - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ComponentMappingRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ComponentMappingRepository.java index b3f8cffa4..36fcaa7f7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ComponentMappingRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ComponentMappingRepository.java @@ -9,7 +9,6 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import com.iqser.red.service.persistence.management.v1.processor.entity.ComponentMappingEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DigitalSignatureEntity; public interface ComponentMappingRepository extends JpaRepository { @@ -24,6 +23,6 @@ public interface ComponentMappingRepository extends JpaRepository findAllByUserId(String userId); + // The real id is currently the storageId, this is a quick fix fpr the new customer api // because i have no time to rewrite the complete logic that uses the storageId everywhere. Optional findByUuid(String uuid); + @Modifying @Query("update DownloadStatusEntity ds set ds.status = :status where ds.storageId = :storageId") int updateStatus(@Param("storageId") String storageId, @Param("status") DownloadStatusValue status); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesGeneralConfigurationRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesGeneralConfigurationRepository.java index 72d9df146..1ad9fdf3e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesGeneralConfigurationRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesGeneralConfigurationRepository.java @@ -6,4 +6,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur public interface FileAttributesGeneralConfigurationRepository extends JpaRepository { + void deleteByDossierTemplateId(String dossierTemplateId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesRepository.java index 8c73c91ad..26f3f9e0d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesRepository.java @@ -20,6 +20,7 @@ public interface FileAttributesRepository extends JpaRepository fileIds); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java index 16d4538b8..7e4287c88 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java @@ -27,6 +27,10 @@ public interface FileRepository extends JpaRepository { List findByDossierId(String dossierId); + @Query("select f.id from FileEntity f where f.dossierId = :dossierId") + List findIdsByDossierId(@Param("dossierId") String dossierId); + + List findByAddedBefore(OffsetDateTime end); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java index 94efddbb0..434cc1245 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java @@ -16,6 +16,7 @@ public interface RuleSetRepository extends JpaRepository { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java index f7178898d..ec27097f3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java @@ -97,4 +97,7 @@ public interface TypeRepository extends JpaRepository { @Query("update TypeEntity t set t.version = :version where t.id = :typeId") void updateVersionForType(@Param("typeId") String typeId, @Param("version") long version); + + List findAllByDossierTemplateId(String dossierTemplateId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ViewedPagesRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ViewedPagesRepository.java index 96f1bb250..aabf1d976 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ViewedPagesRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ViewedPagesRepository.java @@ -24,6 +24,6 @@ public interface ViewedPagesRepository extends JpaRepository fileIds); + void deleteByFileIds(@Param("fileIds") List fileIds); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java index 2979ac9b9..8b36b3783 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java @@ -10,4 +10,7 @@ public interface WatermarkRepository extends JpaRepository findByDossierTemplateId(String dossierTemplateId); + + void deleteByDossierTemplateId(String dossierTemplateId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ForceRedactionRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ForceRedactionRepository.java index dc6b2679a..61f731b03 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ForceRedactionRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ForceRedactionRepository.java @@ -37,12 +37,12 @@ public interface ForceRedactionRepository extends JpaRepository findByFileIdAndOptions(@Param("fileId") String fileId, @Param("includeDeletions") boolean includeDeletions, @Param("unprocessed") boolean unprocessed); @@ -66,10 +66,11 @@ public interface ForceRedactionRepository extends JpaRepository fileIds, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("update ManualForceRedactionEntity m set m.softDeletedTime = null where m.id.fileId = :fileId and m.softDeletedTime >= :softDeletedTime") - int undeleteByFileId(@Param("fileId") String fileId, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int undeleteByFileId(@Param("fileId") String fileId, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("delete ManualForceRedactionEntity m where m.id.fileId in (:fileIds)") diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/LegalBasisChangeRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/LegalBasisChangeRepository.java index c8fb46c06..019744306 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/LegalBasisChangeRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/LegalBasisChangeRepository.java @@ -37,39 +37,40 @@ public interface LegalBasisChangeRepository extends JpaRepository findByFileIdAndOptions(@Param("fileId") String fileId, @Param("includeDeletions") boolean includeDeletions, @Param("unprocessed") boolean unprocessed); + @Query(""" - select m - from ManualLegalBasisChangeEntity m - where m.id.fileId = :fileId - and ((:unprocessed = true and m.processedDate is null) or :unprocessed = false) - and (:includeDeletions = true or m.softDeletedTime is null) - and m.id.annotationId in (:annotationIds) - """) + select m + from ManualLegalBasisChangeEntity m + where m.id.fileId = :fileId + and ((:unprocessed = true and m.processedDate is null) or :unprocessed = false) + and (:includeDeletions = true or m.softDeletedTime is null) + and m.id.annotationId in (:annotationIds) + """) List findByFileIdAndOptionsAndAnnotationIds(@Param("fileId") String fileId, - @Param("includeDeletions") boolean includeDeletions, - @Param("unprocessed") boolean unprocessed, - @Param("annotationIds") List annotationIds); + @Param("includeDeletions") boolean includeDeletions, + @Param("unprocessed") boolean unprocessed, + @Param("annotationIds") List annotationIds); @Modifying @Query("update ManualLegalBasisChangeEntity m set m.softDeletedTime = :softDeletedTime where m.id.fileId in (:fileIds) and m.softDeletedTime is null") - int softDeleteByFileIds(@Param("fileIds") List fileIds, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int softDeleteByFileIds(@Param("fileIds") List fileIds, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("update ManualLegalBasisChangeEntity m set m.softDeletedTime = null where m.id.fileId = :fileId and m.softDeletedTime >= :softDeletedTime") - int undeleteByFileId(@Param("fileId") String fileId, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int undeleteByFileId(@Param("fileId") String fileId, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("delete ManualLegalBasisChangeEntity m where m.id.fileId in (:fileIds)") diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ManualRedactionRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ManualRedactionRepository.java index dd1725037..fa374ff32 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ManualRedactionRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ManualRedactionRepository.java @@ -51,6 +51,7 @@ public interface ManualRedactionRepository extends JpaRepository findByFileIdAndOptionsAndAnnotationIds(@Param("fileId") String fileId, - @Param("includeDeletions") boolean includeDeletions, - @Param("unprocessed") boolean unprocessed, - @Param("includeDictChanges") boolean includeDictChanges, - @Param("annotationIds") List annotationIds); + @Param("includeDeletions") boolean includeDeletions, + @Param("unprocessed") boolean unprocessed, + @Param("includeDictChanges") boolean includeDictChanges, + @Param("annotationIds") List annotationIds); + @Modifying @Query("update ManualRedactionEntryEntity m set m.softDeletedTime = :softDeletedTime where m.id.fileId in (:fileIds) and m.softDeletedTime is null") - int softDeleteByFileIds(@Param("fileIds") List fileIds, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int softDeleteByFileIds(@Param("fileIds") List fileIds, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("update ManualRedactionEntryEntity m set m.softDeletedTime = null where m.id.fileId = :fileId and m.softDeletedTime >= :softDeletedTime") - int undeleteByFileId(@Param("fileId") String fileId, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int undeleteByFileId(@Param("fileId") String fileId, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("delete ManualRedactionEntryEntity m where m.id.fileId in (:fileIds)") int deleteByFileIds(@Param("fileIds") List fileIds); + @Modifying @Query("update ManualRedactionEntryEntity m set m.processedDate = :processedDate where m.id = :annotationEntityId") void markAsProcessed(@Param("annotationEntityId") AnnotationEntityId annotationEntityId, @Param("processedDate") OffsetDateTime processedDate); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/RecategorizationRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/RecategorizationRepository.java index 2cffa0b3f..b421af922 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/RecategorizationRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/RecategorizationRepository.java @@ -68,13 +68,13 @@ public interface RecategorizationRepository extends JpaRepository fileIds, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int softDeleteByFileIds(@Param("fileIds") List fileIds, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("update ManualRecategorizationEntity m set m.softDeletedTime = null where m.id.fileId = :fileId and m.softDeletedTime >= :softDeletedTime") - int undeleteByFileId(@Param("fileId") String fileId, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int undeleteByFileId(@Param("fileId") String fileId, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("delete ManualRecategorizationEntity m where m.id.fileId in (:fileIds)") diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/RemoveRedactionRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/RemoveRedactionRepository.java index 652f747b0..9e613e089 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/RemoveRedactionRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/RemoveRedactionRepository.java @@ -49,6 +49,7 @@ public interface RemoveRedactionRepository extends JpaRepository findByFileIdAndOptionsAndAnnotationIds(@Param("fileId") String fileId, - @Param("includeDeletions") boolean includeDeletions, - @Param("unprocessed") boolean unprocessed, - @Param("includeDictChanges") boolean includeDictChanges, - @Param("annotationIds") List annotationIds); + @Param("includeDeletions") boolean includeDeletions, + @Param("unprocessed") boolean unprocessed, + @Param("includeDictChanges") boolean includeDictChanges, + @Param("annotationIds") List annotationIds); + @Modifying @Query("update IdRemovalEntity m set m.softDeletedTime = :softDeletedTime where m.id.fileId in (:fileIds) and m.softDeletedTime is null") - int softDeleteByFileIds(@Param("fileIds") List fileIds, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int softDeleteByFileIds(@Param("fileIds") List fileIds, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("update IdRemovalEntity m set m.softDeletedTime = null where m.id.fileId = :fileId and m.softDeletedTime >= :softDeletedTime") - int undeleteByFileId(@Param("fileId") String fileId, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int undeleteByFileId(@Param("fileId") String fileId, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("delete IdRemovalEntity m where m.id.fileId in (:fileIds)") diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ResizeRedactionRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ResizeRedactionRepository.java index 1af6e793d..3f3a7caf9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ResizeRedactionRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/annotationentity/ResizeRedactionRepository.java @@ -76,13 +76,13 @@ public interface ResizeRedactionRepository extends JpaRepository fileIds, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int softDeleteByFileIds(@Param("fileIds") List fileIds, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("update ManualResizeRedactionEntity m set m.softDeletedTime = null where m.id.fileId = :fileId and m.softDeletedTime >= :softDeletedTime") - int undeleteByFileId(@Param("fileId") String fileId, - @Param("softDeletedTime") OffsetDateTime softDeletedTime); + int undeleteByFileId(@Param("fileId") String fileId, @Param("softDeletedTime") OffsetDateTime softDeletedTime); + @Modifying @Query("delete ManualResizeRedactionEntity m where m.id.fileId in (:fileIds)") diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/EntryRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/EntryRepository.java index d1892996f..8a89f442d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/EntryRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/EntryRepository.java @@ -41,4 +41,7 @@ public interface EntryRepository extends EntryRepositoryCustom, JpaRepository findByTypeIdContainsAndValue(String typeId, String value); + + void deleteAllByTypeId(String typeId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalsePositiveEntryRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalsePositiveEntryRepository.java index 77f7229b5..57523b128 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalsePositiveEntryRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalsePositiveEntryRepository.java @@ -1,15 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryFalsePositiveEntryEntity; - -import jakarta.transaction.Transactional; +import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import java.util.List; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryFalsePositiveEntryEntity; + +import jakarta.transaction.Transactional; public interface FalsePositiveEntryRepository extends FalsePositiveEntryRepositoryCustom, JpaRepository { @@ -36,4 +36,7 @@ public interface FalsePositiveEntryRepository extends FalsePositiveEntryReposito List findByTypeIdContainsAndValue(String typeId, String value); + + void deleteAllByTypeId(String type); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalseRecommendationEntryRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalseRecommendationEntryRepository.java index e0ac1c12e..867517f4e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalseRecommendationEntryRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/FalseRecommendationEntryRepository.java @@ -1,15 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryFalseRecommendationEntryEntity; - -import jakarta.transaction.Transactional; +import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; -import java.util.List; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryFalseRecommendationEntryEntity; + +import jakarta.transaction.Transactional; public interface FalseRecommendationEntryRepository extends FalseRecommendationEntryRepositoryCustom, JpaRepository { @@ -36,4 +36,7 @@ public interface FalseRecommendationEntryRepository extends FalseRecommendationE List findByTypeIdContainsAndValue(String typeId, String value); + + void deleteAllByTypeId(String type); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/QueryExecutor.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/QueryExecutor.java index 3582120cb..764ee735c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/QueryExecutor.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/dictionaryentry/QueryExecutor.java @@ -5,12 +5,11 @@ import java.util.LinkedList; import java.util.List; import java.util.Set; +import org.springframework.stereotype.Component; + import jakarta.persistence.EntityManager; import jakarta.persistence.Query; import jakarta.transaction.Transactional; - -import org.springframework.stereotype.Component; - import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/LayoutParsingFinishedMessageReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/LayoutParsingFinishedMessageReceiver.java index c4f43510f..bff933fb6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/LayoutParsingFinishedMessageReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/LayoutParsingFinishedMessageReceiver.java @@ -16,9 +16,9 @@ import com.iqser.red.service.persistence.management.v1.processor.model.websocket import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusProcessingUpdateService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; import com.iqser.red.service.persistence.management.v1.processor.service.ImageSimilarityService; -import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.management.v1.processor.service.layoutparsing.LayoutParsingRequestIdentifierService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.SaasMigrationStatusPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileErrorInfo; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/OCRProcessingMessageReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/OCRProcessingMessageReceiver.java index f1b9b659e..f36426cfd 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/OCRProcessingMessageReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/queue/OCRProcessingMessageReceiver.java @@ -15,7 +15,6 @@ import com.iqser.red.service.persistence.management.v1.processor.model.OCRStatus import com.iqser.red.service.persistence.management.v1.processor.model.websocket.AnalyseStatus; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusProcessingUpdateService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; - import com.iqser.red.service.persistence.management.v1.processor.service.websocket.WebsocketService; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileErrorInfo; import com.knecon.fforesight.service.ocr.v1.api.model.DocumentRequest; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/RedisPubsubReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/RedisPubsubReceiver.java index 561234d95..53f27dbb3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/RedisPubsubReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/RedisPubsubReceiver.java @@ -13,8 +13,10 @@ public class RedisPubsubReceiver { private final SimpMessagingTemplate websocketTemplate; private final ObjectMapper mapper; + @SneakyThrows public void receiveMessage(String message) { + var data = mapper.readValue(message, WebSocketMessage.class); websocketTemplate.convertAndSend(data.getTopic(), data.getMessage()); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/RedisSyncedWebSocketService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/RedisSyncedWebSocketService.java index 420c1c4da..c88a1bf0c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/RedisSyncedWebSocketService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/RedisSyncedWebSocketService.java @@ -15,8 +15,10 @@ public class RedisSyncedWebSocketService { private final StringRedisTemplate redisTemplate; private final ObjectMapper mapper; + @SneakyThrows public void convertAndSend(String topic, Object message) { + var socketData = new WebSocketMessage(topic, mapper.writeValueAsString(message)); String data = mapper.writeValueAsString(socketData); redisTemplate.convertAndSend("persistence-service-websocket-messages", data); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/WebsocketService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/WebsocketService.java index 2902c1601..c0def91f7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/WebsocketService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/websocket/WebsocketService.java @@ -29,33 +29,44 @@ public class WebsocketService { public void sendAnalysisEvent(String dossierId, String fileId, AnalyseStatus analyseStatus, int analysisNumber) { - template.convertAndSend("/topic/" + TenantContext.getTenantId() + "/analysis-events", new AnalyseEvent(dossierId, fileId, analyseStatus, analysisNumber, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS))); + template.convertAndSend("/topic/" + TenantContext.getTenantId() + "/analysis-events", + new AnalyseEvent(dossierId, fileId, analyseStatus, analysisNumber, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS))); } + public void sendOcrUpdateAnalysisEvent(String dossierId, String fileId, AnalyseStatus analyseStatus, int analysisNumber, int numberOfPagesToOCR, int numberOfOCRedPages) { - template.convertAndSend("/topic/" + TenantContext.getTenantId() + "/analysis-events", new AnalyseEvent(dossierId, fileId, analyseStatus, analysisNumber, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), numberOfPagesToOCR, numberOfOCRedPages)); + template.convertAndSend("/topic/" + TenantContext.getTenantId() + "/analysis-events", + new AnalyseEvent(dossierId, + fileId, + analyseStatus, + analysisNumber, + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + numberOfPagesToOCR, + numberOfOCRedPages)); } - public void sendDownloadEvent(String downloadId, String userId, DownloadStatusValue downloadStatusValue){ + public void sendDownloadEvent(String downloadId, String userId, DownloadStatusValue downloadStatusValue) { template.convertAndSend("/topic/" + TenantContext.getTenantId() + "/download-events", new DownloadEvent(downloadId, userId, downloadStatusValue)); } - public void sendFileEvent(String dossierId, String fileId, FileEventType fileEventType){ + public void sendFileEvent(String dossierId, String fileId, FileEventType fileEventType) { template.convertAndSend("/topic/" + TenantContext.getTenantId() + "/file-events", new FileEvent(dossierId, fileId, fileEventType)); } - public void sendDossierEvent(String dossierId, DossierEventType dossierEventType){ + public void sendDossierEvent(String dossierId, DossierEventType dossierEventType) { template.convertAndSend("/topic/" + TenantContext.getTenantId() + "/dossier-events", new DossierEvent(dossierId, dossierEventType)); } - public void sendNotificationEvent(String userId){ + + public void sendNotificationEvent(String userId) { + template.convertAndSend("/topic/" + TenantContext.getTenantId() + "/notification-events", new NotificationEvent(userId)); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/FileEntityMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/FileEntityMapper.java index 0df9fbec4..26c452ac5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/FileEntityMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/FileEntityMapper.java @@ -8,7 +8,6 @@ import java.util.function.BiConsumer; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntityComponentMappingVersionEntity; -import com.iqser.red.service.persistence.management.v1.processor.service.UploadService; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; import lombok.AccessLevel; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/FileModelMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/FileModelMapper.java index c1d89f926..a3850ac07 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/FileModelMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/FileModelMapper.java @@ -6,8 +6,8 @@ import java.util.Objects; import java.util.function.BiConsumer; import java.util.stream.Collectors; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntityComponentMappingVersionEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntityComponentMappingVersionEntity; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileErrorInfo; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadFileTypeConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadFileTypeConverter.java index a8a4e1337..67c9d4558 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadFileTypeConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadFileTypeConverter.java @@ -3,13 +3,12 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; import java.util.HashSet; import java.util.Set; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DownloadFileType; +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; import lombok.SneakyThrows; @Converter diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadRedactionFileDetailsConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadRedactionFileDetailsConverter.java index 016056a39..f871dc3d9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadRedactionFileDetailsConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadRedactionFileDetailsConverter.java @@ -1,5 +1,8 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; +import java.util.ArrayList; +import java.util.List; + import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionResultDetail; @@ -8,9 +11,6 @@ import jakarta.persistence.AttributeConverter; import jakarta.persistence.Converter; import lombok.SneakyThrows; -import java.util.ArrayList; -import java.util.List; - @Converter public class JSONDownloadRedactionFileDetailsConverter implements AttributeConverter, String> { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONIntegerSetConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONIntegerSetConverter.java index 141ba7abe..c3cea6327 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONIntegerSetConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONIntegerSetConverter.java @@ -3,12 +3,11 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; import java.util.HashSet; import java.util.Set; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; import lombok.SneakyThrows; @Converter diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONMapConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONMapConverter.java index 5571bf82b..cbb9207ba 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONMapConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONMapConverter.java @@ -3,12 +3,11 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; import java.util.HashMap; import java.util.Map; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; import lombok.SneakyThrows; @Converter diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStoredFileInformationConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStoredFileInformationConverter.java index aca69a293..93f4b4cfc 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStoredFileInformationConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStoredFileInformationConverter.java @@ -3,13 +3,12 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; import java.util.HashSet; import java.util.Set; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.redaction.report.v1.api.model.StoredFileInformation; +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; import lombok.SneakyThrows; @Converter diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStringSetConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStringSetConverter.java index 9d1b8d0f8..a92c06858 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStringSetConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStringSetConverter.java @@ -3,12 +3,11 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; import java.util.HashSet; import java.util.Set; -import jakarta.persistence.AttributeConverter; -import jakarta.persistence.Converter; - import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; import lombok.SneakyThrows; @Converter diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/RulesValidationMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/RulesValidationMapper.java index 10e98eb5a..1b5a062e0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/RulesValidationMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/RulesValidationMapper.java @@ -28,7 +28,8 @@ public class RulesValidationMapper { .map(droolsBlacklistErrorMessage -> new RuleBlacklistErrorMessage(droolsBlacklistErrorMessage.getLine(), droolsBlacklistErrorMessage.getColumn(), droolsBlacklistErrorMessage.getMessage())) - .toList()).build(); + .toList()) + .build(); } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeMapper.java index 73e246e0a..db8db6f6e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeMapper.java @@ -3,7 +3,6 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; import java.util.function.BiConsumer; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; -import com.iqser.red.service.persistence.service.v1.api.shared.model.TypeValue; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type; public class TypeMapper implements BiConsumer { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/SpringDocRedirectController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/SpringDocRedirectController.java index 132397d52..c84e27301 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/SpringDocRedirectController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/SpringDocRedirectController.java @@ -1,5 +1,13 @@ package com.iqser.red.service.peristence.v1.server; +import java.io.IOException; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + import com.knecon.fforesight.swaggercommons.SpringDocProperties; import io.swagger.v3.oas.annotations.Hidden; @@ -8,14 +16,6 @@ import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.io.IOException; - @Slf4j @RestController @RequiredArgsConstructor diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/CustomPermissionClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/CustomPermissionClient.java index e94a11325..f21b41907 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/CustomPermissionClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/CustomPermissionClient.java @@ -3,7 +3,6 @@ package com.iqser.red.service.peristence.v1.server.integration.client; import org.springframework.cloud.openfeign.FeignClient; import com.iqser.red.service.persistence.service.v1.api.external.resource.CustomPermissionMappingResource; -import com.iqser.red.service.persistence.service.v1.api.external.resource.ViewedPagesResource; @FeignClient(name = "CustomPermissionClient", url = "http://localhost:${server.port}") public interface CustomPermissionClient extends CustomPermissionMappingResource { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FeignSupportConfig.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FeignSupportConfig.java index e158bf918..a8b102c36 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FeignSupportConfig.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FeignSupportConfig.java @@ -1,11 +1,8 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import java.util.Collections; - import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.cloud.openfeign.support.SpringEncoder; import org.springframework.context.annotation.Bean; -import org.springframework.http.MediaType; import org.springframework.web.client.RestTemplate; import feign.codec.Encoder; diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/SupportClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/SupportClient.java index d645957d8..b780eeb44 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/SupportClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/SupportClient.java @@ -2,7 +2,6 @@ package com.iqser.red.service.peristence.v1.server.integration.client; import org.springframework.cloud.openfeign.FeignClient; -import com.iqser.red.service.persistence.service.v1.api.external.resource.ReanalysisResource; import com.iqser.red.service.persistence.service.v1.api.external.resource.SupportResource; @FeignClient(name = "SupportClient", url = "http://localhost:${server.port}") diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java index fe6d0dc3c..504cc7570 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java @@ -66,21 +66,21 @@ public class FileTesterAndProvider { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isGreaterThanOrEqualTo(1); fileManagementStorageService.saveEntityLog(dossier.getId(), - file.getFileId(), - new EntityLog(1, - 1, - List.of(EntityLogEntry.builder() - .id("annotationId") - .type("manual") - .value("value entry") - .entryType(EntryType.ENTITY) - .state(EntryState.APPLIED) - .build()), - null, - 0, - 0, - 0, - 0)); + file.getFileId(), + new EntityLog(1, + 1, + List.of(EntityLogEntry.builder() + .id("annotationId") + .type("manual") + .value("value entry") + .entryType(EntryType.ENTITY) + .state(EntryState.APPLIED) + .build()), + null, + 0, + 0, + 0, + 0)); fileManagementStorageService.storeObject(dossier.getId(), file.getFileId(), FileType.ORIGIN, new ByteArrayInputStream(objectMapper.writeValueAsBytes("bytes of the file"))); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentDefinitionTests.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentDefinitionTests.java index 04118251b..a106401e9 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentDefinitionTests.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentDefinitionTests.java @@ -233,7 +233,8 @@ public class ComponentDefinitionTests extends AbstractPersistenceServerServiceTe assertEquals(newOrder.get(2).getId(), firstComponentId); assertEquals(newOrder.get(2).getRank(), 3); - var unknownDossierError = assertThrows(FeignException.class, () -> dossierTemplateExternalClient.reorderComponents("123", List.of(secondComponentId, thirdComponentId, firstComponentId))); + var unknownDossierError = assertThrows(FeignException.class, + () -> dossierTemplateExternalClient.reorderComponents("123", List.of(secondComponentId, thirdComponentId, firstComponentId))); assertTrue(unknownDossierError.getMessage().contains("DossierTemplate with Id 123 not found.")); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentOverrideTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentOverrideTest.java index dfae3f0a5..ab4a36866 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentOverrideTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentOverrideTest.java @@ -199,7 +199,9 @@ public class ComponentOverrideTest extends AbstractPersistenceServerServiceTest .findAny() .get(); assertTrue(studyTitle.isOverridden()); - assertTrue(studyTitle.getComponentValues().stream().anyMatch(componentLogEntryValue -> componentLogEntryValue.getValue().equals(value))); + assertTrue(studyTitle.getComponentValues() + .stream() + .anyMatch(componentLogEntryValue -> componentLogEntryValue.getValue().equals(value))); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentTest.java index 3466cf092..df533d391 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ComponentTest.java @@ -12,7 +12,6 @@ import com.iqser.red.service.peristence.v1.server.integration.service.DossierTes import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.peristence.v1.server.integration.utils.TokenService; -import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentDefinitionAddRequest; import feign.FeignException; diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/CustomPermissionTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/CustomPermissionTest.java index 50bacb882..208d7ae40 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/CustomPermissionTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/CustomPermissionTest.java @@ -1,10 +1,5 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.MANAGE_ACL_PERMISSIONS; -import static com.iqser.red.service.persistence.service.v1.api.external.resource.CustomPermissionMappingResource.PERMISSION_REST_PATH; -import static com.iqser.red.service.persistence.service.v1.api.external.resource.CustomPermissionMappingResource.TARGET_OBJECT_VARIABLE; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - import java.util.ArrayList; import java.util.List; diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DigitalSignatureTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DigitalSignatureTest.java index d5394986a..208b81d58 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DigitalSignatureTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DigitalSignatureTest.java @@ -2,7 +2,6 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.assertj.core.api.Assertions.assertThat; -import java.nio.charset.StandardCharsets; import java.nio.file.Files; import org.junit.jupiter.api.Test; diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneAndExportWithDuplicateRanksTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneAndExportWithDuplicateRanksTest.java index 30f3f5cf6..34174cf06 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneAndExportWithDuplicateRanksTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneAndExportWithDuplicateRanksTest.java @@ -23,20 +23,23 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.commons.jackson.ObjectMapperFactory; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateExportService; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.EntityTypeExportService; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.migration.RankDeDuplicationService; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService; +import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryManagementService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierDeletionService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateCloneService; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ComponentDefinitionPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateExportService; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.EntityTypeExportService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierStatusPersistenceService; @@ -50,7 +53,6 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CloneDossierTemplateRequest; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.models.ExportDownloadRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.TypeRankSummary; import com.iqser.red.storage.commons.service.StorageService; @@ -93,6 +95,10 @@ public class DossierTemplateCloneAndExportWithDuplicateRanksTest { private RabbitTemplate rabbitTemplate; @MockBean private TypeRepository typeRepository; + @MockBean + private DossierDeletionService dossierDeletionService; + @MockBean + private DictionaryManagementService dictionaryManagementService; @MockBean private DossierTemplateImportService dossierTemplateImportService; @@ -124,7 +130,6 @@ public class DossierTemplateCloneAndExportWithDuplicateRanksTest { dossierTemplatePersistenceService = new DossierTemplatePersistenceService(dossierTemplateRepository, legalBasisMappingPersistenceService, rulesPersistenceService, - dictionaryPersistenceService, typeRepository); dossierTemplateCloneService = new DossierTemplateCloneService(dossierTemplateRepository, legalBasisMappingPersistenceService, @@ -162,10 +167,15 @@ public class DossierTemplateCloneAndExportWithDuplicateRanksTest { componentDefinitionPersistenceService, watermarkService, rabbitTemplate); - dossierTemplateManagementService = new DossierTemplateManagementService(dossierTemplateExportService, - dossierTemplateImportService, - dossierTemplatePersistenceService, - dossierTemplateCloneService); + dossierTemplateManagementService = new DossierTemplateManagementService(dossierTemplatePersistenceService, + dossierTemplateCloneService, + dossierDeletionService, + dictionaryManagementService, + componentMappingService, + fileAttributeConfigPersistenceService, + dossierAttributeConfigPersistenceService, + reportTemplatePersistenceService, + watermarkService); rankDeDuplicationService = new RankDeDuplicationService(dossierTemplateManagementService, dictionaryPersistenceService); @@ -185,7 +195,7 @@ public class DossierTemplateCloneAndExportWithDuplicateRanksTest { // test the export of dossier template ExportDownloadRequest exportDownloadRequest = new ExportDownloadRequest("userId", dossierTemplateId); - Assertions.assertThrows(BadRequestException.class, () -> dossierTemplateManagementService.prepareExportDownload(exportDownloadRequest)); + Assertions.assertThrows(BadRequestException.class, () -> dossierTemplateExportService.prepareExportDownload(exportDownloadRequest)); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneServiceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneServiceTest.java index 37b71d4cd..698593428 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneServiceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneServiceTest.java @@ -29,6 +29,7 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentMappingService; +import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateCloneService; import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; @@ -98,6 +99,8 @@ public class DossierTemplateCloneServiceTest { @MockBean private ComponentDefinitionPersistenceService componentDefinitionPersistenceService; + @MockBean + private DictionaryManagementService dictionaryManagementService; private DossierTemplateCloneService dossierTemplateCloneService; @@ -114,6 +117,8 @@ public class DossierTemplateCloneServiceTest { legalBasisMappingPersistenceService, rulesPersistenceService, dictionaryPersistenceService, + dictionaryManagementService, + componentMappingService, typeRepository); ReflectionTestUtils.setField(dossierTemplatePersistenceService, "applicationType", "RedactManager"); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java index 1f16eac6b..c23023eaf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java @@ -21,6 +21,7 @@ import org.springframework.mock.web.MockMultipartFile; import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierTemplate; @@ -35,7 +36,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT public static final String DOSSIERTEMPLATES_PATH = "files/dossiertemplates/"; @Autowired - private DossierTemplateManagementService dossierTemplateManagementService; + private DossierTemplateImportService dossierTemplateImportService; @Autowired private DossierTemplateClient dossierTemplateClient; @@ -88,6 +89,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT } + @SneakyThrows @Test public void testDocumineDossierTemplateImport() { @@ -138,7 +140,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT private DossierTemplate testDossierTemplateImport(byte[] archive) { var request = ImportDossierTemplateRequest.builder().archive(archive).updateExistingDossierTemplate(false).userId("system").build(); - DossierTemplate dossierTemplate = dossierTemplateManagementService.importDossierTemplate(request); + DossierTemplate dossierTemplate = d.importDossierTemplate(request); assertThat(dossierTemplate).isNotNull(); assertThat(dossierTemplate.getId()).isNotBlank(); return dossierTemplate; @@ -160,9 +162,9 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT .userId("system") .dossierTemplateId(dossierTemplate.getId()) .build(); - DossierTemplate reimportedTemplate = dossierTemplateManagementService.importDossierTemplate(request); - assertThat(reimportedTemplate).isNotNull(); - assertThat(reimportedTemplate.getId()).isNotBlank(); + String reimportedTemplateId = dossierTemplateImportService.importDossierTemplate(request); + assertThat(reimportedTemplateId).isNotNull(); + assertThat(reimportedTemplateId).isNotBlank(); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java index e09efdbc3..f8c2c13b8 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateTest.java @@ -49,10 +49,10 @@ import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkCl 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.utils.AbstractPersistenceServerServiceTest; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessage; -import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessageReceiver; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; import com.iqser.red.service.persistence.service.v1.api.shared.model.CreateTypeValue; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributesConfig; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierStatusRequest; diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTest.java index 2d289bfce..d14347946 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTest.java @@ -540,5 +540,4 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertTrue(result.getMessage().contains("Dossier name can not be longer than 254 characters")); } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadPreparationTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadPreparationTest.java index c6c01c5f3..0f79cc347 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadPreparationTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadPreparationTest.java @@ -11,6 +11,8 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mock.web.MockMultipartFile; @@ -50,9 +52,6 @@ import lombok.AccessLevel; import lombok.SneakyThrows; import lombok.experimental.FieldDefaults; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - @FieldDefaults(level = AccessLevel.PRIVATE) public class DownloadPreparationTest extends AbstractPersistenceServerServiceTest { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java index fcc4bb7d2..e207d0a4b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DownloadTest.java @@ -6,18 +6,14 @@ import java.util.ArrayList; import java.util.List; import java.util.Set; -import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionResultDetail; -import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionType; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadRedactionFileStatusRepository; -import com.iqser.red.service.persistence.service.v1.api.shared.model.download.DownloadStatus; -import com.knecon.fforesight.tenantcommons.EncryptionDecryptionService; - import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import com.fasterxml.jackson.databind.ObjectMapper; +import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionResultDetail; import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionResultMessage; +import com.iqser.red.service.pdftron.redaction.v1.api.model.RedactionType; import com.iqser.red.service.peristence.v1.server.integration.client.DownloadClient; import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; @@ -27,12 +23,13 @@ import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPers import com.iqser.red.service.persistence.management.v1.processor.model.DownloadJob; import com.iqser.red.service.persistence.management.v1.processor.service.download.DownloadMessageReceiver; import com.iqser.red.service.persistence.management.v1.processor.service.download.DownloadPreparationService; -import com.iqser.red.service.persistence.service.v1.api.shared.model.PrepareDownloadRequest; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadRedactionFileStatusRepository; import com.iqser.red.service.persistence.service.v1.api.shared.model.PrepareDownloadWithOptionRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.RemoveDownloadRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DownloadFileType; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; import com.iqser.red.service.redaction.report.v1.api.model.ReportResultMessage; +import com.knecon.fforesight.tenantcommons.EncryptionDecryptionService; import com.knecon.fforesight.tenantcommons.TenantContext; import feign.FeignException; @@ -99,10 +96,7 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { .fileIds(List.of(file2.getId())) .build()); - downloadMessageReceiver.receive(DownloadJob.builder() - .userId(userProvider.getUserId()) - .storageId(downloads.getStorageId()) - .build()); + downloadMessageReceiver.receive(DownloadJob.builder().userId(userProvider.getUserId()).storageId(downloads.getStorageId()).build()); var reportInfoId = downloads.getStorageId().substring(0, downloads.getStorageId().length() - 3) + "/REPORT_INFO.json"; storageService.storeJSONObject(TenantContext.getTenantId(), reportInfoId, new ArrayList<>()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java index 890c6d201..9864432e5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogMergeTest.java @@ -681,12 +681,7 @@ public class EntityLogMergeTest { String entryId = UUID.randomUUID().toString(); ManualRedactions manualRedactions = ManualRedactions.builder() - .idsToRemove(Set.of(IdRemoval.builder() - .annotationId(entryId) - .fileId("file") - .requestDate(OffsetDateTime.now()) - .user("user") - .build())) + .idsToRemove(Set.of(IdRemoval.builder().annotationId(entryId).fileId("file").requestDate(OffsetDateTime.now()).user("user").build())) .build(); var entityLog = new EntityLog(1, @@ -725,7 +720,8 @@ public class EntityLogMergeTest { .findFirst(); assertTrue(optionalEntityLogEntry.isPresent()); assertEquals(optionalEntityLogEntry.get().getChanges().size(), 1); - assertEquals(optionalEntityLogEntry.get().getChanges().get(0).getType(), ChangeType.IGNORED); + assertEquals(optionalEntityLogEntry.get().getChanges() + .get(0).getType(), ChangeType.IGNORED); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogResponseMapperTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogResponseMapperTest.java index 18071d102..e964559e2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogResponseMapperTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EntityLogResponseMapperTest.java @@ -19,6 +19,7 @@ public class EntityLogResponseMapperTest { private final String ENTITY_LOG = "files/entity-log/b2cbdd4dca0aa1aa0ebbfc5cc1462df0.ENTITY_LOG.json"; + @Test @SneakyThrows public void testEntityLogMapper() { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileExchangeImportExportTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileExchangeImportExportTest.java index 812bb0a10..7530e2adf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileExchangeImportExportTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileExchangeImportExportTest.java @@ -31,12 +31,12 @@ import org.springframework.util.FileSystemUtils; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; -import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.ExportDownloadMessage; -import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateExportService; +import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.DossierTemplateImportService; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.FileExchangeExportService; import com.iqser.red.service.persistence.management.v1.processor.dataexchange.service.FileExchangeImportService; +import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileExchangeExportRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest; diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java index 52d363861..0e68645d2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileTest.java @@ -771,16 +771,16 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); var recatResponse = manualRedactionClient.recategorizeBulk(dossierId, - fileId, - Set.of(RecategorizationRequestModel.builder() - .annotationId(annotation2Id) - .comment("comment edit via edit dialog") - .type(type.getType()) - .legalBasis("") - .section("section") - .value("value entry 3") - .build()), - false); + fileId, + Set.of(RecategorizationRequestModel.builder() + .annotationId(annotation2Id) + .comment("comment edit via edit dialog") + .type(type.getType()) + .legalBasis("") + .section("section") + .value("value entry 3") + .build()), + false); var loadedFile = fileClient.getFileStatus(dossierId, fileId); @@ -791,7 +791,10 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(annotationComments.getComments()).hasSize(1); AnnotationComments annotationCommentsForInitialAnnotation = manualRedactionClient.getComments(dossierId, fileId, annotation2Id); assertThat(annotationCommentsForInitialAnnotation.getComments()).hasSize(0); - AnnotationComments annotationCommentsForManualRecat = manualRedactionClient.getComments(dossierId, fileId, recatResponse.getManualAddResponses().get(0).getAnnotationId()); + AnnotationComments annotationCommentsForManualRecat = manualRedactionClient.getComments(dossierId, + fileId, + recatResponse.getManualAddResponses() + .get(0).getAnnotationId()); assertThat(annotationCommentsForManualRecat.getComments()).hasSize(1); //overwrite the file @@ -807,7 +810,10 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(annotationComments.getComments()).hasSize(0); annotationCommentsForInitialAnnotation = manualRedactionClient.getComments(dossierId, fileId, annotation2Id); assertThat(annotationCommentsForInitialAnnotation.getComments()).hasSize(0); - annotationCommentsForManualRecat = manualRedactionClient.getComments(dossierId, fileId, recatResponse.getManualAddResponses().get(0).getAnnotationId()); + annotationCommentsForManualRecat = manualRedactionClient.getComments(dossierId, + fileId, + recatResponse.getManualAddResponses() + .get(0).getAnnotationId()); assertThat(annotationCommentsForManualRecat.getComments()).hasSize(0); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationPreferencesTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationPreferencesTest.java index 791c2da89..2fc90f860 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationPreferencesTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationPreferencesTest.java @@ -5,8 +5,8 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.ArrayList; import java.util.List; -import org.junit.jupiter.api.Test; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import com.iqser.red.service.peristence.v1.server.integration.client.NotificationPreferencesClient; diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java index 4a8b6c7cc..bcd4bdd68 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java @@ -1,11 +1,9 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doNothing; import java.util.List; -import java.util.Set; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -21,7 +19,6 @@ import com.iqser.red.service.peristence.v1.server.integration.service.ReportTemp import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.shared.model.PrepareDownloadWithOptionRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.ReportTemplateUpdateRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DownloadFileType; import feign.FeignException; @@ -365,6 +362,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { } + @Test public void testDownloadDossierAndDeleteReportTemplate() { // Arrange @@ -390,10 +388,10 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(firstTemplate.getFileName()).isEqualTo(fileName); downloadClient.prepareDownload(PrepareDownloadWithOptionRequest.builder() - .reportTemplateIds(List.of(firstTemplate.getTemplateId())) - .dossierId(dossier.getId()) - .fileIds(List.of(file.getId())) - .build()); + .reportTemplateIds(List.of(firstTemplate.getTemplateId())) + .dossierId(dossier.getId()) + .fileIds(List.of(file.getId())) + .build()); reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RulesTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RulesTest.java index df53f3842..cb58e7c98 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RulesTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RulesTest.java @@ -72,8 +72,7 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { // case 1: dry-run true, no error messages just warning messages when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder() .syntaxErrorMessages(Collections.emptyList()) - .deprecatedWarnings( - warningMessages) + .deprecatedWarnings(warningMessages) .build()); ResponseEntity response = rulesClient.upload(request); @@ -88,8 +87,7 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { // case 2: dry-run true, error messages and warning messages when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder() .syntaxErrorMessages(errorMessages) - .deprecatedWarnings( - warningMessages) + .deprecatedWarnings(warningMessages) .build()); response = rulesClient.upload(request); @@ -117,8 +115,7 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { // case 1: dry-run false, error messages and warning messages when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder() .syntaxErrorMessages(errorMessages) - .deprecatedWarnings( - warningMessages) + .deprecatedWarnings(warningMessages) .build()); try { rulesClient.upload(request); @@ -132,8 +129,7 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { // case 2: dry-run false, no error messages just warning messages when(redactionClient.testRules(new RuleValidationModel(request.getRuleFileType().name(), request.getRules()))).thenReturn(DroolsValidation.builder() .syntaxErrorMessages(Collections.emptyList()) - .deprecatedWarnings( - warningMessages) + .deprecatedWarnings(warningMessages) .build()); ResponseEntity response = rulesClient.upload(request); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/SoftDeleteTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/SoftDeleteTest.java index a1e69b19a..e35fde62e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/SoftDeleteTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/SoftDeleteTest.java @@ -9,6 +9,8 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import org.jetbrains.annotations.NotNull; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; @@ -29,9 +31,8 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemp import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; + import lombok.extern.slf4j.Slf4j; -import org.jetbrains.annotations.NotNull; -import org.junit.jupiter.api.Test; @Slf4j public class SoftDeleteTest extends AbstractPersistenceServerServiceTest { @@ -67,17 +68,27 @@ public class SoftDeleteTest extends AbstractPersistenceServerServiceTest { var allForceRedactions = forceRedactionRepository.findAll(); var allResizes = resizeRedactionRepository.findAll(); - assertThat(allComments.stream().map(CommentEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); - assertThat(allManualRedactions.stream().map(ManualRedactionEntryEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsExactly(deletedDossier.get() - .getSoftDeletedTime()); - assertThat(allIdRemovals.stream().map(IdRemovalEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); - assertThat(allRecategorizations.stream().map(ManualRecategorizationEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsExactly(deletedDossier.get() - .getSoftDeletedTime()); - assertThat(allLegalBasis.stream().map(ManualLegalBasisChangeEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsExactly(deletedDossier.get() - .getSoftDeletedTime()); - assertThat(allForceRedactions.stream().map(ManualForceRedactionEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsExactly(deletedDossier.get() - .getSoftDeletedTime()); - assertThat(allResizes.stream().map(ManualResizeRedactionEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); + assertThat(allComments.stream() + .map(CommentEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); + assertThat(allManualRedactions.stream() + .map(ManualRedactionEntryEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); + assertThat(allIdRemovals.stream() + .map(IdRemovalEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); + assertThat(allRecategorizations.stream() + .map(ManualRecategorizationEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); + assertThat(allLegalBasis.stream() + .map(ManualLegalBasisChangeEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); + assertThat(allForceRedactions.stream() + .map(ManualForceRedactionEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); + assertThat(allResizes.stream() + .map(ManualResizeRedactionEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsExactly(deletedDossier.get().getSoftDeletedTime()); long startUndeleteTime = System.currentTimeMillis(); dossierManagementService.undeleteDossiers(Set.of(dossier.getDossierId())); @@ -91,13 +102,27 @@ public class SoftDeleteTest extends AbstractPersistenceServerServiceTest { allForceRedactions = forceRedactionRepository.findAll(); allResizes = resizeRedactionRepository.findAll(); - assertThat(allComments.stream().map(CommentEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsOnlyNulls(); - assertThat(allManualRedactions.stream().map(ManualRedactionEntryEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsOnlyNulls(); - assertThat(allIdRemovals.stream().map(IdRemovalEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsOnlyNulls(); - assertThat(allRecategorizations.stream().map(ManualRecategorizationEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsOnlyNulls(); - assertThat(allLegalBasis.stream().map(ManualLegalBasisChangeEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsOnlyNulls(); - assertThat(allForceRedactions.stream().map(ManualForceRedactionEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsOnlyNulls(); - assertThat(allResizes.stream().map(ManualResizeRedactionEntity::getSoftDeletedTime).collect(Collectors.toSet())).containsOnlyNulls(); + assertThat(allComments.stream() + .map(CommentEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsOnlyNulls(); + assertThat(allManualRedactions.stream() + .map(ManualRedactionEntryEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsOnlyNulls(); + assertThat(allIdRemovals.stream() + .map(IdRemovalEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsOnlyNulls(); + assertThat(allRecategorizations.stream() + .map(ManualRecategorizationEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsOnlyNulls(); + assertThat(allLegalBasis.stream() + .map(ManualLegalBasisChangeEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsOnlyNulls(); + assertThat(allForceRedactions.stream() + .map(ManualForceRedactionEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsOnlyNulls(); + assertThat(allResizes.stream() + .map(ManualResizeRedactionEntity::getSoftDeletedTime) + .collect(Collectors.toSet())).containsOnlyNulls(); long startHardDeleteTime = System.currentTimeMillis(); dossierManagementService.hardDeleteDossiers(Set.of(dossier.getDossierId())); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java index 807410667..83a6e1fb4 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/TypeTest.java @@ -7,24 +7,17 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.when; - -import java.util.Set; import org.assertj.core.util.Lists; import org.junit.jupiter.api.Test; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.MockBean; import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient; 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.TypeProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.service.DossierService; import com.iqser.red.service.persistence.service.v1.api.shared.model.CreateTypeValue; import com.iqser.red.service.persistence.service.v1.api.shared.model.UpdateTypeValue; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.Colors; @@ -195,6 +188,4 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { } - - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ViewedPagesTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ViewedPagesTest.java index 1e7dc5242..35aed05c4 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ViewedPagesTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ViewedPagesTest.java @@ -13,7 +13,6 @@ import com.iqser.red.service.peristence.v1.server.integration.service.UserProvid import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.shared.model.ViewedPagesRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ViewedPage; -import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; public class ViewedPagesTest extends AbstractPersistenceServerServiceTest { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/EntityPerformanceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/EntityPerformanceTest.java index 64a146530..4df6461bc 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/EntityPerformanceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/EntityPerformanceTest.java @@ -108,7 +108,7 @@ public class EntityPerformanceTest extends AbstractPersistenceServerServiceTest var template = dossierTemplateTesterAndProvider.provideTestTemplate("test"); var type1 = typeProvider.testAndProvideType(template, null, "t1"); - var type2 = typeProvider.testAndProvideType(template, null, "t2", false,50); + var type2 = typeProvider.testAndProvideType(template, null, "t2", false, 50); List type1Entries = entries.stream() .map(s -> new DictionaryEntryEntity(0, s, 1, false, type1.getTypeId())) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/PerformanceTestService.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/PerformanceTestService.java index 38635fe6d..485951a59 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/PerformanceTestService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/PerformanceTestService.java @@ -7,8 +7,6 @@ import java.util.List; import java.util.Set; import java.util.UUID; -import jakarta.transaction.Transactional; - import org.assertj.core.util.Sets; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.TestingAuthenticationToken; @@ -43,6 +41,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; +import jakarta.transaction.Transactional; import lombok.extern.slf4j.Slf4j; @Slf4j diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/StorageToMongoDBPerformanceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/StorageToMongoDBPerformanceTest.java index 0db90f601..29ed2a826 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/StorageToMongoDBPerformanceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/StorageToMongoDBPerformanceTest.java @@ -1,7 +1,6 @@ package com.iqser.red.service.peristence.v1.server.integration.tests.performance; import java.io.FileInputStream; -import java.io.IOException; import java.util.LinkedList; import java.util.concurrent.CompletableFuture; @@ -22,6 +21,7 @@ import com.iqser.red.storage.commons.service.StorageService; import com.knecon.fforesight.tenantcommons.TenantContext; import lombok.SneakyThrows; + @Disabled public class StorageToMongoDBPerformanceTest extends AbstractPersistenceServerServiceTest { @@ -42,7 +42,6 @@ public class StorageToMongoDBPerformanceTest extends AbstractPersistenceServerSe @SneakyThrows public void setUp() { - } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java index d3baf9030..32d3013db 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/FileStatus.java @@ -151,6 +151,7 @@ public class FileStatus { @Schema(description = "Shows which versions of each mapping the last analysis has been performed") private Map componentMappingVersions; + @Schema(description = "Shows if this file has been OCRed by us. Last Time of OCR.") public OffsetDateTime getLastOCRTime() { diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/componentlog/ComponentLogEntry.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/componentlog/ComponentLogEntry.java index 40cb541aa..60c0404f3 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/componentlog/ComponentLogEntry.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/componentlog/ComponentLogEntry.java @@ -19,4 +19,5 @@ public class ComponentLogEntry { String name; List componentValues; boolean overridden; + } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/DuplicatedTextRange.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/DuplicatedTextRange.java index 1a4b6219a..db4941875 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/DuplicatedTextRange.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/DuplicatedTextRange.java @@ -18,4 +18,5 @@ public class DuplicatedTextRange { int start; int end; + } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLogChanges.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLogChanges.java index dcf5ee6fc..61d0f23e4 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLogChanges.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/EntityLogChanges.java @@ -18,7 +18,9 @@ public class EntityLogChanges { private List newEntityLogEntries = new ArrayList<>(); private List updatedEntityLogEntries = new ArrayList<>(); + public boolean hasChanges() { + return !newEntityLogEntries.isEmpty() || !updatedEntityLogEntries.isEmpty(); } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/PropertyChange.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/PropertyChange.java index 8d8920936..d8e4905a1 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/PropertyChange.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/analysislog/entitylog/PropertyChange.java @@ -14,4 +14,5 @@ public class PropertyChange { private String property; private String oldValue; private String newValue; + } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRedactionResponse.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRedactionResponse.java index 9f56198db..fa88b8a75 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRedactionResponse.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/ManualRedactionResponse.java @@ -14,4 +14,5 @@ import lombok.NoArgsConstructor; public class ManualRedactionResponse { private List manualAddResponses; + } diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/entitymapped/BaseAnnotation.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/entitymapped/BaseAnnotation.java index 1b6e7cfe6..8ae4fe5fd 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/entitymapped/BaseAnnotation.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/annotations/entitymapped/BaseAnnotation.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.annotation import java.time.OffsetDateTime; -import org.checkerframework.checker.units.qual.A; - import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus; import lombok.AllArgsConstructor; diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/component/ComponentMappingMetadata.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/component/ComponentMappingMetadata.java index 410a74afd..d755d8e0a 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/component/ComponentMappingMetadata.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/component/ComponentMappingMetadata.java @@ -7,7 +7,6 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import lombok.NonNull; import lombok.experimental.FieldDefaults; @Data diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/component/ComponentsOverrides.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/component/ComponentsOverrides.java index 5829c8234..ead7333cb 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/component/ComponentsOverrides.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/component/ComponentsOverrides.java @@ -1,12 +1,8 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.component; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; -import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/license/LicenseReportRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/license/LicenseReportRequest.java index 821e29dcc..937a3a258 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/license/LicenseReportRequest.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/license/LicenseReportRequest.java @@ -1,8 +1,6 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.license; import java.time.Instant; -import java.time.Year; -import java.time.ZoneOffset; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/saas/migration/MigrationStatusResponse.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/saas/migration/MigrationStatusResponse.java index cfce629c0..8a069b263 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/saas/migration/MigrationStatusResponse.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/saas/migration/MigrationStatusResponse.java @@ -1,12 +1,16 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.saas.migration; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.SaasMigrationStatus; - -import lombok.*; - import java.util.HashMap; import java.util.Map; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.SaasMigrationStatus; + +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/utils/Scope.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/utils/Scope.java index f9a881f19..826e56827 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/utils/Scope.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/utils/Scope.java @@ -8,7 +8,9 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class Scope { + private String templateId; private String dossierId; private String fileId; + } diff --git a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/mapper/ComponentLogDocumentMapper.java b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/mapper/ComponentLogDocumentMapper.java index 5d251f240..652c04cfc 100644 --- a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/mapper/ComponentLogDocumentMapper.java +++ b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/mapper/ComponentLogDocumentMapper.java @@ -21,7 +21,9 @@ public interface ComponentLogDocumentMapper { @Mapping(source = "components", target = "componentLogEntries") ComponentLog fromComponentLogDocument(ComponentLogDocument componentLogDocument); + default List toComponentDocuments(String dossierId, String fileId, List componentLogEntries) { + List componentDocuments = new ArrayList<>(); String componentLogId = getComponentLogId(dossierId, fileId); diff --git a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/mapper/EntityLogDocumentMapper.java b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/mapper/EntityLogDocumentMapper.java index 57c55082d..ef6031f00 100644 --- a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/mapper/EntityLogDocumentMapper.java +++ b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/mapper/EntityLogDocumentMapper.java @@ -21,15 +21,16 @@ public interface EntityLogDocumentMapper { @Mapping(target = "entityLogEntry", source = "entityLogEntryDocuments") EntityLog fromLogDocument(EntityLogDocument entityLogDocument); + @Mapping(target = "id", source = "entityLogEntryDocument.entryId") EntityLogEntry fromLogEntryDocument(EntityLogEntryDocument entityLogEntryDocument); + List toLogEntryDocuments(List entityLogEntries); - @Mapping(target = "id", expression = "java(getLogId(dossierId, fileId))") - @Mapping(target = "entityLogEntryDocuments", expression ="java(toEntryDocumentList(getLogId(dossierId, fileId), entityLog.getEntityLogEntry()))") + @Mapping(target = "entityLogEntryDocuments", expression = "java(toEntryDocumentList(getLogId(dossierId, fileId), entityLog.getEntityLogEntry()))") EntityLogDocument toLogDocument(String dossierId, String fileId, EntityLog entityLog); diff --git a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/ComponentDocumentRepository.java b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/ComponentDocumentRepository.java index 01e6adb43..982088459 100644 --- a/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/ComponentDocumentRepository.java +++ b/persistence-service-v1/persistence-service-shared-mongo-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/mongo/repository/ComponentDocumentRepository.java @@ -15,12 +15,15 @@ public interface ComponentDocumentRepository extends MongoRepository findComponentDocumentByName(String componentLogId, String componentName); + @Query(value = "{ 'componentLogId': ?0 }") List findByComponentLogId(String componentLogId); + @Query(value = "{ 'componentLogId': ?0 }", fields = "{ 'overrideValues': 0 }") List findWithoutOverrideValuesByDossierIdAndFileId(String componentLogId);