From 352bff0859631e73999d1ebc134a6a9a8cf2446c Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Thu, 2 Nov 2023 16:26:54 +0200 Subject: [PATCH 01/20] Integrated and refactored for new audit, still need to update tests --- .../api/impl/controller/AuditController.java | 56 ------ .../impl/controller/DictionaryController.java | 187 +++++++----------- .../DigitalSignatureController.java | 86 +++----- .../DossierAttributesController.java | 120 ++++------- .../impl/controller/DossierController.java | 140 ++++--------- .../controller/DossierTemplateController.java | 120 ++++------- .../impl/controller/DownloadController.java | 122 +++++------- .../controller/FileAttributesController.java | 86 +++----- .../controller/FileManagementController.java | 131 +++++------- .../LegalBasisMappingController.java | 58 ++---- .../controller/LicenseReportController.java | 32 ++- .../controller/ManualRedactionController.java | 151 +++++--------- .../api/impl/controller/RSSController.java | 93 +++------ .../impl/controller/ReanalysisController.java | 169 ++++++---------- .../controller/ReportTemplateController.java | 103 ++++------ .../api/impl/controller/RulesController.java | 64 +++--- .../api/impl/controller/StatusController.java | 117 +++++------ .../api/impl/controller/UploadController.java | 66 +++---- .../impl/controller/WatermarkController.java | 49 ++--- .../pom.xml | 6 + .../api/external/resource/AuditResource.java | 40 ---- .../external/resource/DictionaryResource.java | 25 ++- .../resource/DigitalSignatureResource.java | 14 +- .../resource/DossierAttributesResource.java | 18 +- .../external/resource/DossierResource.java | 14 +- .../resource/DossierTemplateResource.java | 14 +- .../external/resource/DownloadResource.java | 12 +- .../resource/FileAttributesResource.java | 12 +- .../resource/FileManagementResource.java | 12 +- .../resource/LegalBasisMappingResource.java | 8 +- .../resource/LicenseReportResource.java | 4 +- .../resource/ManualRedactionResource.java | 26 ++- .../v1/api/external/resource/RSSResource.java | 6 +- .../external/resource/ReanalysisResource.java | 35 ++-- .../resource/ReportTemplateResource.java | 7 +- .../api/external/resource/RulesResource.java | 9 +- .../api/external/resource/StatusResource.java | 25 ++- .../api/external/resource/UploadResource.java | 5 +- .../external/resource/WatermarkResource.java | 6 +- .../processor/entity/audit/AuditEntity.java | 53 ----- .../v1/processor/service/UploadService.java | 48 ++--- .../ManualRedactionUndoService.java | 103 +++------- .../persistence/AuditPersistenceService.java | 89 --------- .../repository/AuditRepository.java | 43 ---- .../processor/service/users/UserService.java | 106 ++++------ .../processor/service/users/model/User.java | 6 +- .../tenant/111-rename-audit-table.yml | 8 + .../integration/client/AuditClient.java | 10 - .../service/DossierTesterAndProvider.java | 60 ++++-- .../server/integration/tests/AuditTest.java | 55 ------ .../v1/api/shared/model/AuditResponse.java | 24 --- .../model/{ => audit}/AuditCategory.java | 2 +- .../api/shared/model/audit/AuditDetail.java | 28 +++ .../shared/model/audit/AuditDetailAction.java | 17 ++ .../v1/api/shared/model/audit/AuditModel.java | 26 --- .../api/shared/model/audit/AuditRequest.java | 26 --- .../model/audit/AuditSearchRequest.java | 27 --- .../api/shared/model/audit/CategoryModel.java | 15 -- 58 files changed, 1013 insertions(+), 1981 deletions(-) delete mode 100644 persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/AuditController.java delete mode 100644 persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/AuditResource.java delete mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/audit/AuditEntity.java delete mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java delete mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/AuditRepository.java create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yml delete mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/AuditClient.java delete mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/AuditTest.java delete mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AuditResponse.java rename persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/{ => audit}/AuditCategory.java (94%) create mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetail.java create mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetailAction.java delete mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditModel.java delete mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditRequest.java delete mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditSearchRequest.java delete mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/CategoryModel.java 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/AuditController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/AuditController.java deleted file mode 100644 index b8b7f6476..000000000 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/AuditController.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.iqser.red.persistence.service.v1.external.api.impl.controller; - -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.SEARCH_AUDIT_LOG; -import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter.convert; - -import java.util.List; - -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.external.resource.AuditResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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 lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -@RestController -@RequiredArgsConstructor -public class AuditController implements AuditResource { - - private final AuditPersistenceService auditPersistenceService; - - - @Override - @PreAuthorize("hasAuthority('" + SEARCH_AUDIT_LOG + "')") - public AuditResponse searchAuditLog(@RequestBody AuditSearchRequest auditSearchRequest) { - - var auditModels = convert(auditPersistenceService.search(auditSearchRequest), AuditModel.class); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(auditSearchRequest.getObjectId()) - .category(AuditCategory.AUDIT.name()) - .message("Audit Log has been viewed.") - .build()); - - return new AuditResponse(auditModels.getElements(), auditModels.getTotalHits(), auditModels.getPage(), auditModels.getPageSize()); - } - - - @Override - @PreAuthorize("hasAuthority('" + SEARCH_AUDIT_LOG + "')") - public List getAuditCategories() { - - return auditPersistenceService.getCategories(); - } - -} 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/DictionaryController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java index 30d2e34c0..b158074d9 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java @@ -1,60 +1,47 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; + import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; + import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryService; + import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; + import com.iqser.red.service.persistence.management.v1.processor.utils.TypeValueMapper; + import com.iqser.red.service.persistence.service.v1.api.external.resource.DictionaryResource; + import com.iqser.red.service.persistence.service.v1.api.shared.model.*; + import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; + import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; + 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.type.DictionaryEntryType; + import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type; + import com.knecon.fforesight.auditor.Auditor; + import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; + import feign.FeignException; + import jakarta.validation.Valid; + import lombok.RequiredArgsConstructor; + import lombok.extern.slf4j.Slf4j; + import org.springframework.core.io.InputStreamResource; + import org.springframework.http.HttpHeaders; + import org.springframework.http.HttpStatus; + import org.springframework.http.MediaType; + import org.springframework.http.ResponseEntity; + import org.springframework.web.bind.annotation.*; + import org.springframework.web.multipart.MultipartFile; + import java.io.ByteArrayInputStream; + import java.io.IOException; + import java.io.InputStream; + import java.nio.charset.StandardCharsets; + import java.util.ArrayList; + import java.util.Arrays; + import java.util.List; + import java.util.stream.Collectors; -import org.springframework.core.io.InputStreamResource; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; + import static com.knecon.fforesight.auditor.model.Detail.d; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; -import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; -import com.iqser.red.service.persistence.management.v1.processor.utils.TypeValueMapper; -import com.iqser.red.service.persistence.service.v1.api.external.resource.DictionaryResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.CreateTypeValue; -import com.iqser.red.service.persistence.service.v1.api.shared.model.Dictionary; -import com.iqser.red.service.persistence.service.v1.api.shared.model.TypeResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.TypeValue; -import com.iqser.red.service.persistence.service.v1.api.shared.model.UpdateTypeValue; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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.type.DictionaryEntryType; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type; - -import feign.FeignException; -import jakarta.validation.Valid; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -@Slf4j + @Slf4j @RestController @RequiredArgsConstructor public class DictionaryController implements DictionaryResource { - private final DictionaryService dictionaryService; - private final AuditPersistenceService auditClient; - + private final DictionaryService dictionaryService; @Override public void addEntry(@PathVariable(TYPE_PARAMETER_NAME) String type, @@ -62,16 +49,12 @@ public class DictionaryController implements DictionaryResource { @RequestBody List entries, @RequestParam(name = REMOVE_CURRENT_REQUEST_PARAM, defaultValue = "false", required = false) boolean removeCurrent, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType) { + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, + Auditor auditor) { addEntries(type, dossierTemplateId, entries, removeCurrent, dossierId, dictionaryEntryType); - auditClient.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DICTIONARY.name()) - .message("Dictionary entries were added.") - .details(Map.of("Type", type, "Number", entries.size())) - .build()); + auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary entries were added.", + d(AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId), d(AuditDetail.TYPE, type), d(AuditDetail.NUMBER, entries.size())); } @@ -90,16 +73,12 @@ public class DictionaryController implements DictionaryResource { @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @PathVariable(ENTRY_PARAMETER_NAME) String entry, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType) { + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, + Auditor auditor) { - deleteEntries(type, dossierTemplateId, Arrays.asList(entry), dossierId, dictionaryEntryType); - auditClient.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DICTIONARY.name()) - .message("Dictionary entry was deleted.") - .details(Map.of("Type", type, "Value", entry)) - .build()); + deleteEntries(type, dossierTemplateId, Arrays.asList(entry), dossierId, dictionaryEntryType, auditor); + auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary entry was deleted.", + d(AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId), d(AuditDetail.TYPE, type), d(AuditDetail.VALUE, entry)); } @@ -108,53 +87,38 @@ public class DictionaryController implements DictionaryResource { @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List entries, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType) { + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, + Auditor auditor) { if (dossierId == null) { dictionaryService.deleteGlobalEntries(type, dossierTemplateId, entries, dictionaryEntryType); } else { dictionaryService.deleteDossierEntries(type, dossierTemplateId, entries, dossierId, dictionaryEntryType); } - - auditClient.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DICTIONARY.name()) - .message("Dictionary entries were deleted.") - .details(Map.of("Type", type, "Number", entries.size())) - .build()); + auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary entries were deleted.", + d(AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId), d(AuditDetail.TYPE, type), d(AuditDetail.NUMBER, entries.size())); } @Override public void updateType(@PathVariable(TYPE_PARAMETER_NAME) String type, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, - @RequestBody UpdateTypeValue typeValue) { + @RequestBody UpdateTypeValue typeValue, Auditor auditor) { dictionaryService.updateGlobalType(type, dossierTemplateId, typeValue); - auditClient.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DICTIONARY.name()) - .message("Dictionary type was updated.") - .details(Map.of("Type", type)) - .build()); + auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary type was updated.", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId, AuditDetail.TYPE, type); } @Override - public TypeValue addType(@Valid @RequestBody CreateTypeValue typeValue) { + public TypeValue addType(@Valid @RequestBody CreateTypeValue typeValue, Auditor auditor) { Type result = dictionaryService.addGlobalType(typeValue); - auditClient.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(typeValue.getDossierTemplateId()) - .category(AuditCategory.DICTIONARY.name()) - .message("Dictionary type was added.") - .details(Map.of("Type", typeValue.getType())) - .build()); + auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary type was added.", + AuditDetail.DOSSIER_TEMPLATE_ID, typeValue.getDossierTemplateId(), AuditDetail.TYPE, typeValue.getType()); return MagicConverter.convert(result, TypeValue.class, new TypeValueMapper()); } @@ -162,23 +126,18 @@ public class DictionaryController implements DictionaryResource { @Override public void deleteType(@PathVariable(TYPE_PARAMETER_NAME) String type, - @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { + @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, Auditor auditor) { dictionaryService.deleteGlobalType(type, dossierTemplateId); - auditClient.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DICTIONARY.name()) - .message("Dictionary type was deleted.") - .details(Map.of("Type", type)) - .build()); + auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary type was deleted.", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId, AuditDetail.TYPE, type); } @Override public void deleteTypes(@RequestBody List types, - @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { + @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, Auditor auditor) { List errorIds = new ArrayList<>(); @@ -186,13 +145,8 @@ public class DictionaryController implements DictionaryResource { try { dictionaryService.deleteGlobalType(type, dossierTemplateId); - auditClient.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DICTIONARY.name()) - .message("Dictionary type was deleted.") - .details(Map.of("Type", type)) - .build()); + auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary type was deleted.", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId, AuditDetail.TYPE, type); } catch (FeignException e) { errorIds.add(type); } @@ -225,7 +179,8 @@ public class DictionaryController implements DictionaryResource { @PathVariable(TYPE_PARAMETER_NAME) String type, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType) { + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, + Auditor auditor) { validateFile(file); @@ -236,13 +191,8 @@ public class DictionaryController implements DictionaryResource { throw new BadRequestException("Could not upload file.", e); } - auditClient.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DICTIONARY.name()) - .message("Dictionary has been uploaded.") - .details(Map.of("Type", type)) - .build()); + auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary has been uploaded.", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId, AuditDetail.TYPE, type); } @@ -301,16 +251,11 @@ public class DictionaryController implements DictionaryResource { @Override - public void setColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Colors colors) { + public void setColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Colors colors, Auditor auditor) { dictionaryService.setColors(dossierTemplateId, colors); - auditClient.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Colors have been changed.") - .build()); + auditor.audit(AuditCategory.DICTIONARY.name(), "Colors have been changed.", AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); } } 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/DigitalSignatureController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DigitalSignatureController.java index 631e592c5..807ad58ef 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DigitalSignatureController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DigitalSignatureController.java @@ -1,31 +1,28 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DIGITAL_SIGNATURE; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_DIGITAL_SIGNATURE; - -import java.util.Base64; - -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DigitalSignatureEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DigitalSignatureKmsEntity; import com.iqser.red.service.persistence.management.v1.processor.service.DigitalSignatureKmsService; import com.iqser.red.service.persistence.management.v1.processor.service.DigitalSignatureService; import com.iqser.red.service.persistence.management.v1.processor.service.DigitalSignatureTypeService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.service.v1.api.external.resource.DigitalSignatureResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.DigitalSignatureKms; import com.iqser.red.service.persistence.service.v1.api.shared.model.DigitalSignatureKmsViewModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.DigitalSignatureViewModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; 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.keycloakcommons.security.KeycloakSecurity; - +import com.knecon.fforesight.auditor.Auditor; import lombok.RequiredArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Base64; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DIGITAL_SIGNATURE; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_DIGITAL_SIGNATURE; @RestController @RequiredArgsConstructor @@ -35,7 +32,6 @@ public class DigitalSignatureController implements DigitalSignatureResource { private final DigitalSignatureTypeService digitalSignatureTypeService; private final DigitalSignatureService digitalSignatureService; private final DigitalSignatureKmsService digitalSignatureKmsService; - private final AuditPersistenceService auditPersistenceService; @Override @@ -48,29 +44,21 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public void setActiveDigitalSignatureType(DigitalSignatureType digitalSignatureType) { + public void setActiveDigitalSignatureType(DigitalSignatureType digitalSignatureType, Auditor auditor) { digitalSignatureTypeService.setActiveDigitalSignatureType(digitalSignatureType); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(DIGITAL_SIGNATURE_AUDIT_ID) - .category(AuditCategory.SETTINGS.name()) - .message("Digital signature type has been updated.") - .build()); + auditor.audit(AuditCategory.SETTINGS.name(), "Digital signature type has been updated.", + AuditDetail.OBJECT_ID, DIGITAL_SIGNATURE_AUDIT_ID); } @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public DigitalSignatureViewModel saveDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel) { + public DigitalSignatureViewModel saveDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel, Auditor auditor) { DigitalSignatureViewModel digitalSignatureViewModel = convertToView(digitalSignatureService.saveDigitalSignature(convert(digitalSignatureModel))); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(DIGITAL_SIGNATURE_AUDIT_ID) - .category(AuditCategory.SETTINGS.name()) - .message("Digital signature has been saved.") - .build()); + auditor.audit(AuditCategory.SETTINGS.name(), "Digital signature has been saved.", + AuditDetail.OBJECT_ID, DIGITAL_SIGNATURE_AUDIT_ID); return digitalSignatureViewModel; } @@ -78,15 +66,11 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public void updateDigitalSignature(@RequestBody DigitalSignatureViewModel digitalSignatureModel) { + public void updateDigitalSignature(@RequestBody DigitalSignatureViewModel digitalSignatureModel, Auditor auditor) { digitalSignatureService.updateDigitalSignature(convert(digitalSignatureModel)); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(DIGITAL_SIGNATURE_AUDIT_ID) - .category(AuditCategory.SETTINGS.name()) - .message("Digital signature has been updated.") - .build()); + auditor.audit(AuditCategory.SETTINGS.name(), "Digital signature has been updated.", + AuditDetail.OBJECT_ID, DIGITAL_SIGNATURE_AUDIT_ID); } @@ -100,29 +84,21 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public void deleteDigitalSignature() { + public void deleteDigitalSignature(Auditor auditor) { digitalSignatureService.deleteDigitalSignature(); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(DIGITAL_SIGNATURE_AUDIT_ID) - .category(AuditCategory.SETTINGS.name()) - .message("Digital signature has been deleted.") - .build()); + auditor.audit(AuditCategory.SETTINGS.name(), "Digital signature has been deleted.", + AuditDetail.OBJECT_ID, DIGITAL_SIGNATURE_AUDIT_ID); } @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature) { + public DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature, Auditor auditor) { DigitalSignatureKmsViewModel result = convert(digitalSignatureKmsService.saveDigitalSignature(digitalSignature)); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(DIGITAL_SIGNATURE_AUDIT_ID) - .category(AuditCategory.SETTINGS.name()) - .message("Digital KMS signature has been saved.") - .build()); + auditor.audit(AuditCategory.SETTINGS.name(), "Digital KMS signature has been saved.", + AuditDetail.OBJECT_ID, DIGITAL_SIGNATURE_AUDIT_ID); return result; } @@ -137,15 +113,11 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public void deleteDigitalSignatureKms() { + public void deleteDigitalSignatureKms(Auditor auditor) { digitalSignatureKmsService.deleteDigitalSignature(); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(DIGITAL_SIGNATURE_AUDIT_ID) - .category(AuditCategory.SETTINGS.name()) - .message("Digital KMS signature has been deleted.") - .build()); + auditor.audit(AuditCategory.SETTINGS.name(), "Digital KMS signature has been deleted.", + AuditDetail.OBJECT_ID, DIGITAL_SIGNATURE_AUDIT_ID); } 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/DossierAttributesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierAttributesController.java index aeb4b4754..7e4f1d306 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierAttributesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierAttributesController.java @@ -1,59 +1,45 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOSSIER_ATTRIBUTES; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOSSIER_ATTRIBUTES_CONFIG; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_DOSSIER_ATTRIBUTES; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_DOSSIER_ATTRIBUTES_CONFIG; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_FILE_ATTRIBUTES; - -import java.util.List; -import java.util.Map; - +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; +import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierAttributesManagementService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.service.v1.api.external.resource.DossierAttributesResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributes; +import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributesConfig; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +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.dossier.DossierAttribute; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; +import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; -import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.DossierAttributesManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; -import com.iqser.red.service.persistence.service.v1.api.external.resource.DossierAttributesResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributes; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributesConfig; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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.dossier.DossierAttribute; +import java.util.List; -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; @RestController @RequiredArgsConstructor public class DossierAttributesController implements DossierAttributesResource { private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; - private final AuditPersistenceService auditPersistenceService; private final DossierAttributesManagementService dossierAttributesManagementService; private final AccessControlService accessControlService; @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES_CONFIG + "')") - public DossierAttributesConfig setDossierAttributesConfig(String dossierTemplateId, DossierAttributesConfig dossierAttributesConfig) { + public DossierAttributesConfig setDossierAttributesConfig(String dossierTemplateId, DossierAttributesConfig dossierAttributesConfig, Auditor auditor) { var result = MagicConverter.convert(dossierAttributeConfigPersistenceService.setDossierAttributesConfig(dossierTemplateId, MagicConverter.convert(dossierAttributesConfig.getDossierAttributeConfigs(), DossierAttributeConfigEntity.class)), DossierAttributeConfig.class); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Changed dossier attributes base configuration.") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Changed dossier attributes base configuration.", AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); return new DossierAttributesConfig(result); } @@ -62,16 +48,12 @@ public class DossierAttributesController implements DossierAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES_CONFIG + "')") public DossierAttributeConfig addOrUpdateDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @RequestBody DossierAttributeConfig dossierAttribute) { + @RequestBody DossierAttributeConfig dossierAttribute, + Auditor auditor) { var result = MagicConverter.convert(dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, MagicConverter.convert(dossierAttribute, DossierAttributeConfigEntity.class)), DossierAttributeConfig.class); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Dossier attributes added/updated") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier attributes added/updated", AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); return result; } @@ -79,31 +61,22 @@ public class DossierAttributesController implements DossierAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES_CONFIG + "')") - public void deleteDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId) { + public void deleteDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId, Auditor auditor) { dossierAttributeConfigPersistenceService.deleteDossierAttribute(dossierAttributeId); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Dossier attributes removed") - .details(Map.of("DossierAttributeId", dossierAttributeId)) - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier attributes removed", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId, AuditDetail.DOSSIER_ATTRIBUTE_ID, dossierAttributeId); } @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES_CONFIG + "')") - public void deleteDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(DOSSIER_ATTRIBUTE_IDS) List dossierAttributeIds) { + public void deleteDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(DOSSIER_ATTRIBUTE_IDS) List dossierAttributeIds, Auditor auditor) { dossierAttributeConfigPersistenceService.deleteDossierAttributes(dossierAttributeIds); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Dossier attributes removed") - .details(Map.of("DossierAttributeId", dossierAttributeIds)) - .build()); + dossierAttributeIds.forEach(dossierAttributeId -> auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier attribute removed", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId, AuditDetail.DOSSIER_ATTRIBUTE_ID, dossierAttributeId)); + } @@ -116,63 +89,42 @@ public class DossierAttributesController implements DossierAttributesResource { @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES + "')") - public DossierAttributes setDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttributes dossierAttributes) { + public DossierAttributes setDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttributes dossierAttributes, Auditor auditor) { accessControlService.verifyUserIsDossierOwner(dossierId); var result = dossierAttributesManagementService.setDossierAttributes(dossierId, dossierAttributes.getDossierAttributeList()); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Changed dossier attributes.") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Changed dossier attributes.", AuditDetail.DOSSIER_ID, dossierId); return new DossierAttributes(result); } @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES + "')") - public DossierAttributes addOrUpdateDossierAttribute(String dossierId, DossierAttribute dossierAttribute) { + public DossierAttributes addOrUpdateDossierAttribute(String dossierId, DossierAttribute dossierAttribute, Auditor auditor) { accessControlService.verifyUserIsDossierOwner(dossierId); DossierAttribute result = dossierAttributesManagementService.addOrUpdateDossierAttribute(dossierId, dossierAttribute); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Added or updated dossier attributes.") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Added or updated dossier attributes.", AuditDetail.DOSSIER_ID, dossierId); return new DossierAttributes(List.of(result)); // TODO should be single Object??? } @PreAuthorize("hasAuthority('" + READ_DOSSIER_ATTRIBUTES + "')") - public DossierAttributes getDossierAttributes(String dossierId) { + public DossierAttributes getDossierAttributes(String dossierId, Auditor auditor) { var result = dossierAttributesManagementService.getDossierAttributes(dossierId); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Got dossier attributes.") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Got dossier attributes.", AuditDetail.DOSSIER_ID, dossierId); return new DossierAttributes(result); } @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES + "')") - public void deleteDossierAttribute(String dossierId, String dossierAttributeId) { + public void deleteDossierAttribute(String dossierId, String dossierAttributeId, Auditor auditor) { accessControlService.verifyUserIsDossierOwner(dossierId); dossierAttributesManagementService.deleteDossierAttribute(dossierId, dossierAttributeId); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Changed dossier attributes.") - .build()); - + auditor.audit(AuditCategory.DOSSIER.name(), "Changed dossier attributes.", AuditDetail.DOSSIER_ID, dossierId); } } 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 9ef7fb81a..41d2dd6db 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 @@ -1,23 +1,30 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.ADD_UPDATE_DOSSIER; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.ARCHIVE_DOSSIER; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DELETE_DOSSIER; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOSSIER; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.UNARCHIVE_DOSSIER; - -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - +import com.google.common.collect.Lists; +import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles; +import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; +import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; +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.service.v1.api.external.resource.DossierResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierChangeEntry; +import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierInformation; +import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +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.CreateOrUpdateDossierRequest; +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.notification.NotificationType; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -32,32 +39,11 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.google.common.collect.Lists; -import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles; -import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; -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.service.v1.api.external.resource.DossierResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierChangeEntry; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierInformation; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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.CreateOrUpdateDossierRequest; -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.notification.NotificationType; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import java.time.OffsetDateTime; +import java.util.*; +import java.util.stream.Collectors; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; @Slf4j @RestController @@ -69,7 +55,6 @@ public class DossierController implements DossierResource { private final DossierManagementService dossierManagementService; private final UserService userService; private final FileStatusManagementService fileStatusManagementService; - private final AuditPersistenceService auditPersistenceService; private final NotificationPersistenceService notificationPersistenceService; private final AccessControlService accessControlService; private final DossierACLService dossierACLService; @@ -97,7 +82,7 @@ public class DossierController implements DossierResource { @Override @PreAuthorize("hasAuthority('" + ADD_UPDATE_DOSSIER + "') && (#dossierRequest.dossierId == null || hasPermission(#dossierRequest.dossierId, 'Dossier', 'ACCESS_OBJECT') )") - public ResponseEntity createDossierOrUpdateDossier(@RequestBody DossierRequest dossierRequest) { + public ResponseEntity createDossierOrUpdateDossier(@RequestBody DossierRequest dossierRequest, Auditor auditor) { if (dossierRequest.getDossierId() != null && dossierRequest.getOwnerId() == null) { throw new BadRequestException("Owner must be set for any update"); @@ -141,12 +126,7 @@ public class DossierController implements DossierResource { updateFileStatusForDossierFiles(updatedDossier.getId(), members); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(updatedDossier.getId()) - .category(AuditCategory.DOSSIER.name()) - .message("Dossier has been updated.") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Dossier has been updated.", AuditDetail.DOSSIER_ID, updatedDossier.getId()); if (existingDossier.getOwnerId() == null || !existingDossier.getOwnerId().equals(ownerId)) { if (ownerId != null && !ownerId.equals(KeycloakSecurity.getUserId())) { @@ -219,12 +199,7 @@ public class DossierController implements DossierResource { } else { Dossier created = createNewDossier(dossierRequest, ownerId, members, approvers); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(created.getId()) - .category(AuditCategory.DOSSIER.name()) - .message("Dossier has been created.") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Dossier has been created.", AuditDetail.DOSSIER_ID, created.getId()); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON); @@ -346,18 +321,13 @@ public class DossierController implements DossierResource { @PreAuthorize("hasAuthority('" + DELETE_DOSSIER + "') && hasPermission(#dossierId, 'Dossier', 'ACCESS_OBJECT')") - public void deleteDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId) { + public void deleteDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId, Auditor auditor) { var dossierToBeDeleted = dossierACLService.enhanceDossierWithACLData(dossierManagementService.getDossierById(dossierId, true, false)); dossierManagementService.delete(dossierId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Dossier moved to trash.") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Dossier moved to trash.", AuditDetail.DOSSIER_ID, dossierId); dossierToBeDeleted.getMemberIds() .stream() @@ -366,7 +336,7 @@ public class DossierController implements DossierResource { .userId(member) .issuerId(KeycloakSecurity.getUserId()) .notificationType(NotificationType.DOSSIER_DELETED.name()) - .target(Map.of("dossierId", dossierId, "dossierName", dossierToBeDeleted.getDossierName())) + .target(Map.of(AuditDetail.DOSSIER_ID, dossierId, "dossierName", dossierToBeDeleted.getDossierName())) .build())); } @@ -434,7 +404,7 @@ public class DossierController implements DossierResource { @PreAuthorize("hasAuthority('" + ARCHIVE_DOSSIER + "')") @PreFilter("hasPermission(filterObject, 'Dossier', 'ACCESS_OBJECT')") - public void archiveDossiers(@RequestBody Set dossierIds) { + public void archiveDossiers(@RequestBody Set dossierIds, Auditor auditor) { for (String dossierId : dossierIds) { accessControlService.verifyUserIsDossierOwner(dossierId); @@ -442,35 +412,25 @@ public class DossierController implements DossierResource { dossierManagementService.archiveDossiers(dossierIds); for (String dossierId : dossierIds) { - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Dossier archived.") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Dossier archived.", AuditDetail.DOSSIER_ID, dossierId); } } @PreAuthorize("hasAuthority('" + UNARCHIVE_DOSSIER + "')") - public void unarchiveDossiers(@RequestBody Set dossierIds) { + public void unarchiveDossiers(@RequestBody Set dossierIds, Auditor auditor) { dossierManagementService.unarchiveDossiers(dossierIds); for (String dossierId : dossierIds) { - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Dossier restored from archive.") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Dossier restored from archive.", AuditDetail.DOSSIER_ID, dossierId); } } @PreAuthorize("hasAuthority('" + DELETE_DOSSIER + "')") @PreFilter("hasPermission(filterObject, 'Dossier', 'ACCESS_OBJECT')") - public void hardDeleteDossiers(@RequestParam(DOSSIER_ID_PARAM) Set dossierIds) { + public void hardDeleteDossiers(@RequestParam(DOSSIER_ID_PARAM) Set dossierIds, Auditor auditor) { for (String dossierId : dossierIds) { accessControlService.verifyUserIsDossierOwner(dossierId); @@ -478,32 +438,18 @@ public class DossierController implements DossierResource { dossierManagementService.hardDeleteDossiers(dossierIds); for (String dossierId : dossierIds) { - - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Dossier permanently deleted.") - .build()); - + auditor.audit(AuditCategory.DOSSIER.name(), "Dossier permanently deleted.", AuditDetail.DOSSIER_ID, dossierId); } } @PreAuthorize("hasAuthority('" + DELETE_DOSSIER + "')") @PreFilter("hasPermission(filterObject, 'Dossier', 'ACCESS_OBJECT')") - public void undeleteDossiers(@RequestBody Set dossierIds) { + public void undeleteDossiers(@RequestBody Set dossierIds, Auditor auditor) { dossierManagementService.undeleteDossiers(dossierIds); for (String dossierId : dossierIds) { - - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Dossier restored from trash.") - .build()); - + auditor.audit(AuditCategory.DOSSIER.name(), "Dossier restored from trash.", AuditDetail.DOSSIER_ID, dossierId); } } 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 dfd3a3849..7edaedbd1 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 @@ -1,54 +1,43 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOSSIER_TEMPLATES; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_DOSSIER_TEMPLATES; -import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RequestPart; -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.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.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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.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.audit.AuditDetail; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.*; 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.importexport.ExportDownloadRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest; +import com.knecon.fforesight.auditor.Auditor; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; - import feign.FeignException; import io.micrometer.core.annotation.Timed; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOSSIER_TEMPLATES; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_DOSSIER_TEMPLATES; +import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; @Slf4j @RestController @@ -57,7 +46,6 @@ public class DossierTemplateController implements DossierTemplateResource { private final DossierTemplateManagementService dossierTemplateManagementService; private final DossierTemplateStatsService dossierTemplateStatsService; - private final AuditPersistenceService auditPersistenceService; private final DossierManagementService dossierManagementService; private final DossierACLService dossierACLService; private final UserService userService; @@ -65,7 +53,7 @@ public class DossierTemplateController implements DossierTemplateResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_TEMPLATES + "')") - public DossierTemplateModel createOrUpdateDossierTemplate(@RequestBody DossierTemplateModel dossierTemplateModel) { + public DossierTemplateModel createOrUpdateDossierTemplate(@RequestBody DossierTemplateModel dossierTemplateModel, Auditor auditor) { String userId = KeycloakSecurity.getUserId(); dossierTemplateModel.setCreatedBy(userId); @@ -74,13 +62,8 @@ public class DossierTemplateController implements DossierTemplateResource { BeanUtils.copyProperties(dossierTemplateModel, dossierTemplate); try { DossierTemplateModel response = convert(dossierTemplateManagementService.createOrUpdateDossierTemplate(dossierTemplate)); - - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(response.getDossierTemplateId()) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Dossier Template has been added or updated") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier Template has been added or updated", + AuditDetail.DOSSIER_TEMPLATE_ID, response.getDossierTemplateId()); return response; } catch (FeignException e) { throw processFeignException(e); @@ -111,7 +94,7 @@ public class DossierTemplateController implements DossierTemplateResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_TEMPLATES + "')") - public void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { + public void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, Auditor auditor) { String userId = KeycloakSecurity.getUserId(); @@ -121,18 +104,14 @@ public class DossierTemplateController implements DossierTemplateResource { } dossierTemplateManagementService.deleteDossierTemplate(dossierTemplateId, userId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Dossier Template has been deleted") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier Template has been deleted", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); } @Override @PreAuthorize("hasAuthority('" + READ_DOSSIER_TEMPLATES + "')") - public void deleteDossierTemplates(@RequestBody List dossierTemplateIds) { + public void deleteDossierTemplates(@RequestBody List dossierTemplateIds, Auditor auditor) { String userId = KeycloakSecurity.getUserId(); List errorIds = new ArrayList<>(); @@ -145,12 +124,8 @@ public class DossierTemplateController implements DossierTemplateResource { } dossierTemplateManagementService.deleteDossierTemplate(dossierTemplateId, userId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Dossier template has been deleted") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier Template has been deleted", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); } catch (FeignException e) { errorIds.add(dossierTemplateId); } @@ -165,19 +140,17 @@ public class DossierTemplateController implements DossierTemplateResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_TEMPLATES + "')") public DossierTemplateModel cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest) { + @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest, + Auditor auditor) { String userId = KeycloakSecurity.getUserId(); try { DossierTemplateModel response = convert(dossierTemplateManagementService.cloneDossierTemplate(dossierTemplateId, cloneDossierTemplateRequest)); - auditPersistenceService.audit(AuditRequest.builder() - .userId(userId) - .objectId(response.getDossierTemplateId()) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Dossier Template has been cloned") - .build()); + + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier Template has been cloned", + AuditDetail.DOSSIER_TEMPLATE_ID, response.getDossierTemplateId()); return response; } catch (FeignException e) { throw processFeignException(e); @@ -214,18 +187,14 @@ public class DossierTemplateController implements DossierTemplateResource { @PreAuthorize("hasAuthority('" + READ_DOSSIER_TEMPLATES + "')") - public DownloadResponse prepareExportDownload(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { + public DownloadResponse prepareExportDownload(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, Auditor auditor) { try { ExportDownloadRequest request = ExportDownloadRequest.builder().dossierTemplateId(dossierTemplateId).userId(KeycloakSecurity.getUserId()).build(); var response = dossierTemplateManagementService.prepareExportDownload(request); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(response.getValue()) - .category(AuditCategory.DOWNLOAD.name()) - .message("Export Download was prepared") - .details(Map.of("dossierTemplateId", request.getDossierTemplateId())) - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Export Download was prepared", + AuditDetail.OBJECT_ID, response.getValue(), AuditDetail.DOSSIER_TEMPLATE_ID, request.getDossierTemplateId()); + return new DownloadResponse(response.getValue()); } catch (FeignException e) { throw processFeignException(e); @@ -237,7 +206,8 @@ public class DossierTemplateController implements DossierTemplateResource { @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_TEMPLATES + "')") public DossierTemplateModel importDossierTemplate(@RequestPart(name = "file") MultipartFile file, @RequestParam(value = DOSSIER_TEMPLATE_ID, required = false) String dossierTemplateId, - @RequestParam(value = "updateExistingDossierTemplate", required = false, defaultValue = "false") boolean updateExistingDossierTemplate) { + @RequestParam(value = "updateExistingDossierTemplate", required = false, defaultValue = "false") boolean updateExistingDossierTemplate, + Auditor auditor) { String originalFileName = file.getOriginalFilename(); if (originalFileName == null || originalFileName.isEmpty()) { @@ -260,13 +230,9 @@ public class DossierTemplateController implements DossierTemplateResource { .archive(file.getBytes()) .build(); DossierTemplate loadedDossierTemplate = dossierTemplateManagementService.importDossierTemplate(request); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(loadedDossierTemplate.getId()) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Dossier template was imported") - .details(Map.of("dossierTemplateId", loadedDossierTemplate.getId())) - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier template was imported", + AuditDetail.DOSSIER_TEMPLATE_ID, loadedDossierTemplate.getId()); + return convert(loadedDossierTemplate); } catch (IOException e) { throw new BadRequestException(e.getMessage(), 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/DownloadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java index 5744e389f..5821659fe 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java @@ -1,15 +1,28 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.PROCESS_DOWNLOAD; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOWNLOAD_STATUS; - -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - +import com.iqser.red.persistence.service.v1.external.api.impl.service.OneTimeTokenService; +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.*; +import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; +import com.iqser.red.service.persistence.service.v1.api.external.resource.DownloadResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.*; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +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.DownloadFileType; +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.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.DownloadWithOptionRequest; +import com.iqser.red.storage.commons.service.StorageService; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import com.knecon.fforesight.tenantcommons.TenantContext; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.InputStreamResource; @@ -23,38 +36,14 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.iqser.red.persistence.service.v1.external.api.impl.service.OneTimeTokenService; -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.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.DownloadService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; -import com.iqser.red.service.persistence.service.v1.api.external.resource.DownloadResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadStatusResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.PrepareDownloadRequest; -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.audit.AuditRequest; -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.DownloadFileType; -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.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.DownloadWithOptionRequest; -import com.iqser.red.storage.commons.service.StorageService; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.knecon.fforesight.tenantcommons.TenantContext; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.CompletableFuture; +import java.util.regex.Pattern; +import java.util.stream.Collectors; -import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.PROCESS_DOWNLOAD; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOWNLOAD_STATUS; @Slf4j @RestController @@ -67,7 +56,6 @@ public class DownloadController implements DownloadResource { private final FileStatusService fileStatusService; private final DownloadService downloadService; private final StorageService storageService; - private final AuditPersistenceService auditPersistenceService; private final OneTimeTokenService oneTimeTokenDownloadService; private final AccessControlService accessControlService; private final FileManagementStorageService fileManagementStorageService; @@ -79,24 +67,19 @@ public class DownloadController implements DownloadResource { @PreAuthorize("hasAuthority('" + PROCESS_DOWNLOAD + "')") - public DownloadResponse prepareDownload(@RequestBody PrepareDownloadRequest request) { + public DownloadResponse prepareDownload(@RequestBody PrepareDownloadRequest request, Auditor auditor) { // check the user is non-member or reviewer accessControlService.verifyUserIsDossierOwnerOrApprover(request.getDossierId()); var response = downloadService.prepareDownload(convert(request)); - auditPersistenceService.insertRecord(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(response.getValue()) - .category(AuditCategory.DOWNLOAD.name()) - .message("Download was prepared") - .details(Map.of("dossierId", request.getDossierId())) - .build()); + auditor.audit(AuditCategory.DOWNLOAD.name(), "Download was prepared", + AuditDetail.OBJECT_ID, response.getValue(), AuditDetail.DOSSIER_ID, request.getDossierId()); return new DownloadResponse(response.getValue()); } @PreAuthorize("hasAuthority('" + PROCESS_DOWNLOAD + "')") - public DownloadResponse prepareDownload(@RequestBody PrepareDownloadWithOptionRequest request) { + public DownloadResponse prepareDownload(@RequestBody PrepareDownloadWithOptionRequest request, Auditor auditor) { validateDossierId(request.getDossierId()); @@ -112,13 +95,8 @@ public class DownloadController implements DownloadResource { } var response = downloadService.prepareDownload(convert(request)); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(response.getValue()) - .category(AuditCategory.DOWNLOAD.name()) - .message("Download was prepared") - .details(Map.of("dossierId", request.getDossierId())) - .build()); + auditor.audit(AuditCategory.DOWNLOAD.name(), "Download was prepared", + AuditDetail.OBJECT_ID, response.getValue(),AuditDetail.DOSSIER_ID, request.getDossierId()); return new DownloadResponse(response.getValue()); } @@ -175,7 +153,7 @@ public class DownloadController implements DownloadResource { @Override @PreAuthorize("hasAuthority('" + PROCESS_DOWNLOAD + "')") - public void deleteDownloadStatus(@RequestBody RemoveDownloadRequest removeDownloadRequest) { + public void deleteDownloadStatus(@RequestBody RemoveDownloadRequest removeDownloadRequest, Auditor auditor) { removeDownloadRequest.getStorageIds().forEach(storageId -> { downloadService.deleteDownloadStatus(JSONPrimitive.of(storageId)); @@ -192,12 +170,7 @@ public class DownloadController implements DownloadResource { fileManagementStorageService.deleteObject(storageIdForAzure); } - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(storageId) - .category(AuditCategory.DOWNLOAD.name()) - .message("Remove Prepared Download") - .build()); + auditor.audit(AuditCategory.DOWNLOAD.name(), "Remove Prepared Download", AuditDetail.OBJECT_ID, storageId); }); } @@ -213,7 +186,8 @@ public class DownloadController implements DownloadResource { @PreAuthorize("hasAuthority('" + PROCESS_DOWNLOAD + "')") public CompletableFuture> downloadFile(@RequestParam(STORAGE_ID) String storageId, - @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline) { + @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, + Auditor auditor) { var userId = KeycloakSecurity.getUserId(); var tenantId = TenantContext.getTenantId(); @@ -221,7 +195,7 @@ public class DownloadController implements DownloadResource { TenantContext.setTenantId(tenantId); var downloadStatus = getDownloadStatus(storageId, userId); - var fileDownloadStream = getFileForDownload(storageId, userId); + var fileDownloadStream = getFileForDownload(storageId, userId, auditor); return getResponseEntity(inline, fileDownloadStream, downloadStatus.getFilename(), MediaType.parseMediaType("application/zip"), downloadStatus.getFileSize()); }); @@ -237,17 +211,11 @@ public class DownloadController implements DownloadResource { } - private InputStreamResource getFileForDownload(String storageId, String userId) { + private InputStreamResource getFileForDownload(String storageId, String userId, Auditor auditor) { try { var response = storageService.getObject(TenantContext.getTenantId(), storageId); - - auditPersistenceService.audit(AuditRequest.builder() - .userId(userId) - .objectId(storageId) - .category(AuditCategory.DOWNLOAD.name()) - .message("File was downloaded.") - .build()); + auditor.audit(AuditCategory.DOWNLOAD.name(), "File was downloaded.", AuditDetail.OBJECT_ID, storageId); downloadService.setDownloaded(JSONPrimitive.of(storageId)); return response; @@ -284,14 +252,14 @@ public class DownloadController implements DownloadResource { @Override public CompletableFuture> downloadFileUsingOTT(@PathVariable(OTT) String oneTimeToken, @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, - @RequestParam(value = "tenantId") String tenantId) { + @RequestParam(value = "tenantId") String tenantId, Auditor auditor) { return CompletableFuture.supplyAsync(() -> { TenantContext.setTenantId(tenantId); log.debug("downloadFileUsingOTT {}", oneTimeToken); var token = oneTimeTokenDownloadService.getToken(oneTimeToken); var downloadStatus = getDownloadStatus(token.getStorageId(), token.getUserId()); - var fileDownloadStream = getFileForDownload(token.getStorageId(), token.getUserId()); + var fileDownloadStream = getFileForDownload(token.getStorageId(), token.getUserId(), auditor); TenantContext.clear(); 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/FileAttributesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileAttributesController.java index 1a2255b80..ed8a6d0ee 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileAttributesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileAttributesController.java @@ -1,19 +1,5 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_FILE_ATTRIBUTES_CONFIG; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_FILE_ATTRIBUTES; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_FILE_ATTRIBUTES_CONFIG; - -import java.util.List; -import java.util.Map; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; @@ -21,20 +7,28 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.NotAl import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; import com.iqser.red.service.persistence.management.v1.processor.service.FileAttributesManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import com.iqser.red.service.persistence.service.v1.api.external.resource.FileAttributesResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributes; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributesConfig; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.FileAttributesGeneralConfiguration; 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.dossier.file.WorkflowStatus; - +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; @Slf4j @RestController @@ -43,14 +37,13 @@ public class FileAttributesController implements FileAttributesResource { private final FileAttributesManagementService fileAttributesManagementService; private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; - private final AuditPersistenceService auditPersistenceService; private final FileStatusService fileStatusService; private final AccessControlService accessControlService; @Override @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES_CONFIG + "')") - public FileAttributesConfig setFileAttributesConfig(String dossierTemplateId, FileAttributesConfig fileAttributesConfig) { + public FileAttributesConfig setFileAttributesConfig(String dossierTemplateId, FileAttributesConfig fileAttributesConfig, Auditor auditor) { if (StringUtils.isEmpty(fileAttributesConfig.getEncoding()) || !encodingList.contains(fileAttributesConfig.getEncoding().trim())) { throw new BadRequestException("Invalid encoding setting"); @@ -59,12 +52,8 @@ public class FileAttributesController implements FileAttributesResource { MagicConverter.convert(fileAttributesConfig, FileAttributesGeneralConfigurationEntity.class)); var result = fileAttributeConfigPersistenceService.setFileAttributesConfig(dossierTemplateId, MagicConverter.convert(fileAttributesConfig.getFileAttributeConfigs(), FileAttributeConfigEntity.class)); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Changed file attributes base configuration & attribute configuration ( CSV Import )") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Changed file attributes base configuration & attribute configuration ( CSV Import )", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); return FileAttributesConfig.builder() .filenameMappingColumnHeaderName(fileAttributesConfig.getFilenameMappingColumnHeaderName()) .delimiter(fileAttributesConfig.getDelimiter()) @@ -77,16 +66,12 @@ public class FileAttributesController implements FileAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES_CONFIG + "')") - public FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttribute) { + public FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttribute, Auditor auditor) { var result = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, MagicConverter.convert(fileAttribute, FileAttributeConfigEntity.class)); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("File attributes added/updated") - .details(Map.of("FileAttributeName", fileAttribute.getLabel() != null ? fileAttribute.getLabel() : "", "dossierTemplateId", dossierTemplateId)) - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "File attributes added/updated", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId, + AuditDetail.FILE_ATTRIBUTE_NAME, fileAttribute.getLabel() != null ? fileAttribute.getLabel() : StringUtils.EMPTY); return MagicConverter.convert(result, FileAttributeConfig.class); } @@ -94,31 +79,21 @@ public class FileAttributesController implements FileAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES_CONFIG + "')") - public void deleteFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId) { + public void deleteFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId, Auditor auditor) { fileAttributeConfigPersistenceService.deleteFileAttribute(fileAttributeId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("File attributes removed") - .details(Map.of("FileAttributeId", fileAttributeId)) - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "File attributes removed", + AuditDetail.DOSSIER_TEMPLATE_ID,dossierTemplateId, AuditDetail.FILE_ATTRIBUTE_ID, fileAttributeId); } @Override @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES_CONFIG + "')") - public void deleteFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributeIds) { + public void deleteFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributeIds, Auditor auditor) { fileAttributeConfigPersistenceService.deleteFileAttributes(fileAttributeIds); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("File attributes removed") - .details(Map.of("FileAttributeId", fileAttributeIds)) - .build()); + fileAttributeIds.forEach(fileAttributeId -> auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "File attribute removed", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId, AuditDetail.FILE_ATTRIBUTE_ID, fileAttributeId)); } @@ -143,7 +118,7 @@ public class FileAttributesController implements FileAttributesResource { @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES + "')") - public void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody FileAttributes fileAttributes) { + public void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody FileAttributes fileAttributes, Auditor auditor) { var file = fileStatusService.getStatus(fileId); @@ -155,12 +130,7 @@ public class FileAttributesController implements FileAttributesResource { } accessControlService.verifyUserIsMemberOrApprover(dossierId); fileAttributesManagementService.setFileAttributes(dossierId, fileId, fileAttributes.getAttributeIdToValue()); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("File attributes has been edited for a document.") - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "File attributes have been edited for a document.", AuditDetail.FILE_ID, fileId); } 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/FileManagementController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java index 6611e1934..fd339ff78 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java @@ -1,17 +1,29 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DELETE_FILE; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DOWNLOAD_ORIGINAL_FILE; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.ROTATE_PAGE; -import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; -import static com.iqser.red.service.persistence.management.v1.processor.utils.DownloadBufferUtils.fileProxyStreamForDownload; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; - +import com.iqser.red.service.persistence.management.v1.processor.client.pdftronredactionservice.PDFTronClient; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.exception.InternalServerErrorException; +import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException; +import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; +import com.iqser.red.service.persistence.management.v1.processor.service.*; +import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils; +import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; +import com.iqser.red.service.persistence.service.v1.api.external.resource.FileManagementResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.RotatePagesRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +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.dossier.file.FileType; +import com.iqser.red.storage.commons.exception.StorageException; +import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; +import com.iqser.red.storage.commons.service.StorageService; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.tenantcommons.TenantContext; +import feign.FeignException; +import io.micrometer.core.annotation.Timed; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -23,37 +35,15 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.iqser.red.service.persistence.management.v1.processor.client.pdftronredactionservice.PDFTronClient; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.exception.InternalServerErrorException; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; -import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; -import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils; -import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; -import com.iqser.red.service.persistence.service.v1.api.external.resource.FileManagementResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.RotatePagesRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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.dossier.file.FileType; -import com.iqser.red.storage.commons.exception.StorageException; -import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; -import com.iqser.red.storage.commons.service.StorageService; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.knecon.fforesight.tenantcommons.TenantContext; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; -import feign.FeignException; -import io.micrometer.core.annotation.Timed; -import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; +import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; +import static com.iqser.red.service.persistence.management.v1.processor.utils.DownloadBufferUtils.fileProxyStreamForDownload; +import static com.knecon.fforesight.auditor.model.Detail.d; @Slf4j @RestController @@ -63,7 +53,6 @@ public class FileManagementController implements FileManagementResource { private static final String DOWNLOAD_HEADER_NAME = "Content-Disposition"; private final FileService fileService; - private final AuditPersistenceService auditPersistenceService; private final AccessControlService accessControlService; private final PDFTronClient pdfTronClient; private final ReanalysisService reanalysisService; @@ -76,35 +65,25 @@ public class FileManagementController implements FileManagementResource { @Timed @Override @PreAuthorize("hasAuthority('" + DELETE_FILE + "')") - public void deleteFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId) { + public void deleteFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, Auditor auditor) { fileService.deleteFile(dossierId, fileId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("File has been deleted.") - .details(Map.of("fileId", fileId)) - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "File has been deleted.", + AuditDetail.DOSSIER_ID, dossierId, AuditDetail.FILE_ID, fileId); } @Timed @Override @PreAuthorize("hasAuthority('" + DELETE_FILE + "')") - public void deleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds) { + public void deleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, Auditor auditor) { List errorIds = new ArrayList<>(); for (String fileId : fileIds) { try { fileService.deleteFile(dossierId, fileId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Files have been deleted.") - .details(Map.of("Size", fileIds.size())) - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Files have been deleted.", + AuditDetail.DOSSIER_ID, dossierId, AuditDetail.SIZE, fileIds.size()); } catch (Exception e) { errorIds.add(fileId); } @@ -175,7 +154,7 @@ public class FileManagementController implements FileManagementResource { @Override @PreAuthorize("hasAuthority('" + DELETE_FILE + "')") - public void hardDeleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(FILE_IDS) Set fileIds) { + public void hardDeleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(FILE_IDS) Set fileIds, Auditor auditor) { for (String fileId : fileIds) { if (fileStatusManagementService.getFileStatus(fileId).getAssignee() != null) { @@ -183,35 +162,25 @@ public class FileManagementController implements FileManagementResource { } } fileService.hardDeleteFiles(dossierId, fileIds); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Files has been hard deleted.") - .details(Map.of("FileIds", fileIds)) - .build()); + fileIds.forEach(fileId -> auditor.audit(AuditCategory.DOSSIER.name(), "File has been hard deleted.", + AuditDetail.DOSSIER_ID, dossierId, AuditDetail.FILE_ID, fileId)); } @Override @PreAuthorize("hasAuthority('" + DELETE_FILE + "')") - public void restoreFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds) { + public void restoreFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, Auditor auditor) { verifyUserIsDossierOwnerOrApproverOrAssignedReviewer(dossierId, fileIds); fileService.undeleteFiles(dossierId, fileIds); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Files has been restored.") - .details(Map.of("FileIds", fileIds)) - .build()); + fileIds.forEach(fileId -> auditor.audit(AuditCategory.DOSSIER.name(), "File has been restored.", + AuditDetail.DOSSIER_ID, dossierId, AuditDetail.FILE_ID, fileId)); } @Override @PreAuthorize("hasAuthority('" + ROTATE_PAGE + "')") - public void rotatePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RotatePagesRequest rotatePagesRequest) { + public void rotatePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RotatePagesRequest rotatePagesRequest, Auditor auditor) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsReviewer(dossierId, fileId); @@ -235,13 +204,9 @@ public class FileManagementController implements FileManagementResource { } } - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOCUMENT.name()) - .message("Pages have been rotated.") - .details(Map.of("Pages", rotatePagesRequest.getPages().keySet())) - .build()); + + auditor.audit(AuditCategory.DOSSIER.name(), "File page has been rotated.", + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.PAGES, rotatePagesRequest.getPages().size())); } catch (FeignException e) { throw processFeignException(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/LegalBasisMappingController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LegalBasisMappingController.java index 50e89cba3..b3b09abb3 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LegalBasisMappingController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LegalBasisMappingController.java @@ -1,74 +1,56 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_LEGAL_BASIS; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_LEGAL_BASIS; - -import java.util.List; - +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; +import com.iqser.red.service.persistence.service.v1.api.external.resource.LegalBasisMappingResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; import jakarta.transaction.Transactional; - +import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; -import com.iqser.red.service.persistence.service.v1.api.external.resource.LegalBasisMappingResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis; +import java.util.List; -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_LEGAL_BASIS; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_LEGAL_BASIS; @RestController @RequiredArgsConstructor public class LegalBasisMappingController implements LegalBasisMappingResource { private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; - private final AuditPersistenceService auditPersistenceService; - @Override @PreAuthorize("hasAuthority('" + WRITE_LEGAL_BASIS + "')") - public void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames) { + public void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames, Auditor auditor) { legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId, legalBasisNames); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Legal basis mapping has been changed.") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Legal basis mapping has been changed.", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); } @Override @PreAuthorize("hasAuthority('" + WRITE_LEGAL_BASIS + "')") - public void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis) { + public void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis, Auditor auditor) { legalBasisMappingPersistenceService.addOrUpdateLegalBasis(dossierTemplateId, legalBasis); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Legal basis mapping has been changed.") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Legal basis mapping has been changed.", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); } @PreAuthorize("hasAuthority('" + WRITE_LEGAL_BASIS + "')") - public void setLegalBasisMapping(@RequestBody List legalBasisMapping, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { + public void setLegalBasisMapping(@RequestBody List legalBasisMapping, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, Auditor auditor) { legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, legalBasisMapping); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Legal basis mapping has been changed.") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Legal basis mapping has been changed.", + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); } @Transactional 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/LicenseReportController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LicenseReportController.java index 12ff2536f..01657a036 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LicenseReportController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LicenseReportController.java @@ -1,43 +1,33 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_LICENSE_REPORT; - +import com.iqser.red.service.persistence.management.v1.processor.service.LicenseReportService; +import com.iqser.red.service.persistence.service.v1.api.external.resource.LicenseReportResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +import com.iqser.red.service.persistence.service.v1.api.shared.model.license.LicenseReport; +import com.iqser.red.service.persistence.service.v1.api.shared.model.license.LicenseReportRequest; +import com.knecon.fforesight.auditor.Auditor; +import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.persistence.management.v1.processor.service.LicenseReportService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.external.resource.LicenseReportResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.license.LicenseReport; -import com.iqser.red.service.persistence.service.v1.api.shared.model.license.LicenseReportRequest; - -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_LICENSE_REPORT; @RestController @RequiredArgsConstructor public class LicenseReportController implements LicenseReportResource { private static final String LICENSE_AUDIT_KEY = "License"; - private final AuditPersistenceService auditPersistenceService; - private final LicenseReportService licenseReportService; @Override @PreAuthorize("hasAuthority('" + READ_LICENSE_REPORT + "')") - public LicenseReport getReport(@RequestBody LicenseReportRequest reportRequest) { + public LicenseReport getReport(@RequestBody LicenseReportRequest reportRequest, Auditor auditor) { LicenseReport licenseReport = licenseReportService.getLicenseReport(reportRequest); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(LICENSE_AUDIT_KEY) - .category(AuditCategory.LICENSE.name()) - .message("License report has been viewed.") - .build()); + auditor.audit(AuditCategory.LICENSE.name(), "License report has been viewed.", AuditDetail.OBJECT_ID, LICENSE_AUDIT_KEY); return licenseReport; } 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 d24f54d56..d97e43c4f 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 @@ -1,54 +1,33 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.ADD_COMMENT; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DELETE_COMMENT; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DELETE_MANUAL_REDACTION; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DO_MANUAL_REDACTION; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_MANUAL_REDACTIONS; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; import com.iqser.red.service.persistence.management.v1.processor.service.CommentService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionMapper; import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionService; import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionUndoService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.CommentResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AddRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.CommentRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Comments; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ForceRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.LegalBasisChangeRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualAddResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.RecategorizationRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.RemoveRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ResizeRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.AddCommentRequestModel; -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; -import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RecategorizationRequestModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RemoveRedactionRequestModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.ResizeRedactionRequestModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.*; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.*; +import com.knecon.fforesight.auditor.Auditor; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; - import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Set; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; +import static com.knecon.fforesight.auditor.model.Detail.d; @Slf4j @RestController @@ -56,13 +35,9 @@ import lombok.extern.slf4j.Slf4j; @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) public class ManualRedactionController implements ManualRedactionResource { - final static String FILE_ID = "fileId"; - final static String DOSSIER_ID = "dossierId"; - final static String ANNOTATION_ID = "annotationId"; ManualRedactionService manualRedactionService; ManualRedactionUndoService manualRedactionUndoService; DossierManagementService dossierManagementService; - AuditPersistenceService auditPersistenceService; AccessControlService accessControlService; ManualRedactionMapper manualRedactionMapper; CommentService commentService; @@ -84,18 +59,14 @@ public class ManualRedactionController implements ManualRedactionResource { public void undoComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, - @PathVariable(COMMENT_ID) String commentId) { + @PathVariable(COMMENT_ID) String commentId, + Auditor auditor) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Comment was removed.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, annotationId)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(),"Comment was removed." , + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.ANNOTATION_ID, annotationId)); commentService.deleteComment(dossierId, fileId, List.of(Long.valueOf(commentId))); } @@ -122,7 +93,8 @@ public class ManualRedactionController implements ManualRedactionResource { public CommentResponse addComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, - @RequestBody AddCommentRequestModel addCommentRequest) { + @RequestBody AddCommentRequestModel addCommentRequest, + Auditor auditor) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); @@ -132,13 +104,8 @@ public class ManualRedactionController implements ManualRedactionResource { annotationId, CommentRequest.builder().user(KeycloakSecurity.getUserId()).text(addCommentRequest.getText()).build()); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Comment was added.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, annotationId)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(),"Comment was added." , + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.ANNOTATION_ID, annotationId)); return new CommentResponse(String.valueOf(response.getId())); } @@ -148,7 +115,8 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List addRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set addRedactionRequests) { + @RequestBody Set addRedactionRequests, + Auditor auditor) { var dossier = dossierManagementService.getDossierById(dossierId, false, false); @@ -162,13 +130,8 @@ public class ManualRedactionController implements ManualRedactionResource { List requests = manualRedactionMapper.toAddRedactionRequestList(dossierId, addRedactionRequests, dossier); List responseList = manualRedactionService.addAddRedaction(dossierId, fileId, requests); - responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Manual redaction was added.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, response.getAnnotationId())) - .build())); + responseList.forEach(response -> auditor.audit(AuditCategory.DOCUMENT.name(),"Manual redaction was added." , + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.ANNOTATION_ID, response.getAnnotationId()))); return responseList; } @@ -177,7 +140,8 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List removeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set removeRedactionRequests) { + @RequestBody Set removeRedactionRequests, + Auditor auditor) { var dossier = dossierManagementService.getDossierById(dossierId, false, false); accessControlService.verifyFileIsNotApproved(dossierId, fileId); @@ -190,13 +154,8 @@ public class ManualRedactionController implements ManualRedactionResource { List requests = manualRedactionMapper.toRemoveRedactionRequestList(dossierId, fileId, dossier.getDossierTemplateId(), removeRedactionRequests); List responseList = manualRedactionService.addRemoveRedaction(dossierId, fileId, requests); - responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Redaction was manually removed") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, response.getAnnotationId())) - .build())); + responseList.forEach(response -> auditor.audit(AuditCategory.DOCUMENT.name(),"Redaction was manually removed" , + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.ANNOTATION_ID, response.getAnnotationId()))); return responseList; } @@ -205,7 +164,8 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List forceRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set forceRedactionRequests) { + @RequestBody Set forceRedactionRequests, + Auditor auditor) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); @@ -213,13 +173,8 @@ public class ManualRedactionController implements ManualRedactionResource { List requests = manualRedactionMapper.toForceRedactionRequestList(forceRedactionRequests); List responseList = manualRedactionService.addForceRedaction(dossierId, fileId, requests); - responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Skipped redaction was forced to be redacted") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, response.getAnnotationId())) - .build())); + responseList.forEach(response -> auditor.audit(AuditCategory.DOCUMENT.name(),"Skipped redaction was forced to be redacted" , + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.ANNOTATION_ID, response.getAnnotationId()))); return responseList; } @@ -228,7 +183,8 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List legalBasisChangeBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set legalBasisChangeRequests) { + @RequestBody Set legalBasisChangeRequests, + Auditor auditor) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); @@ -237,13 +193,8 @@ public class ManualRedactionController implements ManualRedactionResource { List responseList = manualRedactionService.addLegalBasisChange(dossierId, fileId, requests); - responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Legal basis reason was changed") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, response.getAnnotationId())) - .build())); + responseList.forEach(response -> auditor.audit(AuditCategory.DOCUMENT.name(),"Legal basis reason was changed" , + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.ANNOTATION_ID, response.getAnnotationId()))); return responseList; } @@ -252,7 +203,8 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List recategorizeBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set recategorizationRequests) { + @RequestBody Set recategorizationRequests, + Auditor auditor) { var dossier = dossierManagementService.getDossierById(dossierId, false, false); accessControlService.verifyFileIsNotApproved(dossierId, fileId); @@ -262,13 +214,8 @@ public class ManualRedactionController implements ManualRedactionResource { List responseList = manualRedactionService.addRecategorization(dossierId, fileId, requests); - responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Entity was recategorized.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, response.getAnnotationId())) - .build())); + responseList.forEach(response -> auditor.audit(AuditCategory.DOCUMENT.name(),"Entity was recategorized." , + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.ANNOTATION_ID, response.getAnnotationId()))); return responseList; } @@ -277,7 +224,8 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List resizeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set resizeRedactionRequests) { + @RequestBody Set resizeRedactionRequests, + Auditor auditor) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); @@ -285,13 +233,8 @@ public class ManualRedactionController implements ManualRedactionResource { List requests = manualRedactionMapper.toResizeRedactionRequestList(resizeRedactionRequests); List responseList = manualRedactionService.addResizeRedaction(dossierId, fileId, requests); - responseList.forEach(response -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Skipped redaction was resized to be redacted") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, response.getAnnotationId())) - .build())); + responseList.forEach(response -> auditor.audit(AuditCategory.DOCUMENT.name(),"Skipped redaction was resized to be redacted" , + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.ANNOTATION_ID, response.getAnnotationId()))); return responseList; } 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/RSSController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java index 46167cafe..d2c9356ce 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java @@ -1,30 +1,28 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_RSS; - -import java.util.Map; -import java.util.stream.Collectors; - +import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.RssReportClient; +import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; +import com.iqser.red.service.persistence.service.v1.api.external.resource.RSSResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetailAction; +import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides; +import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.rss.RSSFileResponse; +import com.iqser.red.service.persistence.service.v1.api.shared.model.rss.RSSResponse; +import com.iqser.red.service.redaction.report.v1.api.model.rss.DetailedRSSResponse; +import com.knecon.fforesight.auditor.Auditor; +import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.RssReportClient; -import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.external.resource.RSSResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides; -import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.rss.RSSFileResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.rss.RSSResponse; -import com.iqser.red.service.redaction.report.v1.api.model.rss.DetailedRSSResponse; +import java.util.stream.Collectors; -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_RSS; +import static com.knecon.fforesight.auditor.model.Detail.d; @RestController @RequiredArgsConstructor @@ -32,8 +30,6 @@ public class RSSController implements RSSResource { private final RssReportClient rssReportClient; private final ComponentOverrideService componentOverrideService; - private final AuditPersistenceService auditPersistenceService; - @PreAuthorize("hasAuthority('" + GET_RSS + "')") public RSSResponse getRSS(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = "fileId", required = false) String fileId) { @@ -66,7 +62,7 @@ public class RSSController implements RSSResource { @PreAuthorize("hasAuthority('" + GET_RSS + "')") - public void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides) { + public void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides, Auditor auditor) { var rssReport = rssReportClient.getDetailedRSS(dossierId, fileId); var components = rssReport.getFiles().get(0).getResult(); @@ -74,26 +70,11 @@ public class RSSController implements RSSResource { componentOverrideService.addOverrides(dossierId, fileId, componentsOverrides); componentsOverrides.getComponentOverrides() - .forEach((key, value) -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("The component is overwritten with value") - .details(Map.of(DOSSIER_ID, - dossierId, - FILE_ID, - fileId, - "ComponentName", - key, - "Action", - "MODIFY", - "OriginalValue", - components.get(key).getOriginalValue(), - "OldValue", - components.get(key).getValue() != null ? components.get(key).getValue() : components.get(key).getOriginalValue(), - "NewValue", - value)) - .build())); + .forEach((key, value) -> auditor.audit(AuditCategory.DOCUMENT.name(), "The component is overwritten with value", + d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), + d(AuditDetail.COMPONENT_NAME, key), + d(AuditDetail.ACTION, AuditDetailAction.MODIFY.getID()), + d(AuditDetail.VALUE, value))); } @@ -105,7 +86,10 @@ public class RSSController implements RSSResource { @PreAuthorize("hasAuthority('" + GET_RSS + "')") - public void revertOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RevertOverrideRequest revertOverrideRequest) { + public void revertOverrides(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, + @RequestBody RevertOverrideRequest revertOverrideRequest, + Auditor auditor) { var rssReport = rssReportClient.getDetailedRSS(dossierId, fileId); var components = rssReport.getFiles().get(0).getResult(); @@ -113,26 +97,11 @@ public class RSSController implements RSSResource { componentOverrideService.revertOverrides(dossierId, fileId, revertOverrideRequest); revertOverrideRequest.getComponents() - .forEach(component -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("The component override for was reverted") - .details(Map.of(DOSSIER_ID, - dossierId, - FILE_ID, - fileId, - "ComponentName", - component, - "Action", - "REVERT", - "OriginalValue", - components.get(component).getOriginalValue(), - "OldValue", - components.get(component).getValue() != null ? components.get(component).getValue() : components.get(component).getOriginalValue(), - "NewValue", - components.get(component).getOriginalValue())) - .build())); + .forEach(component -> auditor.audit(AuditCategory.DOCUMENT.name(), "The component override for was reverted", + d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), + d(AuditDetail.COMPONENT_NAME, component), + d(AuditDetail.ACTION, AuditDetailAction.REVERT.getID()), + d(AuditDetail.VALUE, components.get(component).getOriginalValue()))); } } 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/ReanalysisController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReanalysisController.java index ef8afeb59..b29274585 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReanalysisController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReanalysisController.java @@ -1,13 +1,19 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - +import com.google.common.collect.Sets; +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.AccessControlService; +import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; +import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService; +import com.iqser.red.service.persistence.service.v1.api.external.resource.ReanalysisResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.PageExclusionRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; +import com.knecon.fforesight.auditor.Auditor; +import feign.FeignException; +import lombok.RequiredArgsConstructor; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; @@ -15,35 +21,23 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.google.common.collect.Sets; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -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.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.external.resource.ReanalysisResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.PageExclusionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; -import feign.FeignException; -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; @RestController @RequiredArgsConstructor public class ReanalysisController implements ReanalysisResource { - private static final String DOSSIER_ID = "dossierId"; private final ReanalysisService reanalysisService; private final FileStatusManagementService fileStatusManagementService; - private final AuditPersistenceService auditPersistenceService; private final AccessControlService accessControlService; @PreAuthorize("hasAuthority('" + REANALYZE_DOSSIER + "')") - public void reanalyzeDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force) { + public void reanalyzeDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, Auditor auditor) { try { accessControlService.verifyUserHasViewPermissions(dossierId); @@ -54,28 +48,18 @@ public class ReanalysisController implements ReanalysisResource { accessControlService.verifyUserHasAccessPermissions(dossierId); reanalysisService.reanalyzeDossier(dossierId, force); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("Reanalyse dossier was triggered") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Reanalyse dossier was triggered", AuditDetail.DOSSIER_ID, dossierId); } @PreAuthorize("hasAuthority('" + REANALYZE_FILE + "')") public void reanalyzeFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force) { + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, + Auditor auditor) { reanalysisService.reanalyzeFiles(dossierId, Sets.newHashSet(fileId), force); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOCUMENT.name()) - .message("Reanalyse file was triggered") - .details(Map.of(DOSSIER_ID, dossierId)) - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Reanalyse file was triggered", AuditDetail.DOSSIER_ID, dossierId); } @@ -83,24 +67,20 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + REANALYZE_FILE + "')") public void reanalyzeFilesForDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force) { + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, + Auditor auditor) { reanalysisService.reanalyzeFiles(dossierId, new HashSet<>(fileIds), force); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOCUMENT.name()) - .message("Reanalyse files was triggered") - .details(Map.of(DOSSIER_ID, dossierId, "number", fileIds.size())) - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "Reanalyse files was triggered", + AuditDetail.DOSSIER_ID, dossierId, AuditDetail.NUMBER, fileIds.size()); } @Override @PreAuthorize("hasAuthority('" + REANALYZE_DOSSIER + "')") - public void ocrDossier(@PathVariable(DOSSIER_ID) String dossierId) { + public void ocrDossier(@PathVariable(DOSSIER_ID) String dossierId, Auditor auditor) { try { accessControlService.verifyUserHasViewPermissions(dossierId); @@ -111,12 +91,7 @@ public class ReanalysisController implements ReanalysisResource { accessControlService.verifyUserHasAccessPermissions(dossierId); reanalysisService.ocrDossier(dossierId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("OCR and reanalyse dossier was triggered") - .build()); + auditor.audit(AuditCategory.DOSSIER.name(), "OCR and reanalyse dossier was triggered", AuditDetail.NUMBER, dossierId); } @@ -125,51 +100,37 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + REANALYZE_FILE + "')") public void ocrFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force) { + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, Auditor auditor) { validateOCR(dossierId, fileId); reanalysisService.ocrFile(dossierId, fileId, force); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOCUMENT.name()) - .message("OCR and reanalyse file was triggered") - .details(Map.of(DOSSIER_ID, dossierId)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "OCR and reanalyse file was triggered", AuditDetail.DOSSIER_ID, dossierId); } @Override @PreAuthorize("hasAuthority('" + REANALYZE_FILE + "')") - public void ocrFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds) { + public void ocrFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, Auditor auditor) { fileIds.forEach(fileId -> validateOCR(dossierId, fileId)); reanalysisService.ocrFiles(dossierId, fileIds); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOCUMENT.name()) - .message("OCR and reanalyse was triggered") - .details(Map.of(DOSSIER_ID, dossierId, "number", fileIds.size())) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "OCR and reanalyse file was triggered", AuditDetail.DOSSIER_ID, dossierId); } @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_FILE + "')") public void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis) { + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis, + Auditor auditor) { accessControlService.verifyUserIsReviewer(dossierId, fileId); fileStatusManagementService.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Toggle Exclusion status: File excluded from automatic analysis: " + excludedFromAutomaticAnalysis) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), + "Toggle Exclusion status: File excluded from automatic analysis: " + excludedFromAutomaticAnalysis, + AuditDetail.FILE_ID, fileId); } @@ -178,7 +139,8 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_FILE + "')") public void toggleExclusion(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = "false") boolean excluded) { + @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = "false") boolean excluded, + Auditor auditor) { var status = fileStatusManagementService.getFileStatus(fileId); if (!(status.getAssignee() == null && status.isExcluded())) { // Needed to include documents after 3.0 migration. @@ -186,24 +148,21 @@ public class ReanalysisController implements ReanalysisResource { } fileStatusManagementService.toggleExclusion(dossierId, fileId, excluded); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Toggle Exclusion status: File excluded from analysis: " + excluded) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), + "Toggle Exclusion status: File excluded from analysis: " + excluded, AuditDetail.FILE_ID, fileId); } @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_FILE + "')") public void toggleAutomaticAnalysisForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, - @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis) { + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis, + Auditor auditor) { List errorIds = new ArrayList<>(); for (var fileId : fileIds) { try { - this.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis); + this.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis, auditor); } catch (FeignException e) { errorIds.add(fileId); } @@ -216,12 +175,13 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_FILE + "')") public void toggleExclusionForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, - @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = "false") boolean excluded) { + @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = "false") boolean excluded, + Auditor auditor) { List errorIds = new ArrayList<>(); for (var fileId : fileIds) { try { - this.toggleExclusion(dossierId, fileId, excluded); + this.toggleExclusion(dossierId, fileId, excluded, auditor); } catch (FeignException e) { errorIds.add(fileId); } @@ -234,7 +194,10 @@ public class ReanalysisController implements ReanalysisResource { @Override @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_PAGES + "')") - public void excludePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageExclusionRequest) { + public void excludePages(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, + @RequestBody PageExclusionRequest pageExclusionRequest, + Auditor auditor) { accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); @@ -246,19 +209,14 @@ public class ReanalysisController implements ReanalysisResource { } fileStatusManagementService.excludePages(dossierId, fileId, excludedPages); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Page exclusions added for file") - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "Page exclusions added for file", AuditDetail.FILE_ID, fileId); } @Override @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_PAGES + "')") - public void includePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageInclusionRequest) { + public void includePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageInclusionRequest, Auditor auditor) { accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); @@ -270,28 +228,19 @@ public class ReanalysisController implements ReanalysisResource { } fileStatusManagementService.includePages(dossierId, fileId, includePages); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Page inclusions added for file") - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "Page inclusions added for file", AuditDetail.FILE_ID, fileId); } @PreAuthorize("hasAuthority('" + REINDEX + "')") public void reindex(@RequestParam(value = "dossierId", required = false) String dossierId, @RequestParam(value = "dropIndex", required = false, defaultValue = FALSE) boolean dropIndex, - @RequestBody List fileIds) { + @RequestBody List fileIds, + Auditor auditor) { reanalysisService.reindex(dossierId, dropIndex, new HashSet<>(fileIds)); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId("redaction") - .category(AuditCategory.INDEX.name()) - .message("Reindexing has been triggered" + (dropIndex ? " (with drop index)." : ".")) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "Reindexing has been triggered" + (dropIndex ? " (with drop index)." : ".")); } 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 d4713df9c..050d57c85 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 @@ -1,18 +1,31 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DELETE_REPORT_TEMPLATE; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DOWNLOAD_REPORT_TEMPLATE; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_REPORT_TEMPLATES; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.UPLOAD_REPORT_TEMPLATE; -import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - +import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.PlaceholderClient; +import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.ReportTemplatePlaceholderClient; +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.FileManagementStorageService; +import com.iqser.red.service.persistence.management.v1.processor.service.ReportTemplateService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; +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.management.v1.processor.utils.StringEncodingUtils; +import com.iqser.red.service.persistence.service.v1.api.external.resource.ReportTemplateResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.PlaceholdersResponse; +import com.iqser.red.service.persistence.service.v1.api.shared.model.ReportTemplateUpdateRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +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.ReportTemplate; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ReportTemplateUploadRequest; +import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; +import com.iqser.red.storage.commons.service.StorageService; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; +import com.knecon.fforesight.tenantcommons.TenantContext; +import feign.FeignException; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.springframework.core.io.InputStreamResource; import org.springframework.http.HttpHeaders; @@ -20,41 +33,17 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.PlaceholderClient; -import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.ReportTemplatePlaceholderClient; -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.ReportTemplateService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; -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.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; -import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; -import com.iqser.red.service.persistence.service.v1.api.external.resource.ReportTemplateResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.PlaceholdersResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.ReportTemplateUpdateRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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.ReportTemplate; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ReportTemplateUploadRequest; -import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; -import com.iqser.red.storage.commons.service.StorageService; -import com.knecon.fforesight.tenantcommons.TenantContext; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; -import feign.FeignException; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; +import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; @Slf4j @RestController @@ -63,7 +52,6 @@ public class ReportTemplateController implements ReportTemplateResource { private final ReportTemplatePlaceholderClient reportTemplatePlaceholderClient; private final PlaceholderClient placeholderClient; - private final AuditPersistenceService auditPersistenceService; private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; private final StorageService storageService; @@ -90,7 +78,8 @@ public class ReportTemplateController implements ReportTemplateResource { public ReportTemplate uploadTemplate(@RequestPart(name = "file") MultipartFile file, @PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(value = MULTI_FILE_REPORT, required = false, defaultValue = "false") boolean multiFileReport, - @RequestParam(value = ACTIVE_BY_DEFAULT, required = false, defaultValue = "false") boolean activeByDefault) { + @RequestParam(value = ACTIVE_BY_DEFAULT, required = false, defaultValue = "false") boolean activeByDefault, + Auditor auditor) { try { if (file.getOriginalFilename() != null) { @@ -103,13 +92,8 @@ public class ReportTemplateController implements ReportTemplateResource { .multiFileReport(multiFileReport) .build(); var reportTemplate = reportTemplateService.uploadTemplate(reportTemplateUploadRequest); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(reportTemplate.getTemplateId()) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Report template was uploaded.") - .details(Map.of("DossierTemplateId", dossierTemplateId)) - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Report template was uploaded.", + AuditDetail.TEMPLATE_ID, reportTemplate.getTemplateId(), AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); return reportTemplate; } else { throw new BadRequestException("Could not upload file, no filename provided."); @@ -162,18 +146,13 @@ public class ReportTemplateController implements ReportTemplateResource { @Override @PreAuthorize("hasAuthority('" + DELETE_REPORT_TEMPLATE + "')") - public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) { + public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId, Auditor auditor) { var storageId = reportTemplatePersistenceService.find(templateId).getStorageId(); storageService.deleteObject(TenantContext.getTenantId(), storageId); reportTemplatePersistenceService.delete(templateId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(templateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Report template was deleted.") - .details(Map.of("DossierTemplateId", dossierTemplateId)) - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Report template was deleted.", + AuditDetail.TEMPLATE_ID, templateId, AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); } 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/RulesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java index 9fd83f386..10588aaa2 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java @@ -1,13 +1,19 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_RULES; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_RULES; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; - +import com.iqser.red.service.persistence.management.v1.processor.exception.FileUploadException; +import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; +import com.iqser.red.service.persistence.service.v1.api.external.resource.RulesResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RuleSyntaxErrorMessage; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.Rules; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequest; +import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; +import com.knecon.fforesight.auditor.Auditor; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.InputStreamResource; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -20,22 +26,13 @@ import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.iqser.red.service.persistence.management.v1.processor.exception.FileUploadException; -import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.external.resource.RulesResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RuleSyntaxErrorMessage; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.Rules; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequest; -import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_RULES; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_RULES; @Slf4j @RestController @@ -46,12 +43,10 @@ public class RulesController implements RulesResource { private final RulesPersistenceService rulesPersistenceService; private final RulesValidationService rulesValidationService; - private final AuditPersistenceService auditPersistenceService; - @Override @PreAuthorize("hasAuthority('" + WRITE_RULES + "')") - public ResponseEntity upload(@RequestBody RulesUploadRequest rules) { + public ResponseEntity upload(@RequestBody RulesUploadRequest rules, Auditor auditor) { DroolsSyntaxValidation droolsSyntaxValidation = rulesValidationService.validateRules(rules.getRuleFileType(), rules.getRules()); if (!droolsSyntaxValidation.isCompiled()) { @@ -63,12 +58,8 @@ public class RulesController implements RulesResource { } rulesPersistenceService.setRules(rules.getRules(), rules.getDossierTemplateId(), rules.getRuleFileType()); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(rules.getDossierTemplateId()) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Rules have been updated") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(),"Rules have been updated", + AuditDetail.DOSSIER_TEMPLATE_ID, rules.getDossierTemplateId()); return ResponseEntity.ok().build(); } @@ -94,9 +85,9 @@ public class RulesController implements RulesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_RULES + "')") - public ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestPart(name = "file") MultipartFile file) { + public ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestPart(name = "file") MultipartFile file, Auditor auditor) { - return uploadFile(dossierTemplateId, RuleFileType.ENTITY, file); + return uploadFile(dossierTemplateId, RuleFileType.ENTITY, file, auditor); } @@ -104,10 +95,11 @@ public class RulesController implements RulesResource { @PreAuthorize("hasAuthority('" + WRITE_RULES + "')") public ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @PathVariable(RULE_FILE_TYPE_PARAMETER_NAME) RuleFileType ruleFileType, - @RequestPart(name = "file") MultipartFile file) { + @RequestPart(name = "file") MultipartFile file, + Auditor auditor) { try { - return upload(new RulesUploadRequest(new String(file.getBytes(), StandardCharsets.UTF_8), dossierTemplateId, ruleFileType)); + return upload(new RulesUploadRequest(new String(file.getBytes(), StandardCharsets.UTF_8), dossierTemplateId, ruleFileType), auditor); } catch (IOException e) { throw new FileUploadException("Could not upload file.", 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/StatusController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java index 9acf78b8a..9cb6c0e25 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java @@ -1,26 +1,5 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_FILE_STATUS; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.SET_REVIEWER; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.SET_STATUS_APPROVED; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.SET_STATUS_UNDER_APPROVAL; - -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException; @@ -28,25 +7,37 @@ import com.iqser.red.service.persistence.management.v1.processor.roles.Applicati import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; import com.iqser.red.service.persistence.service.v1.api.external.resource.StatusResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributes; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; 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.FileModel; 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 com.iqser.red.service.persistence.service.v1.api.shared.model.notification.NotificationType; +import com.knecon.fforesight.auditor.Auditor; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; - import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.time.OffsetDateTime; +import java.util.*; +import java.util.stream.Collectors; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; +import static com.knecon.fforesight.auditor.model.Detail.d; @Slf4j @RestController @@ -60,7 +51,6 @@ public class StatusController implements StatusResource { private final FileStatusManagementService fileStatusManagementService; private final UserService userService; private final DossierManagementService dossierManagementService; - private final AuditPersistenceService auditPersistenceService; private final AccessControlService accessControlService; private final NotificationPersistenceService notificationPersistenceService; private final DossierACLService dossierACLService; @@ -156,7 +146,8 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_REVIEWER + "')") public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(name = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { + @RequestParam(name = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + Auditor auditor) { accessControlService.verifyUserIsMemberOrApprover(dossierId); @@ -170,21 +161,11 @@ public class StatusController implements StatusResource { fileStatusManagementService.setCurrentFileAssignee(dossierId, fileId, assigneeId); if (assigneeId == null) { - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Reviewer was unassigned from document") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, FILE_NAME, fileStatus.getFilename())) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "Reviewer was unassigned from document", + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.FILE_NAME, fileStatus.getFilename())); } else { - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Reviewer was assigned to document") - .details(Map.of(DOSSIER_ID, dossierId, "reviewer", assigneeId)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "Reviewer was assigned to document", + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.REVIEWER, assigneeId)); } if (assigneeId != null && !assigneeId.equals(KeycloakSecurity.getUserId())) { @@ -235,18 +216,14 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_REVIEWER + "')") public void setStatusUnderReview(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + Auditor auditor) { var fileStatus = fileStatusManagementService.getFileStatus(fileId); setStatusUnderReviewForFile(dossierId, fileId, assigneeId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Document status was changed to Under Review") - .details(Map.of(DOSSIER_ID, dossierId)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "Document status was changed to Under Review", + AuditDetail.DOSSIER_ID, dossierId, AuditDetail.FILE_ID, fileId); if (assigneeId != null && !assigneeId.equals(KeycloakSecurity.getUserId())) { notificationPersistenceService.insertNotification(AddNotificationRequest.builder() @@ -264,18 +241,14 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_STATUS_UNDER_APPROVAL + "')") public void setStatusUnderApproval(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(name = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { + @RequestParam(name = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + Auditor auditor) { var fileStatus = fileStatusManagementService.getFileStatus(fileId); setStatusUnderApprovalForFile(dossierId, fileId, assigneeId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Document status was changed to Under Approval") - .details(Map.of(DOSSIER_ID, dossierId)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "Document status was changed to Under Approval", + AuditDetail.DOSSIER_ID, dossierId, AuditDetail.FILE_ID, fileId); if (assigneeId != null && !assigneeId.equals(KeycloakSecurity.getUserId())) { @@ -292,17 +265,12 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_STATUS_APPROVED + "')") - public void setStatusApproved(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId) { + public void setStatusApproved(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, Auditor auditor) { accessControlService.verifyUserIsApprover(dossierId); setStatusApprovedForFile(dossierId, fileId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Document status was changed to Approved") - .details(Map.of(DOSSIER_ID, dossierId)) - .build()); + + auditor.audit(AuditCategory.DOCUMENT.name(), "Document status was changed to Approved", AuditDetail.DOSSIER_ID, dossierId); var dossier = dossierACLService.enhanceDossierWithACLData(dossierManagementService.getDossierById(dossierId, false, false)); if (!dossier.getOwnerId().equals(KeycloakSecurity.getUserId())) { @@ -323,9 +291,10 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_REVIEWER + "')") public void setAssigneeForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - @RequestBody List fileIds) { + @RequestBody List fileIds, + Auditor auditor) { - fileIds.forEach(fileId -> setCurrentFileAssignee(dossierId, fileId, assigneeId)); + fileIds.forEach(fileId -> setCurrentFileAssignee(dossierId, fileId, assigneeId, auditor)); } @@ -333,9 +302,10 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_REVIEWER + "')") public void setStatusUnderReviewForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + Auditor auditor) { - fileIds.forEach(fileId -> setStatusUnderReview(dossierId, fileId, assigneeId)); + fileIds.forEach(fileId -> setStatusUnderReview(dossierId, fileId, assigneeId, auditor)); } @@ -364,9 +334,10 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_STATUS_UNDER_APPROVAL + "')") public void setStatusUnderApprovalForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + Auditor auditor) { - fileIds.forEach(fileId -> setStatusUnderApproval(dossierId, fileId, assigneeId)); + fileIds.forEach(fileId -> setStatusUnderApproval(dossierId, fileId, assigneeId, auditor)); } @@ -387,13 +358,13 @@ public class StatusController implements StatusResource { @Override @PreAuthorize("hasAuthority('" + SET_STATUS_APPROVED + "')") - public void setStatusApprovedForList(String dossierId, List fileIds) { + public void setStatusApprovedForList(String dossierId, List fileIds, Auditor auditor) { accessControlService.verifyUserIsApprover(dossierId); dossierManagementService.getDossierById(dossierId, false, false); - fileIds.forEach(fileId -> setStatusApproved(dossierId, fileId)); + fileIds.forEach(fileId -> setStatusApproved(dossierId, fileId, auditor)); } 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/UploadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java index e61dac23d..b222aad4f 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java @@ -1,17 +1,22 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - +import com.iqser.red.service.pdftron.redaction.v1.api.model.ByteContentDocument; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; +import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService; +import com.iqser.red.service.persistence.management.v1.processor.service.UploadService; +import com.iqser.red.service.persistence.management.v1.processor.utils.FileUtils; +import com.iqser.red.service.persistence.service.v1.api.external.resource.UploadResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.FileUploadResult; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +import com.knecon.fforesight.auditor.Auditor; +import feign.FeignException; +import io.micrometer.core.annotation.Timed; +import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; +import lombok.experimental.FieldDefaults; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipFile; import org.apache.commons.io.IOUtils; @@ -21,25 +26,12 @@ import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.pdftron.redaction.v1.api.model.ByteContentDocument; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService; -import com.iqser.red.service.persistence.management.v1.processor.service.UploadService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.utils.FileUtils; -import com.iqser.red.service.persistence.service.v1.api.external.resource.UploadResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.FileUploadResult; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; +import java.io.*; +import java.util.List; +import java.util.Set; +import java.util.UUID; -import feign.FeignException; -import io.micrometer.core.annotation.Timed; -import lombok.AccessLevel; -import lombok.RequiredArgsConstructor; -import lombok.experimental.FieldDefaults; -import lombok.extern.slf4j.Slf4j; +import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; @RestController @RequiredArgsConstructor @@ -55,8 +47,6 @@ public class UploadController implements UploadResource { private final UploadService uploadService; private final ReanalysisService reanalysisService; private final AccessControlService accessControlService; - private final AuditPersistenceService auditPersistenceService; - @Timed @Override @@ -93,7 +83,8 @@ public class UploadController implements UploadResource { public void importRedactions(@RequestPart(name = "file") MultipartFile file, @PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = "pageInclusionRequest", required = false) Set pageInclusionRequest) { + @RequestParam(value = "pageInclusionRequest", required = false) Set pageInclusionRequest, + Auditor auditor) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); @@ -102,13 +93,8 @@ public class UploadController implements UploadResource { reanalysisService.importRedactions(ByteContentDocument.builder().dossierId(dossierId).fileId(fileId).document(file.getBytes()).pages(pageInclusionRequest).build()); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Redactions were imported") - .details(Map.of("dossierId", dossierId)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(),"Redactions were imported" , + AuditDetail.DOSSIER_ID, dossierId, AuditDetail.FILE_ID, fileId); } 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/WatermarkController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/WatermarkController.java index 1e5eb88ba..de89cacd1 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/WatermarkController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/WatermarkController.java @@ -1,50 +1,40 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_WATERMARK; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_WATERMARK; - -import java.util.List; - +import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; +import com.iqser.red.service.persistence.service.v1.api.external.resource.WatermarkResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; +import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; +import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; -import com.iqser.red.service.persistence.service.v1.api.external.resource.WatermarkResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; +import java.util.List; -import feign.FeignException; -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_WATERMARK; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_WATERMARK; @RestController @RequiredArgsConstructor public class WatermarkController implements WatermarkResource { private final WatermarkService watermarkService; - private final AuditPersistenceService auditPersistenceService; - @Override @PreAuthorize("hasAuthority('" + WRITE_WATERMARK + "')") - public WatermarkModel saveWatermark(@RequestBody WatermarkModel watermark) { + public WatermarkModel saveWatermark(@RequestBody WatermarkModel watermark, Auditor auditor) { String userId = KeycloakSecurity.getUserId(); watermark.setCreatedBy(userId); WatermarkModel result = MagicConverter.convert(watermarkService.createOrUpdateWatermark(watermark), WatermarkModel.class); - auditPersistenceService.audit(AuditRequest.builder() - .userId(userId) - .objectId(result.getDossierTemplateId()) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Watermark has been changed.") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Watermark has been changed.", AuditDetail.DOSSIER_ID, result.getDossierTemplateId()); return result; } @@ -67,16 +57,11 @@ public class WatermarkController implements WatermarkResource { @Override @PreAuthorize("hasAuthority('" + WRITE_WATERMARK + "')") - public void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) { + public void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId, Auditor auditor) { String dossierTemplateId = watermarkService.getWatermark(watermarkId).getDossierTemplateId(); watermarkService.deleteWatermark(watermarkId); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierTemplateId) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message("Watermark has been deleted.") - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Watermark has been deleted.", AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/pom.xml b/persistence-service-v1/persistence-service-external-api-v1/pom.xml index a2605d023..d31054bcc 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/pom.xml +++ b/persistence-service-v1/persistence-service-external-api-v1/pom.xml @@ -136,6 +136,12 @@ ${project.version} compile + + com.knecon.fforesight + auditor + 0.8.0 + compile + diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/AuditResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/AuditResource.java deleted file mode 100644 index 10c16e426..000000000 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/AuditResource.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.iqser.red.service.persistence.service.v1.api.external.resource; - -import java.util.List; - -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.ResponseStatus; - -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditResponse; -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.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.responses.ApiResponses; - -@ResponseStatus(value = HttpStatus.OK) -public interface AuditResource { - - String PATH = ExternalApi.BASE_PATH + "/audit"; - - - @Operation(summary = "Search the audit-log based on some entries the digital signature used to sign PDF's", description = "None") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "403", description = "Forbidden.")}) - @ResponseBody - @PostMapping(value = PATH + "/search", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) - AuditResponse searchAuditLog(@RequestBody AuditSearchRequest auditSearchRequest); - - - @Operation(summary = "Get a list of available categories for the audit-log", description = "None") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "403", description = "Forbidden.")}) - @ResponseBody - @GetMapping(value = PATH + "/categories", produces = MediaType.APPLICATION_JSON_VALUE) - List getAuditCategories(); - -} diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java index ffe0e2218..90458ebb6 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -69,7 +71,8 @@ public interface DictionaryResource { @RequestBody List entries, @RequestParam(name = REMOVE_CURRENT_REQUEST_PARAM, defaultValue = "false", required = false) boolean removeCurrent, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType); + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -80,7 +83,8 @@ public interface DictionaryResource { @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List entries, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType); + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -91,7 +95,8 @@ public interface DictionaryResource { @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @PathVariable(ENTRY_PARAMETER_NAME) String entry, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType); + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -100,14 +105,15 @@ public interface DictionaryResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully updated the colors, hint and caseInsensitive of entry type"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "The entry type is not found.")}) void updateType(@PathVariable(TYPE_PARAMETER_NAME) String type, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, - @RequestBody UpdateTypeValue typeValue); + @RequestBody UpdateTypeValue typeValue, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.OK) @PostMapping(value = TYPE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Creates entry type with colors, hint and caseInsensitive", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully created the entry type with colors, hint " + "and caseInsensitive"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "409", description = "The entry type already exists, could not be added again.")}) - TypeValue addType(@RequestBody CreateTypeValue typeValue); + TypeValue addType(@RequestBody CreateTypeValue typeValue, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -115,7 +121,7 @@ public interface DictionaryResource { @Operation(summary = "Deletes entry type", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully deleted the entry type with value and all its entries"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "The entry type is not found.")}) void deleteType(@PathVariable(TYPE_PARAMETER_NAME) String type, - @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); + @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -123,7 +129,7 @@ public interface DictionaryResource { @Operation(summary = "Deletes entry types", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully deleted the entry types with value and all their entries"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "The entry type is not found.")}) void deleteTypes(@RequestBody List types, - @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); + @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); @GetMapping(value = TYPE_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) @@ -156,7 +162,8 @@ public interface DictionaryResource { @PathVariable(TYPE_PARAMETER_NAME) String type, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType); + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, + @Parameter(hidden = true) Auditor auditor); /** @@ -184,7 +191,7 @@ public interface DictionaryResource { @Operation(summary = "Set system colors for redaction") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "System colors update successful."), @ApiResponse(responseCode = "400", description = "System colors request contains error.")}) @PostMapping(value = COLOR_REST_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void setColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Colors colors); + void setColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Colors colors, @Parameter(hidden = true) Auditor auditor); @ResponseBody diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DigitalSignatureResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DigitalSignatureResource.java index 576cdff36..dc4916bcb 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DigitalSignatureResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DigitalSignatureResource.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -41,21 +43,21 @@ public interface DigitalSignatureResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.NO_CONTENT) @PostMapping(value = DIGITAL_SIGNATURE_TYPE_PATH + DIGITAL_SIGNATURE_TYPE_VARIABLE) - void setActiveDigitalSignatureType(@PathVariable(DIGITAL_SIGNATURE_TYPE) DigitalSignatureType digitalSignatureType); + void setActiveDigitalSignatureType(@PathVariable(DIGITAL_SIGNATURE_TYPE) DigitalSignatureType digitalSignatureType, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Save a new digital signature used to sign PDF's", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Digital Signature Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.CREATED) @PostMapping(value = DIGITAL_SIGNATURE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DigitalSignatureViewModel saveDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel); + DigitalSignatureViewModel saveDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Update the digital signature used to sign PDF's", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Digital Signature Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.CREATED) @PutMapping(value = DIGITAL_SIGNATURE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - void updateDigitalSignature(@RequestBody DigitalSignatureViewModel digitalSignatureModel); + void updateDigitalSignature(@RequestBody DigitalSignatureViewModel digitalSignatureModel, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Get the current digital signature", description = "None") @@ -68,14 +70,14 @@ public interface DigitalSignatureResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.NO_CONTENT) @DeleteMapping(value = DIGITAL_SIGNATURE_PATH) - void deleteDigitalSignature(); + void deleteDigitalSignature(@Parameter(hidden = true) Auditor auditor); @Operation(summary = "Save a new digital KMS signature used to sign PDF's", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Digital Signature Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.CREATED) @PostMapping(value = DIGITAL_SIGNATURE_KMS_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature); + DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Get the current digital KMS signature", description = "None") @@ -88,6 +90,6 @@ public interface DigitalSignatureResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.NO_CONTENT) @DeleteMapping(value = DIGITAL_SIGNATURE_KMS_PATH) - void deleteDigitalSignatureKms(); + void deleteDigitalSignatureKms(@Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierAttributesResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierAttributesResource.java index 2abaa7846..5207114fe 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierAttributesResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierAttributesResource.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -49,7 +51,7 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PutMapping(value = DOSSIER_ATTRIBUTES_PATH + CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributesConfig setDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributesConfig dossierAttributesConfig); + DossierAttributesConfig setDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributesConfig dossierAttributesConfig, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -57,7 +59,7 @@ public interface DossierAttributesResource { @Operation(summary = "Add or update a dossier attribute in base configuration.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributeConfig addOrUpdateDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributeConfig dossierAttributes); + DossierAttributeConfig addOrUpdateDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributeConfig dossierAttributes, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -65,7 +67,7 @@ public interface DossierAttributesResource { @Operation(summary = "Delete a specific dossier attribute.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "NO_CONTENT")}) @DeleteMapping(value = DOSSIER_ATTRIBUTES_PATH + CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + DOSSIER_ATTRIBUTE_ID_PATH) - void deleteDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId); + void deleteDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -73,7 +75,7 @@ public interface DossierAttributesResource { @Operation(summary = "Bulk delete dossier attributes.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "NO_CONTENT")}) @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + CONFIG_PATH + DELETE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE) - void deleteDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(DOSSIER_ATTRIBUTE_IDS) List dossierAttributeIds); + void deleteDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(DOSSIER_ATTRIBUTE_IDS) List dossierAttributeIds, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.OK) @@ -88,7 +90,7 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + SET_PATH + DOSSIER_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributes setDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttributes dossierAttributes); + DossierAttributes setDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttributes dossierAttributes, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -97,7 +99,7 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + UPDATE_PATH + DOSSIER_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributes addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttribute dossierAttribute); + DossierAttributes addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttribute dossierAttribute, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.OK) @@ -105,7 +107,7 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @GetMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributes getDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId); + DossierAttributes getDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -114,6 +116,6 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "NO_CONTENT")}) @DeleteMapping(value = DOSSIER_ATTRIBUTES_PATH + SET_PATH + DOSSIER_ID_PATH_VARIABLE + DOSSIER_ATTRIBUTE_ID_PATH) - void deleteDossierAttribute(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId); + void deleteDossierAttribute(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId, @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierResource.java index c71fe11c8..2ecaa30e6 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierResource.java @@ -4,6 +4,8 @@ import java.time.OffsetDateTime; import java.util.List; import java.util.Set; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -67,14 +69,14 @@ public interface DossierResource { @PostMapping(value = DOSSIER_REST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Creates or updates a dossier.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "Successfully saved the dossier."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID provided or attempted to change dossier-template for a dossier with files."), @ApiResponse(responseCode = "409", description = "Duplicate")}) - ResponseEntity createDossierOrUpdateDossier(@RequestBody DossierRequest dossier); + ResponseEntity createDossierOrUpdateDossier(@RequestBody DossierRequest dossier, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @DeleteMapping(value = DOSSIER_REST_PATH + DOSSIER_ID_PATH_PARAM) @Operation(summary = "Deletes an existing dossier.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully deleted the dossier."), @ApiResponse(responseCode = "404", description = "Not found")}) - void deleteDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId); + void deleteDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.OK) @@ -134,27 +136,27 @@ public interface DossierResource { @PostMapping(value = ARCHIVE_DOSSIERS_PATH + ARCHIVE_PATH) @Operation(summary = "Archives an existing dossier.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully archived the dossier."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID entered to archive dossier."), @ApiResponse(responseCode = "403", description = "Forbidden operation while archiving."), @ApiResponse(responseCode = "404", description = "Dossier not found")}) - void archiveDossiers(@RequestBody Set dossierIds); + void archiveDossiers(@RequestBody Set dossierIds, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = ARCHIVE_DOSSIERS_PATH + UNARCHIVE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Restores archived dossiers.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully restored the dossiers."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID entered to restore dossier."), @ApiResponse(responseCode = "403", description = "Forbidden operation while restoring."), @ApiResponse(responseCode = "404", description = "Dossier not found"), @ApiResponse(responseCode = "409", description = "Conflict occurred while restoring.")}) - void unarchiveDossiers(@RequestBody Set dossierIds); + void unarchiveDossiers(@RequestBody Set dossierIds, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @DeleteMapping(value = DELETED_DOSSIERS_PATH + HARD_DELETE_PATH) @Operation(summary = "Hard deletes existing dossiers.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully hard deleted the dossier."), @ApiResponse(responseCode = "404", description = "Not found")}) - void hardDeleteDossiers(@RequestParam(DOSSIER_ID_PARAM) Set dossierIds); + void hardDeleteDossiers(@RequestParam(DOSSIER_ID_PARAM) Set dossierIds, @Parameter(hidden = true) Auditor auditor); @ResponseBody @PostMapping(value = DELETED_DOSSIERS_PATH + UNDELETE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Restores dossiers.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "Successfully restored the dossiers."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID entered to restore dossier."), @ApiResponse(responseCode = "403", description = "Forbidden operation while restoring."), @ApiResponse(responseCode = "409", description = "Conflict occurred while restoring.")}) - void undeleteDossiers(@RequestBody Set dossierIds); + void undeleteDossiers(@RequestBody Set dossierIds, @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java index a184e90bc..0f24eda0d 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -39,7 +41,7 @@ public interface DossierTemplateResource { @PostMapping(value = DOSSIER_TEMPLATE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Creates a new DossierTemplates or updates an existing one.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "202", description = "Successfully created DossierTemplates."), @ApiResponse(responseCode = "400", description = "The create/update request is not valid."), @ApiResponse(responseCode = "409", description = "The create/update request is not valid.")}) - DossierTemplateModel createOrUpdateDossierTemplate(@RequestBody DossierTemplateModel dossierTemplate); + DossierTemplateModel createOrUpdateDossierTemplate(@RequestBody DossierTemplateModel dossierTemplate, @Parameter(hidden = true) Auditor auditor); @GetMapping(value = DOSSIER_TEMPLATE_PATH, produces = MediaType.APPLICATION_JSON_VALUE) @@ -58,20 +60,20 @@ public interface DossierTemplateResource { @DeleteMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE) @Operation(summary = "Delete a specific DossierTemplate by its ID", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "The DossierTemplate was deleted"), @ApiResponse(responseCode = "404", description = "The DossierTemplate is not found.")}) - void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); + void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = DOSSIER_TEMPLATE_PATH + "/delete") @Operation(summary = "Delete multiple DossierTemplates by their IDs", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "The DossierTemplates were deleted"), @ApiResponse(responseCode = "404", description = "DossierTemplates not found.")}) - void deleteDossierTemplates(@RequestBody List dossierTemplateIds); + void deleteDossierTemplates(@RequestBody List dossierTemplateIds, @Parameter(hidden = true) Auditor auditor); @PostMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + CLONE_PATH, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Clones a dossier template.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Successfully cloned dossier templates."), @ApiResponse(responseCode = "400", description = "The clone request is not valid."), @ApiResponse(responseCode = "409", description = "The clone request is not valid.")}) - DossierTemplateModel cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest); + DossierTemplateModel cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Get Stats for a specific DossierTemplate", description = "None") @@ -89,7 +91,7 @@ public interface DossierTemplateResource { @Operation(summary = "Prepares an export download for given dossier template", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success."), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "Dossier template not found.")}) @GetMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + EXPORT_PATH, produces = MediaType.APPLICATION_JSON_VALUE) - DownloadResponse prepareExportDownload(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); + DownloadResponse prepareExportDownload(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -98,6 +100,6 @@ public interface DossierTemplateResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Archive have successfully imported"), @ApiResponse(responseCode = "400", description = "Validation failed during import"), @ApiResponse(responseCode = "404", description = "The dossier template to update does not exist")}) DossierTemplateModel importDossierTemplate(@RequestPart(name = "file") MultipartFile file, @RequestParam(value = DOSSIER_TEMPLATE_ID, required = false) String dossierTemplateId, - @RequestParam(value = "updateExistingDossierTemplate", required = false, defaultValue = "false") boolean updateExistingDossierTemplate); + @RequestParam(value = "updateExistingDossierTemplate", required = false, defaultValue = "false") boolean updateExistingDossierTemplate, @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java index ee76db26c..0d66609ea 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.concurrent.CompletableFuture; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.InputStreamResource; import org.springframework.http.HttpStatus; @@ -43,19 +45,19 @@ public interface DownloadResource { @Operation(summary = "Prepares a download for given fileIds and types", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success."), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "Dossier or file not found.")}) @PostMapping(value = REST_PATH + "/prepare", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DownloadResponse prepareDownload(@RequestBody PrepareDownloadRequest request); + DownloadResponse prepareDownload(@RequestBody PrepareDownloadRequest request, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Prepares a download for given fileIds and types and reports", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success."), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "Dossier or file not found.")}) @PostMapping(value = REST_PATH + "/prepare-option", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DownloadResponse prepareDownload(@RequestBody PrepareDownloadWithOptionRequest request); + DownloadResponse prepareDownload(@RequestBody PrepareDownloadWithOptionRequest request, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Removes a previously created download status", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success."), @ApiResponse(responseCode = "404", description = "StorageId does not exist.")}) @PostMapping(value = REST_PATH + "/delete", consumes = MediaType.APPLICATION_JSON_VALUE) - void deleteDownloadStatus(@RequestBody RemoveDownloadRequest removeDownloadRequest); + void deleteDownloadStatus(@RequestBody RemoveDownloadRequest removeDownloadRequest, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Gets to download status for the current user", description = "None") @@ -70,7 +72,7 @@ public interface DownloadResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Download with this Id is no longer available")}) @GetMapping(value = REST_PATH) CompletableFuture> downloadFile(@RequestParam(STORAGE_ID) String storageId, - @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline); + @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -88,6 +90,6 @@ public interface DownloadResource { @GetMapping(value = REST_PATH + OTT_PATH + OTT_PATH_VARIABLE) CompletableFuture> downloadFileUsingOTT(@PathVariable(OTT) String oneTimeToken, @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, - @RequestParam(value = "tenantId") String tenantId); + @RequestParam(value = "tenantId") String tenantId, @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileAttributesResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileAttributesResource.java index 266e330df..3b6f414e5 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileAttributesResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileAttributesResource.java @@ -3,6 +3,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; import java.util.Set; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -51,7 +53,7 @@ public interface FileAttributesResource { @Operation(summary = "Set file attributes base configuration and a list of file attributes, ", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PutMapping(value = FILE_ATTRIBUTES_PATH + CONFIG_PATH + BASE_CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - FileAttributesConfig setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributesConfig fileAttributesConfig); + FileAttributesConfig setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributesConfig fileAttributesConfig, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -59,7 +61,7 @@ public interface FileAttributesResource { @Operation(summary = "Add or update a file attribute that can be used at importing csv.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = FILE_ATTRIBUTES_PATH + CONFIG_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttributes); + FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttributes, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -68,7 +70,7 @@ public interface FileAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "NO_CONTENT")}) @DeleteMapping(value = FILE_ATTRIBUTES_PATH + CONFIG_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + FILE_ATTRIBUTE_ID_PATH_VARIABLE) - void deleteFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId); + void deleteFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -77,7 +79,7 @@ public interface FileAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "NO_CONTENT")}) @PostMapping(value = FILE_ATTRIBUTES_PATH + CONFIG_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + "/delete") - void deleteFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributeIds); + void deleteFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributeIds, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.OK) @@ -92,6 +94,6 @@ public interface FileAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = FILE_ATTRIBUTES_PATH + SET_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody FileAttributes fileAttributes); + void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody FileAttributes fileAttributes, @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java index e1c6535e2..26b6cdde5 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java @@ -3,6 +3,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; import java.util.Set; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -44,14 +46,14 @@ public interface FileManagementResource { @DeleteMapping(value = DELETE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) @Operation(summary = "Deletes a file for a given dossierId and FileId", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void deleteFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId); + void deleteFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = DELETE_PATH + DOSSIER_ID_PATH_VARIABLE) @Operation(summary = "Deletes a a list of files for a given dossierId", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void deleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds); + void deleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -78,7 +80,7 @@ public interface FileManagementResource { @DeleteMapping(value = HARD_DELETE_PATH + DOSSIER_ID_PATH_VARIABLE) @Operation(summary = "Hard deletes an uploaded file.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully hard deleted the file."), @ApiResponse(responseCode = "404", description = "Not found")}) - void hardDeleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(FILE_IDS) Set fileIds); + void hardDeleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(FILE_IDS) Set fileIds, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -86,13 +88,13 @@ public interface FileManagementResource { @PostMapping(value = UNDELETE_PATH + DOSSIER_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Restores an deleted file.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "File successfully restored."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID or file ID entered to restore file."), @ApiResponse(responseCode = "403", description = "Forbidden operation while restoring."), @ApiResponse(responseCode = "409", description = "Conflict occurred while restoring.")}) - void restoreFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds); + void restoreFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = ROTATION_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Rotates one or more pages for one file.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Pages successfully rotated."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID, file ID, pages or rotation entered."), @ApiResponse(responseCode = "403", description = "Forbidden operation while rotating.")}) - void rotatePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RotatePagesRequest rotatePagesRequest); + void rotatePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RotatePagesRequest rotatePagesRequest, @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LegalBasisMappingResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LegalBasisMappingResource.java index cd5227e94..3592b01dc 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LegalBasisMappingResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LegalBasisMappingResource.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -30,21 +32,21 @@ public interface LegalBasisMappingResource { @PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + DELETE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "delete some legal basis by their names.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames); + void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.NO_CONTENT) @PutMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Add or update one legalBasis.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis); + void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(HttpStatus.NO_CONTENT) @PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Set the mapping between legal basis and redaction reason.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void setLegalBasisMapping(@RequestBody List legalBasisMapping, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); + void setLegalBasisMapping(@RequestBody List legalBasisMapping, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); @ResponseBody diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LicenseReportResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LicenseReportResource.java index be3afeb49..117d843c5 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LicenseReportResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LicenseReportResource.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; @@ -24,6 +26,6 @@ public interface LicenseReportResource { @PostMapping(value = LICENSE_REPORT_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Creates and serves license report.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Successfully created and served a license report.")}) - LicenseReport getReport(@RequestBody LicenseReportRequest reportRequest); + LicenseReport getReport(@RequestBody LicenseReportRequest reportRequest, @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ManualRedactionResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ManualRedactionResource.java index df1a6fa61..1c1d9a42c 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ManualRedactionResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ManualRedactionResource.java @@ -3,6 +3,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; import java.util.Set; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -59,7 +61,8 @@ public interface ManualRedactionResource { CommentResponse addComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, - @RequestBody AddCommentRequestModel addCommentRequest); + @RequestBody AddCommentRequestModel addCommentRequest, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -69,7 +72,8 @@ public interface ManualRedactionResource { void undoComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, - @PathVariable(COMMENT_ID) String commentId); + @PathVariable(COMMENT_ID) String commentId, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.OK) @@ -78,7 +82,8 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List addRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set addRedactionRequest); + @RequestBody Set addRedactionRequest, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.OK) @@ -87,7 +92,8 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List removeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set removeRedactionRequests); + @RequestBody Set removeRedactionRequests, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.OK) @@ -96,7 +102,8 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List forceRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set forceRedactionRequests); + @RequestBody Set forceRedactionRequests, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.OK) @@ -105,7 +112,8 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List legalBasisChangeBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set legalBasisChangeRequests); + @RequestBody Set legalBasisChangeRequests, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.OK) @@ -114,7 +122,8 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List recategorizeBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set recategorizationRequests); + @RequestBody Set recategorizationRequests, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.OK) @@ -123,7 +132,8 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List resizeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set resizeRedactionRequests); + @RequestBody Set resizeRedactionRequests, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.OK) diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RSSResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RSSResource.java index 919fb7168..7ea074934 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RSSResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RSSResource.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -51,7 +53,7 @@ public interface RSSResource { @PostMapping(value = RSS_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Adds overrides for RSS components", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) - void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides); + void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -67,6 +69,6 @@ public interface RSSResource { @PostMapping(value = RSS_PATH + OVERRIDE_PATH + "/revert" + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Reverts overrides for RSS components", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) - 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, @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReanalysisResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReanalysisResource.java index e9ebd084b..3b364a8d2 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReanalysisResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReanalysisResource.java @@ -3,6 +3,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; import java.util.Set; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -43,7 +45,7 @@ public interface ReanalysisResource { @PostMapping(value = REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE) @Operation(summary = "Reanalyze all files of the dossier.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void reanalyzeDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force); + void reanalyzeDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, @Parameter(hidden = true) Auditor auditor); @PostMapping(value = REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) @@ -51,7 +53,8 @@ public interface ReanalysisResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void reanalyzeFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force); + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, + @Parameter(hidden = true) Auditor auditor); @PostMapping(value = REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH) @@ -59,13 +62,14 @@ public interface ReanalysisResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void reanalyzeFilesForDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force); + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, + @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Ocr and reanalyze a dossier", description = "None") @PostMapping(value = OCR_REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE) @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void ocrDossier(@PathVariable(DOSSIER_ID) String dossierId); + void ocrDossier(@PathVariable(DOSSIER_ID) String dossierId, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Ocr and reanalyze a file", description = "None") @@ -73,13 +77,14 @@ public interface ReanalysisResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "409", description = "Conflict")}) void ocrFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force); + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, + @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Ocr and reanalyze multiple files for a dossier", description = "None") @PostMapping(value = OCR_REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH) @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void ocrFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds); + void ocrFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Exclude or re-include a file to the automatic analysis", description = "None") @@ -87,7 +92,8 @@ public interface ReanalysisResource { @PostMapping(value = TOGGLE_AUTOMATIC_ANALYSIS_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis); + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis, + @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Exclude or re-include a file to analysis", description = "None") @@ -96,7 +102,8 @@ public interface ReanalysisResource { @PostMapping(value = TOGGLE_ANALYSIS_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) void toggleExclusion(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = FALSE) boolean excluded); + @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = FALSE) boolean excluded, + @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Exclude or re-include a file to the automatic analysis", description = "None") @@ -105,7 +112,8 @@ public interface ReanalysisResource { @PostMapping(value = TOGGLE_AUTOMATIC_ANALYSIS_PATH + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH) void toggleAutomaticAnalysisForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, - @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis); + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis, + @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Exclude or re-include a file to analysis", description = "None") @@ -114,20 +122,21 @@ public interface ReanalysisResource { @PostMapping(value = TOGGLE_ANALYSIS_PATH + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH) void toggleExclusionForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, - @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = FALSE) boolean excluded); + @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = FALSE) boolean excluded, + @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Exclude pages from analysis for a file", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) @PostMapping(value = EXCLUDE_PAGES_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) - void excludePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageExclusionRequest); + void excludePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageExclusionRequest, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Include pages from analysis for a file", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) @PostMapping(value = INCLUDE_PAGES_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) - void includePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageInclusionRequest); + void includePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageInclusionRequest, @Parameter(hidden = true) Auditor auditor); @PostMapping(value = REINDEX_REST_PATH) @@ -135,6 +144,6 @@ public interface ReanalysisResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void reindex(@RequestParam(value = "dossierId", required = false) String dossierId, @RequestParam(value = "dropIndex", required = false, defaultValue = FALSE) boolean dropIndex, - @RequestBody List fileIds); + @RequestBody List fileIds, @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReportTemplateResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReportTemplateResource.java index 4dfb64eb3..291644917 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReportTemplateResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReportTemplateResource.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -53,7 +55,8 @@ public interface ReportTemplateResource { ReportTemplate uploadTemplate(@RequestPart(name = "file") MultipartFile file, @PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(value = MULTI_FILE_REPORT, required = false, defaultValue = "false") boolean multiFileReport, - @RequestParam(value = ACTIVE_BY_DEFAULT, required = false, defaultValue = "false") boolean activeByDefault); + @RequestParam(value = ACTIVE_BY_DEFAULT, required = false, defaultValue = "false") boolean activeByDefault, + @Parameter(hidden = true) Auditor auditor); @GetMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) @@ -72,7 +75,7 @@ public interface ReportTemplateResource { @DeleteMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE) @Operation(summary = "Delete template file for redaction-report", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Report template deletion succeeded.")}) - void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId); + void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId, @Parameter(hidden = true) Auditor auditor); @GetMapping(value = PLACEHOLDERS_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RulesResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RulesResource.java index 198d6b8e0..df991449f 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RulesResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RulesResource.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -42,7 +44,7 @@ public interface RulesResource { @PostMapping(value = RULES_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Takes object containing string or rules as argument, which will be used by the redaction service.") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Rules upload successful."), @ApiResponse(responseCode = "400", description = "Uploaded rules could not be verified.")}) - ResponseEntity upload(@RequestBody RulesUploadRequest rules); + ResponseEntity upload(@RequestBody RulesUploadRequest rules, @Parameter(hidden = true) Auditor auditor); @ResponseBody @@ -70,7 +72,7 @@ public interface RulesResource { @PostMapping(value = RULES_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + UPLOAD_PATH, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @Operation(summary = "Takes object containing string or rules as argument, which will be used by the redaction service.") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Rules upload successful."), @ApiResponse(responseCode = "400", description = "Uploaded rules could not be verified.")}) - ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestPart(name = "file") MultipartFile file); + ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestPart(name = "file") MultipartFile file, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -79,7 +81,8 @@ public interface RulesResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Rules upload successful."), @ApiResponse(responseCode = "400", description = "Uploaded rules could not be verified.")}) ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @PathVariable(RULE_FILE_TYPE_PARAMETER_NAME) RuleFileType ruleFileType, - @RequestPart(name = "file") MultipartFile file); + @RequestPart(name = "file") MultipartFile file, + @Parameter(hidden = true) Auditor auditor); @ResponseBody diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/StatusResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/StatusResource.java index 8ff0e9bbe..9d051a5c5 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/StatusResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/StatusResource.java @@ -4,6 +4,8 @@ import java.time.OffsetDateTime; import java.util.List; import java.util.Map; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -84,7 +86,8 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Successfully assigned new owner to dossier."), @ApiResponse(responseCode = "404", description = "Not found")}) void setCurrentFileAssignee(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -93,7 +96,8 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void setStatusUnderReview(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -102,14 +106,16 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void setStatusUnderApproval(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = STATUS_REST_PATH + "/approved" + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) @Operation(summary = "Sets the status APPROVED for a file.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void setStatusApproved(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId); + void setStatusApproved(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -118,7 +124,8 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Successfully assigned new owner to dossier."), @ApiResponse(responseCode = "404", description = "Not found")}) void setAssigneeForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - @RequestBody List fileIds); + @RequestBody List fileIds, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -127,7 +134,8 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void setStatusUnderReviewForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -136,14 +144,15 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void setStatusUnderApprovalForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, + @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = STATUS_REST_PATH + "/approved" + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Sets the status APPROVED for a list of files.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void setStatusApprovedForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds); + void setStatusApprovedForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, @Parameter(hidden = true) Auditor auditor); @ResponseStatus(value = HttpStatus.NO_CONTENT) diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/UploadResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/UploadResource.java index 50a434b47..5098ccd62 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/UploadResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/UploadResource.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.Set; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PathVariable; @@ -46,6 +48,7 @@ public interface UploadResource { void importRedactions(@RequestPart(name = "file") MultipartFile file, @PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = "pageInclusionRequest", required = false) Set pageInclusionRequest); + @RequestParam(value = "pageInclusionRequest", required = false) Set pageInclusionRequest, + @Parameter(hidden = true) Auditor auditor); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/WatermarkResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/WatermarkResource.java index 582e97882..553708063 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/WatermarkResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/WatermarkResource.java @@ -2,6 +2,8 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; +import com.knecon.fforesight.auditor.Auditor; +import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -33,7 +35,7 @@ public interface WatermarkResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Watermark Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.OK) @PostMapping(value = WATERMARK_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - WatermarkModel saveWatermark(@RequestBody WatermarkModel watermark); + WatermarkModel saveWatermark(@RequestBody WatermarkModel watermark, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Get a specific watermark configuration", description = "None") @@ -54,7 +56,7 @@ public interface WatermarkResource { @ResponseStatus(HttpStatus.NO_CONTENT) @DeleteMapping(value = WATERMARK_PATH + WATERMARK_ID_PATH_VARIABLE) - void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId); + void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId, @Parameter(hidden = true) Auditor auditor); @Operation(summary = "Check if a specific watermark configuration is in use", description = "None") 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 deleted file mode 100644 index 0b2763e7d..000000000 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/audit/AuditEntity.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.iqser.red.service.persistence.management.v1.processor.entity.audit; - -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -import jakarta.persistence.Basic; -import jakarta.persistence.Column; -import jakarta.persistence.Convert; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -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; -import lombok.NoArgsConstructor; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Entity -@Table(name = "audit") -public class AuditEntity { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private long recordId; - - @Column - private OffsetDateTime recordDate; - - @Column - private String objectId; - @Column - private String category; - @Column - private String userId; - @Column(length = 4000) - private String message; - - @Basic(fetch = FetchType.EAGER) - @Column(columnDefinition = "text") - @Convert(converter = JSONMapConverter.class) - private Map details = new HashMap<>(); - -} diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java index ad7089ad9..76db4e659 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java @@ -1,34 +1,32 @@ package com.iqser.red.service.persistence.management.v1.processor.service; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.UPLOAD_FILE; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_FILE_ATTRIBUTES; - -import java.io.ByteArrayInputStream; -import java.nio.charset.StandardCharsets; -import java.util.Collections; -import java.util.Map; - -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.stereotype.Service; - import com.google.common.collect.Lists; import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileUploadResult; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ImportCsvRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ImportCsvResponse; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.AddFileRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; import com.iqser.red.storage.commons.service.StorageService; +import com.knecon.fforesight.auditor.service.AuditingService; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; import com.knecon.fforesight.tenantcommons.TenantContext; - import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Service; + +import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; +import java.util.Collections; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.UPLOAD_FILE; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_FILE_ATTRIBUTES; +import static com.knecon.fforesight.auditor.model.Detail.d; @Slf4j @Service @@ -38,21 +36,18 @@ public class UploadService { private final HashFunction hashFunction = Hashing.murmur3_128(); private final FileService fileService; private final DossierManagementService dossierManagementService; - private final AuditPersistenceService auditPersistenceService; private final FileAttributesManagementService fileAttributesManagementService; private final StorageService storageService; + private final AuditingService auditingService; + @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES + "')") public FileUploadResult importCsv(String dossierId, byte[] fileContent) { ImportCsvResponse response = fileAttributesManagementService.importCsv(dossierId, new ImportCsvRequest(fileContent)); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("File attributes csv processed.") - .build()); + auditingService.audit(KeycloakSecurity.getUserId(), AuditCategory.DOSSIER.name(), + "File attributes csv processed.", d(AuditDetail.DOSSIER_ID, dossierId)); return FileUploadResult.builder() .processedAttributes(Lists.newArrayList(response.getAffectedFileIds())) @@ -79,13 +74,8 @@ public class UploadService { throw e; } - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(dossierId) - .category(AuditCategory.DOSSIER.name()) - .message("File has been uploaded.") - .details(Map.of("fileId", fileId)) - .build()); + auditingService.audit(KeycloakSecurity.getUserId(), AuditCategory.DOSSIER.name(), + "File has been uploaded.", d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId)); return FileUploadResult.builder().fileIds(Collections.singletonList(fileId)).build(); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java index e9b3ee9e5..d64b614a8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java @@ -1,22 +1,5 @@ package com.iqser.red.service.persistence.management.v1.processor.service.manualredactions; -import static com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource.ANNOTATION_ID; -import static com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource.DOSSIER_ID; -import static com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource.FILE_ID; - -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.IdRemovalEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRecategorizationEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity; @@ -24,33 +7,30 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.NotFo import com.iqser.red.service.persistence.management.v1.processor.service.AnalysisFlagsCalculationService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; import com.iqser.red.service.persistence.management.v1.processor.service.RedactionLogService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService; -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; -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.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.*; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry; -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.audit.AuditRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.*; 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.ManualRedactionWrapperModel; 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.RedactionLogEntry; +import com.knecon.fforesight.auditor.service.AuditingService; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; - import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.OffsetDateTime; +import java.util.*; +import java.util.stream.Collectors; + +import static com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource.*; +import static com.knecon.fforesight.auditor.model.Detail.d; @Service @RequiredArgsConstructor @@ -58,7 +38,6 @@ import lombok.experimental.FieldDefaults; public class ManualRedactionUndoService { ManualRedactionProviderService manualRedactionProviderService; - AuditPersistenceService auditPersistenceService; FileStatusService fileStatusService; AnalysisFlagsCalculationService analysisFlagsCalculationService; RecategorizationPersistenceService recategorizationPersistenceService; @@ -71,6 +50,8 @@ public class ManualRedactionUndoService { RedactionLogService redactionLogService; ManualRedactionDictionaryUpdateHandler manualRedactionDictionaryUpdateHandler; + AuditingService auditingService; + @Transactional public void undo(String dossierId, String fileId, Set annotationIds) { @@ -115,13 +96,8 @@ public class ManualRedactionUndoService { .collect(Collectors.toList()); if (!manualResizeRedactions.isEmpty()) { deleteResizeRedaction(dossierId, fileId, manualResizeRedactions); - manualResizeRedactions.forEach(annotationId -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Undo of manual resize redaction was done.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, annotationId)) - .build())); + manualResizeRedactions.forEach(annotationId -> auditingService.audit(KeycloakSecurity.getUserId(), AuditCategory.DOCUMENT.name(), + "Undo of manual resize redaction was done.", d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), d(ANNOTATION_ID, annotationId))); } } @@ -146,13 +122,8 @@ public class ManualRedactionUndoService { if (!manualLegalBasisChanges.isEmpty()) { deleteLegalBasisChange(dossierId, fileId, manualLegalBasisChanges); - manualLegalBasisChanges.forEach(annotationId -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Undo of legal basis change was done.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, annotationId)) - .build())); + manualLegalBasisChanges.forEach(annotationId -> auditingService.audit(KeycloakSecurity.getUserId(), AuditCategory.DOCUMENT.name(), + "Undo of legal basis change was done.", d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), d(ANNOTATION_ID, annotationId))); } } @@ -177,13 +148,8 @@ public class ManualRedactionUndoService { if (!manualImageRecategorizations.isEmpty()) { deleteRecategorization(dossierId, fileId, manualImageRecategorizations); - manualImageRecategorizations.forEach(annotationId -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Undo of manual image recategorization was done.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, annotationId)) - .build())); + manualImageRecategorizations.forEach(annotationId -> auditingService.audit(KeycloakSecurity.getUserId(), AuditCategory.DOCUMENT.name(), + "Undo of manual image recategorization was done.", d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), d(ANNOTATION_ID, annotationId))); } } @@ -219,13 +185,8 @@ public class ManualRedactionUndoService { if (!manualForceRedactions.isEmpty()) { deleteForceRedaction(dossierId, fileId, manualForceRedactions); - manualForceRedactions.forEach(annotationId -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Undo of manual force redaction was done.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, annotationId)) - .build())); + manualForceRedactions.forEach(annotationId -> auditingService.audit(KeycloakSecurity.getUserId(), AuditCategory.DOCUMENT.name(), + "Undo of manual force redaction was done.", d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), d(ANNOTATION_ID, annotationId))); } } @@ -251,13 +212,8 @@ public class ManualRedactionUndoService { .collect(Collectors.toList()); if (!idRemovals.isEmpty()) { deleteRemoveRedaction(dossierId, fileId, idRemovals); - idRemovals.forEach(annotationId -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Undo of manual remove redaction was done.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, annotationId)) - .build())); + idRemovals.forEach(annotationId -> auditingService.audit(KeycloakSecurity.getUserId(), AuditCategory.DOCUMENT.name(), + "Undo of manual remove redaction was done.", d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), d(ANNOTATION_ID, annotationId))); } } @@ -289,13 +245,8 @@ public class ManualRedactionUndoService { .collect(Collectors.toList()); if (!manualRedactionEntries.isEmpty()) { deleteAddRedaction(dossierId, fileId, manualRedactionEntries); - manualRedactionEntries.forEach(annotationId -> auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("Undo of manual add redaction was done.") - .details(Map.of(DOSSIER_ID, dossierId, FILE_ID, fileId, ANNOTATION_ID, annotationId)) - .build())); + manualRedactionEntries.forEach(annotationId -> auditingService.audit(KeycloakSecurity.getUserId(), AuditCategory.DOCUMENT.name(), + "Undo of manual add redaction was done.", d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), d(ANNOTATION_ID, annotationId))); } } 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 deleted file mode 100644 index 840ff9c6e..000000000 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java +++ /dev/null @@ -1,89 +0,0 @@ -package com.iqser.red.service.persistence.management.v1.processor.service.persistence; - -import static com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository.categoryMatches; -import static com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository.dateBetween; -import static com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository.objectIdMatches; -import static com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository.userMatches; - -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.List; - -import jakarta.transaction.Transactional; - -import org.springframework.beans.BeanUtils; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.stereotype.Service; - -import com.iqser.red.service.persistence.management.v1.processor.entity.audit.AuditEntity; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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 lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; - -@Service -@RequiredArgsConstructor -public class AuditPersistenceService { - - private final AuditRepository auditRepository; - - - public void audit(AuditRequest auditRequest) { - - insertRecord(auditRequest); - } - - - @SneakyThrows - public void insertRecord(AuditRequest auditRequest) { - - var auditModel = new AuditEntity(); - BeanUtils.copyProperties(auditRequest, auditModel); - auditModel.setRecordDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - - auditRepository.save(auditModel); - - } - - - public List getCategories() { - - return auditRepository.findCategories(); - - } - - - public Page search(AuditSearchRequest auditRequest) { - - if (auditRequest.getPageSize() == 0) { - auditRequest.setPageSize(50); - } - - if (auditRequest.getFrom() == null) { - auditRequest.setFrom(OffsetDateTime.now().minusYears(30).truncatedTo(ChronoUnit.MILLIS)); - } - if (auditRequest.getTo() == null) { - auditRequest.setTo(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - } - - var spec = Specification.where(dateBetween(auditRequest.getFrom(), auditRequest.getTo())); - if (auditRequest.getCategory() != null) { - spec = spec.and(categoryMatches(auditRequest.getCategory())); - } - if (auditRequest.getUserId() != null) { - spec = spec.and(userMatches(auditRequest.getUserId())); - } - if (auditRequest.getObjectId() != null) { - spec = spec.and(objectIdMatches(auditRequest.getObjectId())); - } - - return auditRepository.findAll(spec, PageRequest.of(auditRequest.getPage(), auditRequest.getPageSize(), Sort.Direction.DESC, "recordDate")); - } - -} diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/AuditRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/AuditRepository.java deleted file mode 100644 index 96bf4e592..000000000 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/AuditRepository.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; - -import java.time.OffsetDateTime; -import java.util.List; - -import org.springframework.data.jpa.domain.Specification; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Query; - -import com.iqser.red.service.persistence.management.v1.processor.entity.audit.AuditEntity; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.CategoryModel; - -public interface AuditRepository extends JpaRepository, JpaSpecificationExecutor { - - static Specification categoryMatches(String category) { - - return (audit, cq, cb) -> cb.equal(audit.get("category"), category); - } - - - static Specification userMatches(String user) { - - return (audit, cq, cb) -> cb.equal(audit.get("userId"), user); - } - - - static Specification objectIdMatches(String objectId) { - - return (audit, cq, cb) -> cb.equal(audit.get("objectId"), objectId); - } - - - static Specification dateBetween(OffsetDateTime start, OffsetDateTime end) { - - return (audit, cq, cb) -> cb.between(audit.get("recordDate"), start, end); - } - - - @Query("SELECT new com.iqser.red.service.persistence.service.v1.api.shared.model.audit.CategoryModel(a.category, count(a)) FROM AuditEntity a GROUP BY a.category") - List findCategories(); - -} diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java index e69e3d488..aeb8a8908 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java @@ -1,50 +1,35 @@ package com.iqser.red.service.persistence.management.v1.processor.service.users; -import static com.iqser.red.service.persistence.management.v1.processor.configuration.UserMessagingConfiguration.PERSISTENCE_SERVICE_USER_CREATED_QUEUE; -import static com.iqser.red.service.persistence.management.v1.processor.configuration.UserMessagingConfiguration.PERSISTENCE_SERVICE_USER_DELETED_QUEUE; -import static com.iqser.red.service.persistence.management.v1.processor.configuration.UserMessagingConfiguration.PERSISTENCE_SERVICE_USER_OWN_PROFILE_UPDATED_QUEUE; -import static com.iqser.red.service.persistence.management.v1.processor.configuration.UserMessagingConfiguration.PERSISTENCE_SERVICE_USER_ROLES_UPDATED_QUEUE; -import static com.iqser.red.service.persistence.management.v1.processor.configuration.UserMessagingConfiguration.PERSISTENCE_SERVICE_USER_STATUS_CHANGED_QUEUE; -import static com.iqser.red.service.persistence.management.v1.processor.configuration.UserMessagingConfiguration.PERSISTENCE_SERVICE_USER_UPDATED_QUEUE; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles.RED_MANAGER_ROLE; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles.RED_USER_ROLE; - -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Service; - import com.google.common.collect.Lists; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.service.CustomPermissionService; import com.iqser.red.service.persistence.management.v1.processor.client.tenantusermanagementservice.UsersClient; import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.users.events.UserCreatedEvent; -import com.iqser.red.service.persistence.management.v1.processor.service.users.events.UserRemovedEvent; -import com.iqser.red.service.persistence.management.v1.processor.service.users.events.UserRolesUpdatedEvent; -import com.iqser.red.service.persistence.management.v1.processor.service.users.events.UserStatusToggleEvent; -import com.iqser.red.service.persistence.management.v1.processor.service.users.events.UserUpdatedEvent; -import com.iqser.red.service.persistence.management.v1.processor.service.users.events.UserUpdatedOwnProfileEvent; +import com.iqser.red.service.persistence.management.v1.processor.service.users.events.*; import com.iqser.red.service.persistence.management.v1.processor.service.users.model.User; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; 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; import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.NotificationType; +import com.knecon.fforesight.auditor.service.AuditingService; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; - import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +import static com.iqser.red.service.persistence.management.v1.processor.configuration.UserMessagingConfiguration.*; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles.RED_MANAGER_ROLE; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles.RED_USER_ROLE; +import static com.knecon.fforesight.auditor.model.Detail.d; @Slf4j @Service @@ -53,23 +38,19 @@ public class UserService { private final DossierManagementService dossierManagementService; private final FileStatusManagementService fileStatusManagementService; - private final AuditPersistenceService auditPersistenceService; private final NotificationPersistenceService notificationPersistenceService; private final DossierACLService dossierACLService; private final CustomPermissionService customPermissionService; private final UsersClient usersClient; + private final AuditingService auditingService; @RabbitListener(queues = PERSISTENCE_SERVICE_USER_CREATED_QUEUE) public void userCreated(UserCreatedEvent user) { - auditPersistenceService.audit(AuditRequest.builder() - .userId(user.getCreatingUserId()) - .objectId(user.getUser().getUserId()) - .category(AuditCategory.USER.name()) - .message("User created") - .build()); + auditingService.audit(user.getCreatingUserId(), AuditCategory.USER.name(), + "User created", d(AuditDetail.USER_ID, user.getUser().getUserId())); customPermissionService.syncAllCustomPermissions(); @@ -91,13 +72,9 @@ public class UserService { removeUserFromDossiers(userRolesUpdatedEvent.getUser().getUserId(), UserRemovalModel.REMOVE_USER); } - auditPersistenceService.audit(AuditRequest.builder() - .userId(userRolesUpdatedEvent.getModifyingUserId()) - .objectId(userRolesUpdatedEvent.getUser().getUserId()) - .category(AuditCategory.USER.name()) - .message("Roles updated for user") - .details(Map.of("CurrentRoles", newRoles)) - .build()); + auditingService.audit(userRolesUpdatedEvent.getModifyingUserId(), AuditCategory.USER.name(), + "Roles updated for user", d(AuditDetail.USER_ID, userRolesUpdatedEvent.getUser().getUserId()), + d(AuditDetail.ROLES, String.join(", ", newRoles))); } @@ -158,13 +135,10 @@ public class UserService { @RabbitListener(queues = PERSISTENCE_SERVICE_USER_OWN_PROFILE_UPDATED_QUEUE) public void myProfileUpdated(UserUpdatedOwnProfileEvent userUpdatedOwnProfileEvent) { - auditPersistenceService.audit(AuditRequest.builder() - .userId(userUpdatedOwnProfileEvent.getUser().getUserId()) - .objectId(userUpdatedOwnProfileEvent.getUser().getUserId()) - .category(AuditCategory.USER.name()) - .message("Profile updated for user") - .details(Map.of("Profile", userUpdatedOwnProfileEvent.getUser())) - .build()); + auditingService.audit(userUpdatedOwnProfileEvent.getUser().getUserId(), AuditCategory.USER.name(), + "Profile updated for user", + d(AuditDetail.USER_ID, userUpdatedOwnProfileEvent.getUser().getUserId()), + d(AuditDetail.PROFILE, userUpdatedOwnProfileEvent.getUser().toString())); } @RabbitListener(queues = PERSISTENCE_SERVICE_USER_DELETED_QUEUE) @@ -174,12 +148,8 @@ public class UserService { customPermissionService.syncAllCustomPermissions(); - auditPersistenceService.audit(AuditRequest.builder() - .userId(userRemovedEvent.getDeletingUserId()) - .objectId(userRemovedEvent.getUser().getUserId()) - .category(AuditCategory.USER.name()) - .message("User removed") - .build()); + auditingService.audit(userRemovedEvent.getDeletingUserId(), AuditCategory.USER.name(), + "User removed", d(AuditDetail.USER_ID, userRemovedEvent.getUser().getUserId())); } @@ -198,7 +168,7 @@ public class UserService { removeUserFromDossiers(userId, UserRemovalModel.PERMANENT); - auditPersistenceService.audit(AuditRequest.builder().objectId(userId).category(AuditCategory.USER.name()).message("User removed automatically").build()); + auditingService.audit(AuditCategory.USER.name(),"User removed automatically", d(AuditDetail.USER_ID, userId)); deletedUsers.add(userId); } } @@ -211,26 +181,20 @@ public class UserService { @RabbitListener(queues = PERSISTENCE_SERVICE_USER_UPDATED_QUEUE) public void userUpdated(UserUpdatedEvent userUpdatedEvent) { - auditPersistenceService.audit(AuditRequest.builder() - .userId(userUpdatedEvent.getModifyingUserId()) - .objectId(userUpdatedEvent.getUser().getUserId()) - .category(AuditCategory.USER.name()) - .message("Profile updated for user") - .details(Map.of("Profile", userUpdatedEvent.getUser())) - .build()); + auditingService.audit(userUpdatedEvent.getModifyingUserId(), AuditCategory.USER.name(), + "Profile updated for user", + d(AuditDetail.USER_ID, userUpdatedEvent.getModifyingUserId()), + d(AuditDetail.PROFILE, userUpdatedEvent.getUser().toString())); } @RabbitListener(queues = PERSISTENCE_SERVICE_USER_STATUS_CHANGED_QUEUE) public void userStatusToggled(UserStatusToggleEvent userStatusToggleEvent) { - auditPersistenceService.audit(AuditRequest.builder() - .userId(userStatusToggleEvent.getModifyingUserId()) - .objectId(userStatusToggleEvent.getUser().getUserId()) - .category(AuditCategory.USER.name()) - .message("Profile activated/deactivated for user") - .details(Map.of("Profile activated", userStatusToggleEvent.getUser().isActive())) - .build()); + auditingService.audit(userStatusToggleEvent.getModifyingUserId(), AuditCategory.USER.name(), + "Profile activated/deactivated for user", + d(AuditDetail.USER_ID, userStatusToggleEvent.getUser().getUserId()), + d(AuditDetail.PROFILE_ACTIVATED, userStatusToggleEvent.getUser().isActive())); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/model/User.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/model/User.java index 40338067e..375aed8fe 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/model/User.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/model/User.java @@ -4,15 +4,13 @@ import java.io.Serializable; import java.util.Set; import java.util.TreeSet; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.*; @Data @Builder @NoArgsConstructor @AllArgsConstructor +@ToString public class User implements Serializable { private String userId; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yml new file mode 100644 index 000000000..af7afa083 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yml @@ -0,0 +1,8 @@ +databaseChangeLog: + - changeSet: + id: rename-audit-table + author: hane + changes: + - renameTable: + newTableName: old_audit + oldTableName: audit \ No newline at end of file diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/AuditClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/AuditClient.java deleted file mode 100644 index 040693e4a..000000000 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/AuditClient.java +++ /dev/null @@ -1,10 +0,0 @@ -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.AuditResource; - -@FeignClient(name = "AuditClient", url = "http://localhost:${server.port}") -public interface AuditClient extends AuditResource { - -} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java index a0ef0809a..298965c15 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java @@ -1,14 +1,5 @@ package com.iqser.red.service.peristence.v1.server.integration.service; -import static org.assertj.core.api.Assertions.assertThat; - -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.Set; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - import com.google.common.collect.Sets; import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierRequest; @@ -16,9 +7,20 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemp 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.Dossier; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierStatusInfo; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.auditor.model.AuditMessage; +import com.knecon.fforesight.auditor.model.Detail; import com.knecon.fforesight.tenantcommons.TenantContext; - +import lombok.NonNull; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; @Slf4j @Service @@ -33,6 +35,42 @@ public class DossierTesterAndProvider { @Autowired private UserProvider userProvider; + private Auditor dummyAuditor = new Auditor() { + @Override + public AuditMessage audit(@NonNull String category, @NonNull String message, Detail... details) { + return null; + } + + @Override + public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, String value) { + return null; + } + + @Override + public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, Integer value) { + return null; + } + + @Override + public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, Boolean value) { + return null; + } + + @Override + public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, String value, String key2, Integer value2) { + return null; + } + + @Override + public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, String value, String key2, Boolean value2) { + return null; + } + + @Override + public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, String value, String key2, String value2) { + return null; + } + }; public Dossier provideTestDossier(DossierTemplateModel testTemplate) { @@ -82,7 +120,7 @@ public class DossierTesterAndProvider { cru.setMemberIds(Sets.newHashSet(userId, altUserId)); cru.setApproverIds(Sets.newHashSet(userId, altUserId)); - var result = dossierClient.createDossierOrUpdateDossier(cru); + var result = dossierClient.createDossierOrUpdateDossier(cru, dummyAuditor); return result.getBody(); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/AuditTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/AuditTest.java deleted file mode 100644 index b24ebdbce..000000000 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/AuditTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.iqser.red.service.peristence.v1.server.integration.tests; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.Map; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import com.iqser.red.service.peristence.v1.server.integration.client.AuditClient; -import com.iqser.red.service.peristence.v1.server.integration.service.UserProvider; -import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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; - -public class AuditTest extends AbstractPersistenceServerServiceTest { - - @Autowired - private AuditClient auditClient; - - @Autowired - private AuditPersistenceService auditPersistenceService; - - @Autowired - private AuditRepository auditRepository; - - @Autowired - private UserProvider userProvider; - - - @Test - public void testAudit() { - - var userId = userProvider.getUserId(); - - auditPersistenceService.audit(AuditRequest.builder().category("c1").message("test").userId(userId).objectId("1").details(Map.of("key", "value")).build()); - auditPersistenceService.audit(AuditRequest.builder().category("c1").message("test").userId(userId).objectId("1").details(Map.of("key", "value")).build()); - auditPersistenceService.audit(AuditRequest.builder().category("c2").message("test").userId(userId).objectId("1").details(Map.of("key", "value")).build()); - - assertThat(auditClient.getAuditCategories().size()).isGreaterThanOrEqualTo(2); - assertThat(auditClient.getAuditCategories().stream().filter(c -> c.getCategory().equals("c1")).findAny().map(CategoryModel::getRecordCount).get()).isEqualTo(2); - assertThat(auditClient.getAuditCategories().stream().filter(c -> c.getCategory().equals("c2")).findAny().map(CategoryModel::getRecordCount).get()).isEqualTo(1); - - var result = auditClient.searchAuditLog(AuditSearchRequest.builder().category("c1").page(0).pageSize(10).build()); - assertThat(result.getTotalHits()).isEqualTo(2); - - result = auditClient.searchAuditLog(AuditSearchRequest.builder().build()); - assertThat(result.getTotalHits()).isGreaterThanOrEqualTo(3); - assertThat(auditClient.getAuditCategories()).isNotEmpty(); - } - -} diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AuditResponse.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AuditResponse.java deleted file mode 100644 index 3a0020845..000000000 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AuditResponse.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model; - -import java.util.List; - -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.common.Page; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - -@Data -@NoArgsConstructor -@EqualsAndHashCode(callSuper = true) -public class AuditResponse extends Page { - - public AuditResponse(List elements, long totalHits, int page, int pageSize) { - - super(elements, totalHits, page, pageSize); - } - - - -} diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AuditCategory.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditCategory.java similarity index 94% rename from persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AuditCategory.java rename to persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditCategory.java index 9e08b3e55..cca1097de 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AuditCategory.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditCategory.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model; +package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; public enum AuditCategory { DOSSIER, diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetail.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetail.java new file mode 100644 index 000000000..7021653cf --- /dev/null +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetail.java @@ -0,0 +1,28 @@ +package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; + +public final class AuditDetail { + + public static final String DOSSIER_TEMPLATE_ID = "dossierTemplateId"; + public static final String DOSSIER_ATTRIBUTE_ID = "dossierAttributeId"; + public static final String DOSSIER_ID = "dossierId"; + public static final String FILE_ATTRIBUTE_NAME = "fileAttributeName"; + public static final String FILE_ATTRIBUTE_ID = "fileAttributeId"; + public static final String FILE_ID = "fileId"; + public static final String FILE_NAME = "fileName"; + public static final String TYPE = "type"; + public static final String SIZE = "size"; + public static final String PAGES = "pages"; + public static final String NUMBER = "number"; + public static final String VALUE = "value"; + public static final String OBJECT_ID = "objectId"; + public static final String USER_ID = "userId"; + public static final String ROLES = "roles"; + public static final String PROFILE = "profile"; + public static final String PROFILE_ACTIVATED = "profileActivated"; + public static final String TEMPLATE_ID = "templateId"; + public static final String ANNOTATION_ID = "annotationId"; + public static final String COMPONENT_NAME = "componentName"; + public static final String ACTION = "action"; + public static final String REVIEWER = "reviewer"; + +} diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetailAction.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetailAction.java new file mode 100644 index 000000000..5e50d9445 --- /dev/null +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetailAction.java @@ -0,0 +1,17 @@ +package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; + +public enum AuditDetailAction { + + MODIFY(1), + REVERT(2); + + private int id; + + AuditDetailAction(int id){ + this.id = id; + } + + public int getID(){ + return id; + } +} diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditModel.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditModel.java deleted file mode 100644 index 325558fc2..000000000 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditModel.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; - -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class AuditModel { - - private long recordId; - private OffsetDateTime recordDate; - private String objectId; - private String category; - private String userId; - private String message; - private Map details = new HashMap<>(); - -} diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditRequest.java deleted file mode 100644 index c17d71ab9..000000000 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditRequest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; - -import java.util.HashMap; -import java.util.Map; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@NoArgsConstructor -@AllArgsConstructor -@Builder -public class AuditRequest { - - private String objectId; - private String category; - private String userId; - - private String message; - - @Builder.Default - private Map details = new HashMap<>(); - -} diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditSearchRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditSearchRequest.java deleted file mode 100644 index 7af518084..000000000 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditSearchRequest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; - -import java.time.OffsetDateTime; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class AuditSearchRequest { - - private String category; - private String userId; - private String objectId; - private String requestingUserId; - - private OffsetDateTime from; - private OffsetDateTime to; - - private int page; - private int pageSize; - -} diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/CategoryModel.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/CategoryModel.java deleted file mode 100644 index 492ac4030..000000000 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/CategoryModel.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; - -@Data -@Builder -@AllArgsConstructor -public class CategoryModel { - - private final String category; - private final long recordCount; - -} -- 2.47.2 From 55c7c35ba0d3e9cb373bcb7f3345c7788c6ed7ba Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Wed, 8 Nov 2023 11:31:44 +0200 Subject: [PATCH 02/20] Started fixing the tests to include the auditor web-controller argument --- .../DossierTemplateTesterAndProvider.java | 10 +++-- .../integration/service/TestAuditor.java | 33 +++++++++++++++ .../integration/tests/DictionaryTest.java | 41 +++++++++++++------ .../AbstractPersistenceServerServiceTest.java | 6 +-- .../v1/api/shared/model/common/Page.java | 2 - 5 files changed, 72 insertions(+), 20 deletions(-) create mode 100644 persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TestAuditor.java diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTemplateTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTemplateTesterAndProvider.java index cfc954454..0c7f175ac 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTemplateTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTemplateTesterAndProvider.java @@ -35,6 +35,8 @@ public class DossierTemplateTesterAndProvider { @Autowired private DictionaryClient dictionaryClient; + @Autowired + private TestAuditor auditor; public Colors provideDefaultColors(String dossierTemplateId) { @@ -70,7 +72,7 @@ public class DossierTemplateTesterAndProvider { cru.setValidTo(OffsetDateTime.now().plusHours(1).truncatedTo(ChronoUnit.MILLIS)); cru.setOcrByDefault(ocrByDefault); - var result = dossierTemplateClient.createOrUpdateDossierTemplate(cru); + var result = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); assertThat(result.getName()).isEqualTo(name); @@ -78,8 +80,10 @@ public class DossierTemplateTesterAndProvider { assertThat(loadedTemplate).isEqualTo(result); - rulesClient.upload(new RulesUploadRequest("ABCD", loadedTemplate.getDossierTemplateId())); - legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("name", "description", "reason")), loadedTemplate.getDossierTemplateId()); + rulesClient.upload(new RulesUploadRequest("ABCD", loadedTemplate.getDossierTemplateId()), auditor); + legalBasisClient.setLegalBasisMapping( + List.of(new LegalBasis("name", "description", "reason")), + loadedTemplate.getDossierTemplateId(), auditor); loadedTemplate = dossierTemplateClient.getDossierTemplate(result.getDossierTemplateId()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TestAuditor.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TestAuditor.java new file mode 100644 index 000000000..0621b59b9 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TestAuditor.java @@ -0,0 +1,33 @@ +package com.iqser.red.service.peristence.v1.server.integration.service; + +import com.knecon.fforesight.auditor.BaseAuditor; +import com.knecon.fforesight.auditor.model.AuditMessage; +import com.knecon.fforesight.auditor.model.Detail; +import lombok.NonNull; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class TestAuditor extends BaseAuditor { + private List audits = new ArrayList<>(); + + @Override + public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, Detail... details) { + var mappedDetails = Arrays.stream(details) + .collect(Collectors.toMap(Detail::getKey, Detail::getValue)); + var auditMessage = AuditMessage.builder() + .category(category) + .message(message) + .details((Map) mappedDetails) + .build(); + + audits.add(auditMessage); + return auditMessage; + } + + public void deleteAll() { + audits.clear(); + } +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java index 6db1a4ee5..e41084cb3 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java @@ -62,9 +62,14 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { var entries = List.of("word1", "word2"); var falsePositives = List.of("false_positive1", "false_positive"); var falseRecommendations = List.of("false_recommendation1", "false_recommendation2"); - Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY)); - Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), falsePositives, false, null, DictionaryEntryType.FALSE_POSITIVE)); - Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), falseRecommendations, false, null, DictionaryEntryType.FALSE_RECOMMENDATION)); + Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.addEntry(type.getType(), + type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor)); + Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.addEntry(type.getType(), + type.getDossierTemplateId(), falsePositives, false, null, DictionaryEntryType.FALSE_POSITIVE, + auditor)); + Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.addEntry(type.getType(), + type.getDossierTemplateId(), falseRecommendations, false, null, DictionaryEntryType.FALSE_RECOMMENDATION, + auditor)); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(loadedType1).isNotNull(); @@ -72,12 +77,21 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType1.getFalsePositiveEntries()).isEmpty(); assertThat(loadedType1.getFalseRecommendationEntries()).isEmpty(); - Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), entries, null, DictionaryEntryType.ENTRY)); - Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), falsePositives, null, DictionaryEntryType.FALSE_POSITIVE)); - Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), falseRecommendations, null, DictionaryEntryType.FALSE_RECOMMENDATION)); - Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntry(type.getType(), type.getDossierTemplateId(), entries.get(0), null, DictionaryEntryType.ENTRY)); - Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntry(type.getType(), type.getDossierTemplateId(), falsePositives.get(0), null, DictionaryEntryType.FALSE_POSITIVE)); - Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntry(type.getType(), type.getDossierTemplateId(), falseRecommendations.get(0), null, DictionaryEntryType.FALSE_RECOMMENDATION)); + Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntries(type.getType(), + type.getDossierTemplateId(), entries, null, DictionaryEntryType.ENTRY, auditor)); + Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntries(type.getType(), + type.getDossierTemplateId(), falsePositives, null, DictionaryEntryType.FALSE_POSITIVE, auditor)); + Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntries(type.getType(), + type.getDossierTemplateId(), falseRecommendations, null, DictionaryEntryType.FALSE_RECOMMENDATION, + auditor)); + Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntry(type.getType(), + type.getDossierTemplateId(), entries.get(0), null, DictionaryEntryType.ENTRY, auditor)); + Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntry(type.getType(), + type.getDossierTemplateId(), falsePositives.get(0), null, DictionaryEntryType.FALSE_POSITIVE, + auditor)); + Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntry(type.getType(), + type.getDossierTemplateId(), falseRecommendations.get(0), null, DictionaryEntryType.FALSE_RECOMMENDATION, + auditor)); } @Test @@ -89,14 +103,17 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(type.getSkippedHexColor()).isEqualTo("#aaaaaa"); assertThat(type.isDossierDictionaryOnly()).isFalse(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2"), false, null, DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2"), false, + null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), + false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation1", "false_recommendation2"), false, null, - DictionaryEntryType.FALSE_RECOMMENDATION); + DictionaryEntryType.FALSE_RECOMMENDATION, + auditor); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java index ff31a3781..20e477ebb 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/AbstractPersistenceServerServiceTest.java @@ -8,6 +8,7 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import com.iqser.red.service.peristence.v1.server.integration.service.TestAuditor; import org.assertj.core.util.Lists; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -59,7 +60,6 @@ import com.iqser.red.service.persistence.management.v1.processor.service.Applica import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; import com.iqser.red.service.persistence.management.v1.processor.service.RedactionLogService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ApplicationConfigRepository; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DigitalSignatureRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeConfigRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierAttributeRepository; @@ -143,7 +143,7 @@ public abstract class AbstractPersistenceServerServiceTest { @Autowired protected NotificationRepository notificationRepository; @Autowired - protected AuditRepository auditRepository; + protected TestAuditor auditor; @Autowired protected TypeRepository typeRepository; @Autowired @@ -383,7 +383,7 @@ public abstract class AbstractPersistenceServerServiceTest { typeRepository.deleteAll(); viewedPagesRepository.deleteAll(); notificationRepository.deleteAll(); - auditRepository.deleteAll(); + auditor.deleteAll(); manualRedactionRepository.deleteAll(); forceRedactionRepository.deleteAll(); removeRedactionRepository.deleteAll(); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/common/Page.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/common/Page.java index 65d7325bd..777cdb86b 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/common/Page.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/common/Page.java @@ -3,8 +3,6 @@ package com.iqser.red.service.persistence.service.v1.api.shared.model.common; import java.util.ArrayList; import java.util.List; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditModel; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; -- 2.47.2 From a7c41e0cdc7f4f5ad90691ffbfbcff01fc37fc72 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Wed, 8 Nov 2023 16:15:55 +0200 Subject: [PATCH 03/20] Removed dummy-auditor in favor of TestAuditor auto-wiring --- .../service/DossierTesterAndProvider.java | 44 ++----------------- 1 file changed, 3 insertions(+), 41 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java index 298965c15..89a2f716f 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java @@ -7,11 +7,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.DownloadFileType; 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.DossierStatusInfo; -import com.knecon.fforesight.auditor.Auditor; -import com.knecon.fforesight.auditor.model.AuditMessage; -import com.knecon.fforesight.auditor.model.Detail; import com.knecon.fforesight.tenantcommons.TenantContext; -import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -35,42 +31,8 @@ public class DossierTesterAndProvider { @Autowired private UserProvider userProvider; - private Auditor dummyAuditor = new Auditor() { - @Override - public AuditMessage audit(@NonNull String category, @NonNull String message, Detail... details) { - return null; - } - - @Override - public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, String value) { - return null; - } - - @Override - public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, Integer value) { - return null; - } - - @Override - public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, Boolean value) { - return null; - } - - @Override - public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, String value, String key2, Integer value2) { - return null; - } - - @Override - public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, String value, String key2, Boolean value2) { - return null; - } - - @Override - public @NonNull AuditMessage audit(@NonNull String category, @NonNull String message, String key, String value, String key2, String value2) { - return null; - } - }; + @Autowired + private TestAuditor auditor; public Dossier provideTestDossier(DossierTemplateModel testTemplate) { @@ -120,7 +82,7 @@ public class DossierTesterAndProvider { cru.setMemberIds(Sets.newHashSet(userId, altUserId)); cru.setApproverIds(Sets.newHashSet(userId, altUserId)); - var result = dossierClient.createDossierOrUpdateDossier(cru, dummyAuditor); + var result = dossierClient.createDossierOrUpdateDossier(cru, auditor); return result.getBody(); } -- 2.47.2 From 14855751851bf74060eb28734fc43d5078fc77c0 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Wed, 8 Nov 2023 17:50:20 +0200 Subject: [PATCH 04/20] Fixed PMD & styling issues --- .../external/api/impl/controller/DictionaryController.java | 2 +- .../api/impl/controller/DossierTemplateController.java | 2 -- .../external/api/impl/controller/DownloadController.java | 6 +++--- .../v1/external/api/impl/controller/RSSController.java | 3 --- .../service/persistence/NotificationEmailService.java | 7 +++---- 5 files changed, 7 insertions(+), 13 deletions(-) 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/DictionaryController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java index b158074d9..527e51c81 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java @@ -36,7 +36,7 @@ import static com.knecon.fforesight.auditor.model.Detail.d; - @Slf4j +@Slf4j @RestController @RequiredArgsConstructor public class DictionaryController implements DictionaryResource { 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 7edaedbd1..40304cb67 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 @@ -143,8 +143,6 @@ public class DossierTemplateController implements DossierTemplateResource { @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest, Auditor auditor) { - String userId = KeycloakSecurity.getUserId(); - try { DossierTemplateModel response = convert(dossierTemplateManagementService.cloneDossierTemplate(dossierTemplateId, cloneDossierTemplateRequest)); 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/DownloadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java index 5821659fe..32db80957 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java @@ -195,7 +195,7 @@ public class DownloadController implements DownloadResource { TenantContext.setTenantId(tenantId); var downloadStatus = getDownloadStatus(storageId, userId); - var fileDownloadStream = getFileForDownload(storageId, userId, auditor); + var fileDownloadStream = getFileForDownload(storageId, auditor); return getResponseEntity(inline, fileDownloadStream, downloadStatus.getFilename(), MediaType.parseMediaType("application/zip"), downloadStatus.getFileSize()); }); @@ -211,7 +211,7 @@ public class DownloadController implements DownloadResource { } - private InputStreamResource getFileForDownload(String storageId, String userId, Auditor auditor) { + private InputStreamResource getFileForDownload(String storageId, Auditor auditor) { try { var response = storageService.getObject(TenantContext.getTenantId(), storageId); @@ -259,7 +259,7 @@ public class DownloadController implements DownloadResource { log.debug("downloadFileUsingOTT {}", oneTimeToken); var token = oneTimeTokenDownloadService.getToken(oneTimeToken); var downloadStatus = getDownloadStatus(token.getStorageId(), token.getUserId()); - var fileDownloadStream = getFileForDownload(token.getStorageId(), token.getUserId(), auditor); + var fileDownloadStream = getFileForDownload(token.getStorageId(), auditor); TenantContext.clear(); 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/RSSController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java index d2c9356ce..d64d6020c 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java @@ -64,9 +64,6 @@ public class RSSController implements RSSResource { @PreAuthorize("hasAuthority('" + GET_RSS + "')") public void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides, Auditor auditor) { - var rssReport = rssReportClient.getDetailedRSS(dossierId, fileId); - var components = rssReport.getFiles().get(0).getResult(); - componentOverrideService.addOverrides(dossierId, fileId, componentsOverrides); componentsOverrides.getComponentOverrides() diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationEmailService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationEmailService.java index c6d178f24..503265f9a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationEmailService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/NotificationEmailService.java @@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Service @RequiredArgsConstructor -@SuppressWarnings("PMD") public class NotificationEmailService { public void sendNotificationEmail(String userId, EmailNotificationType emailNotificationType, List notifications) { @@ -32,21 +31,21 @@ public class NotificationEmailService { private void sendDailyEmail(String userId, List notifications) { - log.info("Should send daily notification email for {}", userId); + log.info("Should send daily notification emails {} for {}", notifications, userId); // TODO } private void sendDailySummaryEmail(String userId, List notifications) { - log.info("Should send daily notification summary email for {}", userId); + log.info("Should send daily notification summary email {} for {}", notifications, userId); // TODO } private void sendWeeklySummaryEmail(String userId, List notifications) { - log.info("Should send weekly notification summary email for {}", userId); + log.info("Should send weekly notification summary email {} for {}", notifications, userId); // TODO } -- 2.47.2 From b2aab76a9719aa014fa760d8ccc28cbf3a4afe35 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Wed, 8 Nov 2023 17:53:27 +0200 Subject: [PATCH 05/20] Updated tests after audit changes --- .../integration/tests/DictionaryTest.java | 86 ++++++++--------- .../tests/DigitalSignatureTest.java | 10 +- .../tests/DossierAttributeTest.java | 34 +++---- .../integration/tests/DossierStatsTest.java | 4 +- .../integration/tests/DossierStatusTest.java | 4 +- .../tests/DossierTemplateImportTest.java | 2 +- .../tests/DossierTemplateStatsTest.java | 42 ++++---- .../tests/DossierTemplateTest.java | 76 +++++++-------- .../server/integration/tests/DossierTest.java | 72 +++++++------- .../tests/DownloadPreparationTest.java | 8 +- .../integration/tests/DownloadTest.java | 8 +- .../integration/tests/FileAttributeTest.java | 34 +++---- .../integration/tests/FileProcessingTest.java | 12 +-- .../v1/server/integration/tests/FileTest.java | 96 +++++++++---------- .../integration/tests/LegalBasisTest.java | 10 +- .../integration/tests/LicenseReportTest.java | 2 +- .../tests/ManualRedactionTest.java | 48 +++++----- .../integration/tests/ReanalysisTest.java | 12 +-- .../integration/tests/ReportTemplateTest.java | 4 +- .../server/integration/tests/RulesTest.java | 4 +- .../v1/server/integration/tests/TypeTest.java | 10 +- .../integration/tests/ViewedPagesTest.java | 2 +- .../integration/tests/WatermarkTest.java | 38 ++++---- .../performance/EntityPerformanceTest.java | 12 +-- 24 files changed, 315 insertions(+), 315 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java index e41084cb3..cf8f6b752 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java @@ -135,7 +135,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { var request = new UpdateTypeValue(); BeanUtils.copyProperties(type, request); type.setSkippedHexColor(null); - dictionaryClient.updateType(type.getType(), type.getDossierTemplateId(), request); + dictionaryClient.updateType(type.getType(), type.getDossierTemplateId(), request, auditor); var loadedType = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(loadedType.getSkippedHexColor()).isNotNull(); @@ -152,7 +152,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add("age"); entries.add("page"); try { - dictionaryClient.addEntry(typeId, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(typeId, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } @@ -171,34 +171,34 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add("p"); try { - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } entries.remove(1); entries.add("5"); try { - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } entries.remove(1); entries.add("12"); try { - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } entries.remove(1); entries.add(";"); try { - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } entries.remove(1); entries.add("設"); - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); } @@ -214,7 +214,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { var entries = new ArrayList(); entries.add(word); entries.add(word); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); var dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -224,7 +224,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { // Act & Assert: Add same word again; Only one should exist entries = new ArrayList<>(); entries.add(word); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dictionary.getEntries()).hasSize(1); @@ -236,7 +236,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word); entries.add(word); entries.add(word); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dictionary.getEntries()).hasSize(1); @@ -246,7 +246,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { // Act & Assert: Delete word; Should have 'deleted' flag entries = new ArrayList<>(); entries.add(word); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), entries, null, DictionaryEntryType.ENTRY); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), entries, null, DictionaryEntryType.ENTRY, auditor); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dictionary.getEntries()).hasSize(0); @@ -268,7 +268,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); var dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -278,7 +278,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { // Act & Assert: Add same word again; No duplicate should exist entries = new ArrayList<>(); entries.add(word1); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -293,7 +293,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -322,7 +322,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { .addToDictionaryAction(false) .dossierTemplateId(dossier.getDossierTemplateId()) .dossierDictionaryOnly(true) - .build()); + .build(), auditor); assertThat(returnedtype1.isDossierDictionaryOnly()).isTrue(); assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), null, false).getTypes().size()).isEqualTo(1); @@ -348,7 +348,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { .dossierTemplateId(dossierTemplate.getId()) .build(); - var createdType = dictionaryClient.addType(type); + var createdType = dictionaryClient.addType(type, auditor); var word1 = "Luke Skywalker"; var word2 = "Anakin Skywalker"; @@ -359,7 +359,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); var dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -367,10 +367,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(actualEntries.size()).isEqualTo(3); assertThat(actualEntries).usingComparator(new ListContentWithoutOrderAndWithoutDuplicatesComparator<>()).isEqualTo(entries); - dictionaryClient.deleteType(createdType.getType(), createdType.getDossierTemplateId()); + dictionaryClient.deleteType(createdType.getType(), createdType.getDossierTemplateId(), auditor); assertThat(dictionaryClient.getAllTypes(createdType.getDossierTemplateId(), null, false).getTypes().size()).isEqualTo(0); - dictionaryClient.addType(type); + dictionaryClient.addType(type, auditor); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -395,19 +395,19 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); var word4 = "Padme"; var word5 = "Obiwan"; entries.clear(); entries.add(word4); entries.add(word5); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, true, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, true, null, DictionaryEntryType.ENTRY, auditor); entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); var dictionary = dictionaryClient.getDictionaryForType(createdType.getType(), createdType.getDossierTemplateId(), null); @@ -437,14 +437,14 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(type.getSkippedHexColor()).isEqualTo("#aaaaaa"); assertThat(type.isDossierDictionaryOnly()).isFalse(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2", "word3"), false, null, DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2", "word3"), false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation1", "false_recommendation2"), false, null, - DictionaryEntryType.FALSE_RECOMMENDATION); + DictionaryEntryType.FALSE_RECOMMENDATION, auditor); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -452,15 +452,15 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType1.getFalsePositiveEntries()).hasSize(2); assertThat(loadedType1.getFalseRecommendationEntries()).hasSize(2); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word4"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("word2"), dossier.getDossierId(), DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive3"), false, dossier.getDossierId(), DictionaryEntryType.FALSE_POSITIVE); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word4"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("word2"), dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive3"), false, dossier.getDossierId(), DictionaryEntryType.FALSE_POSITIVE, auditor); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation3", "false_recommendation4"), false, dossier.getDossierId(), - DictionaryEntryType.FALSE_RECOMMENDATION); + DictionaryEntryType.FALSE_RECOMMENDATION, auditor); Assertions.assertThrows(FeignException.Unauthorized.class, () -> dictionaryClient.getMergedDictionaries(type.getType() + ";", dossierTemplate.getDossierTemplateId(), dossier.getDossierId())); Dictionary mergedDict = dictionaryClient.getMergedDictionaries(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()); @@ -477,14 +477,14 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate, "Dossier"); var type = typeProvider.testAndProvideType(dossierTemplate); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2", "word3"), false, null, DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2", "word3"), false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation1", "false_recommendation2"), false, null, - DictionaryEntryType.FALSE_RECOMMENDATION); + DictionaryEntryType.FALSE_RECOMMENDATION, auditor); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -492,15 +492,15 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType1.getFalsePositiveEntries()).hasSize(2); assertThat(loadedType1.getFalseRecommendationEntries()).hasSize(2); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word4"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("word2"), dossier.getDossierId(), DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive3"), false, dossier.getDossierId(), DictionaryEntryType.FALSE_POSITIVE); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word4"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("word2"), dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive3"), false, dossier.getDossierId(), DictionaryEntryType.FALSE_POSITIVE, auditor); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation3", "false_recommendation4"), false, dossier.getDossierId(), - DictionaryEntryType.FALSE_RECOMMENDATION); + DictionaryEntryType.FALSE_RECOMMENDATION, auditor); var loadedType2 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), dossier.getDossierId()); @@ -522,14 +522,14 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(type.getSkippedHexColor()).isEqualTo("#aaaaaa"); assertThat(type.isDossierDictionaryOnly()).isFalse(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Charalampos", "Carina Wilson", "carlsen"), false, null, DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Charalampos", "Carina Wilson", "carlsen"), false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation1", "afalse_recommendation2"), false, null, - DictionaryEntryType.FALSE_RECOMMENDATION); + DictionaryEntryType.FALSE_RECOMMENDATION, auditor); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -564,11 +564,11 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { .dossierTemplateId(dossierTemplate.getId()) .build(); - var createdType = dictionaryClient.addType(type); + var createdType = dictionaryClient.addType(type, auditor); var entries = createDummyEntries(10_000); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); var dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -576,7 +576,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(actualEntries.size()).isEqualTo(entries.size()); assertThat(actualEntries).usingComparator(new ListContentWithoutOrderAndWithoutDuplicatesComparator<>()).isEqualTo(entries); - dictionaryClient.deleteEntries(type.getType(), dossierTemplate.getDossierTemplateId(), entries, null, null); + dictionaryClient.deleteEntries(type.getType(), dossierTemplate.getDossierTemplateId(), entries, null, null, auditor); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -615,7 +615,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { .dossierTemplateId(dossierTemplateId) .hexColor("#FFFFFF") .recommendationHexColor("#FFFFFF") - .build()); + .build(), auditor); } 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 a50495569..ff8569ecd 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 @@ -43,7 +43,7 @@ public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest { digitalSignature.setContactInfo("test"); digitalSignature.setBase64EncodedPrivateKey("zzz"); - var savedDigitalSignature = digitalSignatureClient.saveDigitalSignature(digitalSignature); + var savedDigitalSignature = digitalSignatureClient.saveDigitalSignature(digitalSignature, auditor); var loadedSignature = digitalSignatureClient.getDigitalSignature(); // encrypted @@ -51,11 +51,11 @@ public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest { var dvm = new DigitalSignatureViewModel(); BeanUtils.copyProperties(loadedSignature, dvm); dvm.setReason("new test"); - digitalSignatureClient.updateDigitalSignature(dvm); + digitalSignatureClient.updateDigitalSignature(dvm, auditor); loadedSignature = digitalSignatureClient.getDigitalSignature(); assertThat(loadedSignature.getReason()).isEqualTo("new test"); - digitalSignatureClient.deleteDigitalSignature(); + digitalSignatureClient.deleteDigitalSignature(auditor); try { digitalSignatureClient.getDigitalSignature(); } catch (FeignException.FeignClientException e) { @@ -102,7 +102,7 @@ public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest { } // Act and Assert: Save - var savedDigitalSignature = digitalSignatureClient.saveDigitalSignatureKms(digitalSignature); + var savedDigitalSignature = digitalSignatureClient.saveDigitalSignatureKms(digitalSignature, auditor); assertThat(savedDigitalSignature.getKmsAccessKey()).isEqualTo(digitalSignature.getKmsAccessKey()); assertThat(savedDigitalSignature.getKmsKeyId()).isEqualTo(digitalSignature.getKmsKeyId()); @@ -120,7 +120,7 @@ public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest { assertThat(loadedDigitalSignature.getKmsServiceEndpoint()).isEqualTo(digitalSignature.getKmsServiceEndpoint()); // Act and Assert: Delete - digitalSignatureClient.deleteDigitalSignatureKms(); + digitalSignatureClient.deleteDigitalSignatureKms(auditor); try { digitalSignatureClient.getDigitalSignatureKms(); } catch (FeignException.FeignClientException e) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java index 38675345d..a4473b26d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java @@ -48,21 +48,21 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest { attribute.setEditable(true); attribute.setType(DossierAttributeType.TEXT); - dossierAttributeConfigClient.addOrUpdateDossierAttributeConfig(dossier.getDossierTemplateId(), attribute); + dossierAttributeConfigClient.addOrUpdateDossierAttributeConfig(dossier.getDossierTemplateId(), attribute, auditor); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isNotEmpty(); - dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig()); + dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(), auditor); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isEmpty(); - dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(List.of(attribute))); + dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(List.of(attribute)), auditor); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isNotEmpty(); dossierAttributeConfigClient.deleteDossierAttributesConfig(dossier.getDossierTemplateId(), - loadedAttributes.getDossierAttributeConfigs().stream().map(DossierAttributeConfig::getId).collect(Collectors.toList())); - dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(List.of(attribute))); + loadedAttributes.getDossierAttributeConfigs().stream().map(DossierAttributeConfig::getId).collect(Collectors.toList()), auditor); + dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(List.of(attribute)), auditor); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isNotEmpty(); @@ -70,44 +70,44 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest { List dossierAttributes = new ArrayList<>(); dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configId).dossierId(dossier.getId()).value("lorem ipsum").build()); - dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes)); + dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes), auditor); - var loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); + var loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty(); var firstAttribute = loadedAttributeValues.getDossierAttributeList().iterator().next(); assertThat(firstAttribute.getValue()).isEqualTo("lorem ipsum"); firstAttribute.setValue(" "); - dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute); + dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute, auditor); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty(); firstAttribute = loadedAttributeValues.getDossierAttributeList().iterator().next(); assertThat(firstAttribute.getValue()).isNull(); firstAttribute.setValue(null); - dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute); + dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute, auditor); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty(); firstAttribute = loadedAttributeValues.getDossierAttributeList().iterator().next(); assertThat(firstAttribute.getValue()).isNull(); - dossierAttributeClient.deleteDossierAttribute(dossier.getId(), firstAttribute.getDossierAttributeConfigId()); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); + dossierAttributeClient.deleteDossierAttribute(dossier.getId(), firstAttribute.getDossierAttributeConfigId(), auditor); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); assertThat(loadedAttributeValues.getDossierAttributeList()).isEmpty(); - dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes)); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); + dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes), auditor); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty(); //delete the list of dossier attribute config with child dossierAttributeConfigClient.deleteDossierAttributesConfig(dossier.getDossierTemplateId(), - Lists.newArrayList(loadedAttributes.getDossierAttributeConfigs().iterator().next().getId())); + Lists.newArrayList(loadedAttributes.getDossierAttributeConfigs().iterator().next().getId()), auditor); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isEmpty(); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); assertThat(loadedAttributeValues.getDossierAttributeList()).isEmpty(); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java index bd3af379b..763bd8184 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java @@ -158,11 +158,11 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { DossierStats dossierStats = dossierStatsClient.getDossierStats(dossier1.getId()); assertThat(dossierStats.getNumberOfFiles()).isEqualTo(2); - dossierClient.archiveDossiers(Set.of(dossier1.getId())); + dossierClient.archiveDossiers(Set.of(dossier1.getId()), auditor); dossierStats = dossierStatsClient.getDossierStats(dossier1.getId()); assertThat(dossierStats.getNumberOfFiles()).isEqualTo(2); - dossierClient.deleteDossier(dossier1.getId()); + dossierClient.deleteDossier(dossier1.getId(), auditor); var allDossiers = dossierClient.getDossiers(true, true); assertThat(allDossiers.size()).isEqualTo(2); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java index ebb424117..5cb497ccf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java @@ -83,7 +83,7 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest { BeanUtils.copyProperties(testDossier, cru); cru.setDossierTemplateId(testDossier.getDossierTemplateId()); cru.setDossierStatusId(null); - var updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); + var updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); assertThat(updated.getDossierStatusId()).isNull(); updatedStatus = dossierStatusClient.getDossierStatus(loadedDossierStatus.getId()); @@ -124,7 +124,7 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest { BeanUtils.copyProperties(testDossier, cru2); cru2.setDossierTemplateId(testDossier.getDossierTemplateId()); cru2.setDossierStatusId(loadedDossierStatus.getId()); - updated = dossierClient.createDossierOrUpdateDossier(cru2).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru2, auditor).getBody(); assertThat(updated.getDossierStatusId()).isNotNull(); //delete and replace dossierStatusClient.deleteDossierStatus(loadedDossierStatus.getId(), loadedDossierStatus2.getId()); 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 d35a78cff..5b8145c02 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 @@ -148,7 +148,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT public void dossierImportClientTest() { var multipartFile = loadMultiPartFileFromClasspath("EFSA_sanitisation_GFL_v1.zip"); - DossierTemplateModel dossierTemplateModel = dossierTemplateClient.importDossierTemplate(multipartFile, null, false); + DossierTemplateModel dossierTemplateModel = dossierTemplateClient.importDossierTemplate(multipartFile, null, false, auditor); assertThat(dossierTemplateModel).isNotNull(); assertThat(dossierTemplateModel.getId()).isNotBlank(); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateStatsTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateStatsTest.java index 108ffb89e..d896a31e3 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateStatsTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateStatsTest.java @@ -100,7 +100,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .description("Something") .addToDictionaryAction(false) .dossierTemplateId(dossier.getDossierTemplateId()) - .build()); + .build(), auditor); assertThat(addedType1).isNotNull(); @@ -115,13 +115,13 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .addToDictionaryAction(false) .dossierTemplateId(dossierTemplate2.getId()) .hasDictionary(true) - .build()); + .build(), auditor); assertThat(addedType).isNotNull(); var entries1 = new ArrayList(); entries1.add("entry1"); entries1.add("entry2"); - dictionaryClient.addEntry(addedType.getType(), addedType.getDossierTemplateId(), entries1, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(addedType.getType(), addedType.getDossierTemplateId(), entries1, false, null, DictionaryEntryType.ENTRY, auditor); var dictionary = dictionaryClient.getDictionaryForType(addedType.getType(), addedType.getDossierTemplateId(), null); assertThat(dictionary.getEntries().size()).isEqualTo(entries1.size()); @@ -135,12 +135,12 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .addToDictionaryAction(false) .dossierTemplateId(dossierTemplate2.getId()) .hasDictionary(true) - .build()); + .build(), auditor); var entries2 = new ArrayList(); entries2.add("entry1"); entries2.add("entry2"); entries2.add("entry3"); - dictionaryClient.addEntry(addedType2.getType(), addedType2.getDossierTemplateId(), entries2, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(addedType2.getType(), addedType2.getDossierTemplateId(), entries2, false, null, DictionaryEntryType.ENTRY, auditor); dictionary = dictionaryClient.getDictionaryForType(addedType2.getType(), addedType.getDossierTemplateId(), null); assertThat(dictionary.getEntries().size()).isEqualTo(entries2.size()); @@ -155,13 +155,13 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .addToDictionaryAction(false) .dossierTemplateId(dossierTemplate3.getId()) .hasDictionary(true) - .build()); + .build(), auditor); assertThat(addedType3).isNotNull(); var entries3 = new ArrayList(); entries3.add("entry1"); entries3.add("entry2"); - dictionaryClient.addEntry(addedType3.getType(), addedType3.getDossierTemplateId(), entries3, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(addedType3.getType(), addedType3.getDossierTemplateId(), entries3, false, null, DictionaryEntryType.ENTRY, auditor); dictionary = dictionaryClient.getDictionaryForType(addedType3.getType(), addedType3.getDossierTemplateId(), null); assertThat(dictionary.getEntries().size()).isEqualTo(entries3.size()); @@ -179,7 +179,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .addToDictionaryAction(false) .dossierTemplateId(dossierTemplate5.getId()) .hasDictionary(true) - .build()); + .build(), auditor); assertThat(addedType5).isNotNull(); Set dossierTemplateIds = new HashSet<>(); @@ -214,7 +214,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe var entries22 = new ArrayList(); entries22.add(entries2.get(2)); - dictionaryClient.deleteEntries(addedType2.getType(), addedType2.getDossierTemplateId(), entries22, null, DictionaryEntryType.ENTRY); + dictionaryClient.deleteEntries(addedType2.getType(), addedType2.getDossierTemplateId(), entries22, null, DictionaryEntryType.ENTRY, auditor); dossierTemplateStatsList = dossierTemplateStatsClient.getDossierTemplateStats(dossierTemplateIds); assertThat(dossierTemplateStatsList.size()).isEqualTo(dossierTemplateIds.size()); @@ -231,7 +231,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe entries23.add(entries2.get(0)); entries23.add(entries2.get(1)); - dictionaryClient.deleteEntries(addedType2.getType(), addedType2.getDossierTemplateId(), entries23, null, DictionaryEntryType.ENTRY); + dictionaryClient.deleteEntries(addedType2.getType(), addedType2.getDossierTemplateId(), entries23, null, DictionaryEntryType.ENTRY, auditor); dictionary = dictionaryClient.getDictionaryForType(addedType2.getType(), addedType.getDossierTemplateId(), null); var entries23loaded = dictionary.getEntries(); @@ -260,7 +260,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe cru.setValidFrom(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); cru.setValidTo(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - return dossierTemplateClient.createOrUpdateDossierTemplate(cru); + return dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); } @@ -288,30 +288,30 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe if (k == 1){ fileStatusPersistenceService.updateProcessingStatus(fileId, k, 0L, 0L, 0L, 0L, 0L, 1, 1); - reanalysisClient.excludePages(dossier.getId(), fileId, new PageExclusionRequest(List.of(new PageRange(k, k)))); + reanalysisClient.excludePages(dossier.getId(), fileId, new PageExclusionRequest(List.of(new PageRange(k, k))), auditor); } if (k ==2) { - fileManagementClient.deleteFile(dossier.getId(), fileId); + fileManagementClient.deleteFile(dossier.getId(), fileId, auditor); } if (k == 3){ - fileManagementClient.hardDeleteFiles(dossier.getId(), Set.of(fileId)); + fileManagementClient.hardDeleteFiles(dossier.getId(), Set.of(fileId), auditor); } if (k == 4){ - fileClient.setStatusUnderReview(dossier.getId(), fileId, userId); + fileClient.setStatusUnderReview(dossier.getId(), fileId, userId, auditor); } if (k == 5){ - fileClient.setStatusUnderApproval(dossier.getId(), fileId, userId); + fileClient.setStatusUnderApproval(dossier.getId(), fileId, userId, auditor); } } if (j == 1) { - dossierClient.archiveDossiers(Set.of(dossier.getId())); + dossierClient.archiveDossiers(Set.of(dossier.getId()), auditor); } if (j == 2) { - dossierClient.deleteDossier(dossier.getId()); + dossierClient.deleteDossier(dossier.getId(), auditor); } if (j == 3) { - dossierClient.hardDeleteDossiers(Set.of(dossier.getId())); + dossierClient.hardDeleteDossiers(Set.of(dossier.getId()), auditor); } } @@ -326,7 +326,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .rank(100) .build()); var dossier = dossierTesterAndProvider.provideTestDossierQuick(template, "test dossier: ", status); - dossierClient.deleteDossier(dossier.getId()); + dossierClient.deleteDossier(dossier.getId(), auditor); var cru = new DossierTemplateModel(); cru.setDossierTemplateId(template.getId()); @@ -334,7 +334,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe cru.setName(template.getName()); cru.setValidTo(OffsetDateTime.now().minusHours(1).truncatedTo(ChronoUnit.MILLIS)); - var result = dossierTemplateClient.createOrUpdateDossierTemplate(cru); + var result = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); long t1 = System.currentTimeMillis(); var stats = dossierTemplateStatsClient.getDossierTemplateStats(Set.of(template.getId())); 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 c0b008f31..7b45aa679 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 @@ -115,7 +115,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); // test the export of dossier template - dossierTemplateClient.prepareExportDownload(dossierTemplate.getId()); + dossierTemplateClient.prepareExportDownload(dossierTemplate.getId(), auditor); var statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isNotEmpty(); } @@ -138,7 +138,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { cru.setName("Template 1 Update"); cru.setApplyDictionaryUpdatesToAllDossiersByDefault(true); - var updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru); + var updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); assertThat(updated.getName()).isEqualTo("Template 1 Update"); assertThat(updated.isApplyDictionaryUpdatesToAllDossiersByDefault()).isTrue(); @@ -148,21 +148,21 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(loadedTemplate.getDossierTemplateStatus()).isEqualTo(DossierTemplateStatus.ACTIVE); - updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru); + updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); assertThat(updated.getName()).isEqualTo("Template 1 Update"); var testDossier = dossierTesterAndProvider.provideTestDossier(updated); try { - dossierTemplateClient.deleteDossierTemplate(updated.getId()); + dossierTemplateClient.deleteDossierTemplate(updated.getId(), auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } - dossierClient.hardDeleteDossiers(Collections.singleton(testDossier.getId())); + dossierClient.hardDeleteDossiers(Collections.singleton(testDossier.getId()), auditor); - dossierTemplateClient.deleteDossierTemplate(updated.getId()); + dossierTemplateClient.deleteDossierTemplate(updated.getId(), auditor); assertThat(dossierTemplateClient.getAllDossierTemplates().isEmpty()).isTrue(); } @@ -222,15 +222,15 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .hasDictionary(true) .build(); - var createdType1 = dictionaryClient.addType(type); - var createdType2 = dictionaryClient.addType(type2); + var createdType1 = dictionaryClient.addType(type, auditor); + var createdType2 = dictionaryClient.addType(type2, auditor); var loadedType1 = dictionaryClient.getDictionaryForType(createdType1.getType(), createdType1.getDossierTemplateId(), null); var loadedType2 = dictionaryClient.getDictionaryForType(createdType2.getType(), createdType2.getDossierTemplateId(), null); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry1", "entry2"), false, null, DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry3", "entry4"), false, null, DictionaryEntryType.FALSE_POSITIVE); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry5", "entry6"), false, null, DictionaryEntryType.FALSE_RECOMMENDATION); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry1", "entry2"), false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry3", "entry4"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry5", "entry6"), false, null, DictionaryEntryType.FALSE_RECOMMENDATION, auditor); dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), new DossierAttributesConfig(List.of(DossierAttributeConfig.builder() @@ -240,7 +240,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .label("labelDossierAttribute") .type(DossierAttributeType.TEXT) .placeholder("placeholderDossier") - .build()))); + .build())), auditor); fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(), new FileAttributesConfig(List.of(FileAttributeConfig.builder() .dossierTemplateId(dossierTemplate.getId()) @@ -253,9 +253,9 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .label("labelFileAttribute") .type(FileAttributeType.TEXT) .placeholder("placeholderFile") - .build()))); + .build())), auditor); var template = new MockMultipartFile("template", "asd".getBytes()); - reportTemplateClient.uploadTemplate(template, dossierTemplate.getId(), true, false); + reportTemplateClient.uploadTemplate(template, dossierTemplate.getId(), true, false, auditor); var col = Colors.builder() .dossierTemplateId(dossierTemplate.getId()) .appliedRedactionColor("#cccccc") @@ -272,7 +272,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .redactionColor("#999999") .updatedColor("#aaaaaa") .build(); - dictionaryClient.setColors(dossierTemplate.getId(), col); + dictionaryClient.setColors(dossierTemplate.getId(), col, auditor); var dossierStatus = DossierStatusRequest.builder() .name("dossStatus1") .description("ds description") @@ -294,14 +294,14 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); watermark.setCreatedBy("user"); - watermarkClient.saveWatermark(watermark); + watermarkClient.saveWatermark(watermark, auditor); var allTemplates = dossierTemplateClient.getAllDossierTemplates(); assertThat(allTemplates.size()).isEqualTo(1); assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate); CloneDossierTemplateRequest cdtr = CloneDossierTemplateRequest.builder().name("Clone of " + dossierTemplate.getName()).cloningUserId("user").build(); - var clonedDT = dossierTemplateClient.cloneDossierTemplate(dossierTemplate.getId(), cdtr); + var clonedDT = dossierTemplateClient.cloneDossierTemplate(dossierTemplate.getId(), cdtr, auditor); assertThat(clonedDT.getName()).isEqualTo("Clone of " + dossierTemplate.getName()); var loadedTemplate = dossierTemplateClient.getDossierTemplate(clonedDT.getId()); @@ -357,7 +357,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); setupDossierTemplate(dossierTemplate); - dossierTemplateClient.prepareExportDownload(dossierTemplate.getId()); + dossierTemplateClient.prepareExportDownload(dossierTemplate.getId(), auditor); var statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isNotEmpty(); @@ -397,15 +397,15 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .hasDictionary(true) .build(); - var createdType1 = dictionaryClient.addType(type); - var createdType2 = dictionaryClient.addType(type2); + var createdType1 = dictionaryClient.addType(type, auditor); + var createdType2 = dictionaryClient.addType(type2, auditor); var loadedType1 = dictionaryClient.getDictionaryForType(createdType1.getType(), createdType1.getDossierTemplateId(), null); var loadedType2 = dictionaryClient.getDictionaryForType(createdType2.getType(), createdType2.getDossierTemplateId(), null); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry1", "entry2"), false, null, DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry3", "entry4"), false, null, DictionaryEntryType.FALSE_POSITIVE); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry5", "entry6"), false, null, DictionaryEntryType.FALSE_RECOMMENDATION); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry1", "entry2"), false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry3", "entry4"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry5", "entry6"), false, null, DictionaryEntryType.FALSE_RECOMMENDATION, auditor); dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), new DossierAttributesConfig(List.of(DossierAttributeConfig.builder() @@ -415,7 +415,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .label("labelDossierAttribute") .type(DossierAttributeType.TEXT) .placeholder("placeholderDossier") - .build()))); + .build())), auditor); fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(), new FileAttributesConfig(List.of(FileAttributeConfig.builder() .dossierTemplateId(dossierTemplate.getId()) @@ -428,10 +428,10 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .label("labelFileAttribute") .type(FileAttributeType.TEXT) .placeholder("placeholderFile") - .build()))); + .build())), auditor); var template = new MockMultipartFile("template", "asd".getBytes()); - reportTemplateClient.uploadTemplate(template, dossierTemplate.getId(), true, false); + reportTemplateClient.uploadTemplate(template, dossierTemplate.getId(), true, false, auditor); var col = Colors.builder() .dossierTemplateId(dossierTemplate.getId()) .appliedRedactionColor("#cccccc") @@ -448,7 +448,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .redactionColor("#999999") .updatedColor("#aaaaaa") .build(); - dictionaryClient.setColors(dossierTemplate.getId(), col); + dictionaryClient.setColors(dossierTemplate.getId(), col, auditor); var dossierStatus = DossierStatusRequest.builder() .name("dossStatus1") .description("ds description") @@ -470,7 +470,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); watermark.setCreatedBy("user"); - watermarkClient.saveWatermark(watermark); + watermarkClient.saveWatermark(watermark, auditor); } @@ -480,7 +480,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); - dossierTemplateClient.prepareExportDownload(dossierTemplate.getId()); + dossierTemplateClient.prepareExportDownload(dossierTemplate.getId(), auditor); var statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isNotEmpty(); @@ -500,11 +500,11 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(existingLegalBasis.size()).isEqualTo(1); // delete justifications for export - legalBasisClient.deleteLegalBasis(dossierTemplate.getId(), existingLegalBasis.stream().map(LegalBasis::getName).collect(Collectors.toList())); + legalBasisClient.deleteLegalBasis(dossierTemplate.getId(), existingLegalBasis.stream().map(LegalBasis::getName).collect(Collectors.toList()), auditor); existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(existingLegalBasis.isEmpty()).isTrue(); - dossierTemplateClient.prepareExportDownload(dossierTemplate.getId()); + dossierTemplateClient.prepareExportDownload(dossierTemplate.getId(), auditor); var statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isNotEmpty(); @@ -512,7 +512,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { exportDownloadReportMessageReceiver.receive(new DownloadJob(status.getUserId(), status.getStorageId())); // add new justifications - legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("nameAgain", "description", "reason")), dossierTemplate.getId()); + legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("nameAgain", "description", "reason")), dossierTemplate.getId(), auditor); existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(existingLegalBasis.size()).isEqualTo(1); @@ -524,14 +524,14 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { cru.setDescription("new description"); cru.setKeepImageMetadata(true); - var updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru); + var updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); assertThat(updated.getName()).isNotEqualTo(dossierTemplate.getName()); var storedObject = fileManagementStorageService.getObject(TenantContext.getTenantId(), status.getStorageId()); var importTemplate = new MockMultipartFile("import.zip", "import.zip", "application/zip", storedObject); - var dossierImported = dossierTemplateClient.importDossierTemplate(importTemplate, dossierTemplate.getId(), true); + var dossierImported = dossierTemplateClient.importDossierTemplate(importTemplate, dossierTemplate.getId(), true, auditor); // assertThat(dossierImported).isNotNull(); existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); @@ -738,7 +738,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { dossierTemplateModel.setValidTo(OffsetDateTime.now().plusHours(1).truncatedTo(ChronoUnit.MILLIS)); dossierTemplateModel.setOcrByDefault(true); - DossierTemplateModel result = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); + DossierTemplateModel result = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel, auditor); assertThat(result.getName()).isEqualTo(name); assertThat(result.isOcrByDefault()).isTrue(); @@ -747,7 +747,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { dossierTemplateModel.setName("Test Dossier Template Update"); dossierTemplateModel.setOcrByDefault(false); - loadedTemplate = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); + loadedTemplate = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel, auditor); assertThat(loadedTemplate.isOcrByDefault()).isFalse(); } @@ -764,7 +764,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { dossierTemplateModel.setValidTo(OffsetDateTime.now().plusHours(1).truncatedTo(ChronoUnit.MILLIS)); dossierTemplateModel.setRemoveWatermark(true); - DossierTemplateModel result = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); + DossierTemplateModel result = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel, auditor); assertThat(result.getName()).isEqualTo(name); assertThat(result.isRemoveWatermark()).isTrue(); @@ -773,7 +773,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { dossierTemplateModel.setName("Test Dossier Template Update"); dossierTemplateModel.setRemoveWatermark(false); - loadedTemplate = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); + loadedTemplate = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel, auditor); assertThat(loadedTemplate.isRemoveWatermark()).isFalse(); } 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 c34ae8152..79120b8ec 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 @@ -115,11 +115,11 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossier.getDossierTemplateId()); - var watermarkConfig = watermarkClient.saveWatermark(watermark); + var watermarkConfig = watermarkClient.saveWatermark(watermark, auditor); watermark.setEnabled(false); watermark.setName("watermark disabled"); - var watermarkConfigDisabled = watermarkClient.saveWatermark(watermark); + var watermarkConfigDisabled = watermarkClient.saveWatermark(watermark, auditor); var allDossiers = dossierClient.getDossiers(false, false); assertThat(allDossiers.size()).isEqualTo(1); @@ -148,7 +148,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setDossierStatusId(loadedDossierStatus.getId()); try { - dossierClient.createDossierOrUpdateDossier(cru); + dossierClient.createDossierOrUpdateDossier(cru, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } @@ -156,7 +156,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); // update the watermark preview to an enabled one cru.setDossierId(dossier.getId()); - var updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); + var updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); assertThat(updated.getDossierName()).isEqualTo("Dossier 1 Update"); assertThat(updated.getWatermarkId()).isNull(); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); @@ -166,12 +166,12 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { // disable the watermark used watermarkConfig.setEnabled(false); - var watermarkDisabled = watermarkClient.saveWatermark(watermarkConfig); + var watermarkDisabled = watermarkClient.saveWatermark(watermarkConfig, auditor); assertThat(watermarkDisabled.isEnabled()).isFalse(); assertThat(watermarkDisabled.getId()).isEqualTo(watermarkConfig.getId()); // update dossier description, while the watermark used was disabled cru.setDescription("new description"); - updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); assertThat(updated.getDescription()).isEqualTo(cru.getDescription()); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getWatermarkId()).isNull(); @@ -179,7 +179,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfigDisabled.getId()); //try to update the dossier with a different disabled watermark try { - dossierClient.createDossierOrUpdateDossier(cru); + dossierClient.createDossierOrUpdateDossier(cru, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } @@ -187,32 +187,32 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { // put dossier status to null cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setDossierStatusId(null); - updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); assertThat(updated.getDossierStatusId()).isNull(); var loadedTemplate = dossierClient.getDossier(updated.getId(), false, false); assertThat(loadedTemplate).isEqualTo(updated); - dossierClient.getDossiers(false, false).forEach(ld -> dossierClient.deleteDossier(ld.getId())); + dossierClient.getDossiers(false, false).forEach(ld -> dossierClient.deleteDossier(ld.getId(), auditor)); assertThat(dossierClient.getDossiers(false, false)).isEmpty(); assertThat(dossierClient.getSoftDeletedDossiers().size()).isEqualTo(1); assertThat(dossierClient.getDossiers(false, true)).hasSize(1); - dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId())); + dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()), auditor); assertThat(dossierClient.getDossiers(false, false)).isNotEmpty(); assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty(); - dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId())); + dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId()), auditor); assertThat(dossierClient.getDossiers(false, false)).isEmpty(); assertThat(dossierClient.getDossiers(true, false)).isEmpty(); assertThat(dossierClient.getDossiers(false, true)).hasSize(0); assertThat(dossierClient.getDossiers(true, true)).hasSize(0); assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty(); - assertThatThrownBy(() -> dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()))).isInstanceOf(FeignException.class); + assertThatThrownBy(() -> dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()), auditor)).isInstanceOf(FeignException.class); var dossierInformation = dossierClient.getDossierInformation(); assertThat(dossierInformation.getNumberOfActiveDossiers()).isEqualTo(0); @@ -242,7 +242,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(0); // Act & Assert 2 - dossierClient.archiveDossiers(Set.of(dossier1.getId())); + dossierClient.archiveDossiers(Set.of(dossier1.getId()), auditor); assertThat(dossierClient.getDossiers(false, false)).hasSize(1); assertThat(dossierClient.getDossiers(true, false)).hasSize(2); assertThat(dossierClient.getDossiers(false, true)).hasSize(1); @@ -270,7 +270,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(dossierInformation.getNumberOfArchivedDossiers()).isEqualTo(0); // Act & Assert 4 - dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId())); + dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId()), auditor); assertThat(dossierClient.getDossiers(false, false)).hasSize(0); assertThat(dossierClient.getDossiers(true, false)).hasSize(2); assertThat(dossierClient.getArchivedDossiers()).hasSize(2); @@ -283,8 +283,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { // assertThat(dossierInformation.getNumberOfArchivedDossiers()).isEqualTo(2); // Act & Assert 5 - dossierClient.deleteDossier(dossier1.getId()); - dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId())); + dossierClient.deleteDossier(dossier1.getId(), auditor); + dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId()), auditor); assertThat(dossierClient.getDossiers(false, false)).hasSize(0); assertThat(dossierClient.getDossiers(true, false)).hasSize(1); assertThat(dossierClient.getDossiers(false, true)).hasSize(1); @@ -313,8 +313,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(dossierInformation.getNumberOfArchivedDossiers()).isEqualTo(0); // Act & Assert 7 - dossierClient.hardDeleteDossiers(Set.of(dossier1.getId())); - dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId())); + dossierClient.hardDeleteDossiers(Set.of(dossier1.getId()), auditor); + dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId()), auditor); assertThat(dossierClient.getDossiers(false, false)).hasSize(0); assertThat(dossierClient.getDossiers(true, false)).hasSize(1); assertThat(dossierClient.getDossiers(false, true)).hasSize(0); @@ -342,7 +342,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossier.getDossierTemplateId()); - var watermarkConfig = watermarkClient.saveWatermark(watermark); + var watermarkConfig = watermarkClient.saveWatermark(watermark, auditor); String dossierName = "Dossier 1 Update"; @@ -360,7 +360,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setReportTemplateIds(Set.of(availableTemplates.get(0).getTemplateId(), "id-does-not-exist-1", "id-does-not-exist-2")); - var updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); + var updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); assertThat(updated.getDossierName()).isEqualTo(dossierName); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getReportTemplateIds().size()).isEqualTo(1); @@ -384,7 +384,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setReportTemplateIds(Set.of(availableTemplates.get(0).getTemplateId(), availableTemplates.get(1).getTemplateId())); - updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); assertThat(updated.getDossierName()).isEqualTo(dossierName); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getReportTemplateIds().size()).isEqualTo(2); @@ -404,7 +404,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setReportTemplateIds(Set.of(availableTemplates.get(1).getTemplateId(), availableTemplates.get(2).getTemplateId())); - updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); assertThat(updated.getDossierName()).isEqualTo(dossierName); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getReportTemplateIds().size()).isEqualTo(2); @@ -424,7 +424,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setReportTemplateIds(Set.of(availableTemplates.get(0).getTemplateId())); - updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); assertThat(updated.getDossierName()).isEqualTo(dossierName); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getReportTemplateIds().size()).isEqualTo(1); @@ -437,8 +437,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(loadedTemplate.getReportTemplateIds()).contains(availableTemplates.get(0).getTemplateId()); // Remove dossier - dossierClient.getDossiers(false, false).forEach(ld -> dossierClient.deleteDossier(ld.getId())); - dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId())); + dossierClient.getDossiers(false, false).forEach(ld -> dossierClient.deleteDossier(ld.getId(), auditor)); + dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId()), auditor); assertThat(dossierClient.getDossiers(false, false)).isEmpty(); assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty(); } @@ -450,9 +450,9 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { var template2 = new MockMultipartFile("reportTemplate2.docx","reportTemplate2.docx","application/word" ,new byte[]{1, 2, 3, 4}); var template3 = new MockMultipartFile("reportTemplate2.docx","reportTemplate3.docx","application/word" ,new byte[]{1, 2, 3, 4}); - reportTemplateClient.uploadTemplate(template1, dossier.getDossierTemplateId(), true, false); - reportTemplateClient.uploadTemplate(template2, dossier.getDossierTemplateId(), true, false); - reportTemplateClient.uploadTemplate(template3, dossier.getDossierTemplateId(), true, false); + reportTemplateClient.uploadTemplate(template1, dossier.getDossierTemplateId(), true, false, auditor); + reportTemplateClient.uploadTemplate(template2, dossier.getDossierTemplateId(), true, false, auditor); + reportTemplateClient.uploadTemplate(template3, dossier.getDossierTemplateId(), true, false, auditor); var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossier.getDossierTemplateId()); assertThat(availableTemplates.size()).isEqualTo(3); @@ -471,16 +471,16 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { var nonDeletedDossiers = dossierClient.getDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(1); - dossierClient.archiveDossiers(Set.of(dossier1.getId())); + dossierClient.archiveDossiers(Set.of(dossier1.getId()), auditor); nonDeletedDossiers = dossierClient.getDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(1); - dossierClient.deleteDossier(dossier1.getId()); + dossierClient.deleteDossier(dossier1.getId(), auditor); nonDeletedDossiers = dossierClient.getDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(0); assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(1); - dossierClient.hardDeleteDossiers(Set.of(dossier1.getId())); + dossierClient.hardDeleteDossiers(Set.of(dossier1.getId()), auditor); nonDeletedDossiers = dossierClient.getDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(0); assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(0); @@ -500,11 +500,11 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { var archivedAndDeletedDossier = dossierTesterAndProvider.provideTestDossier(template, "archivedAndDeletedDossier"); var hardDeletedDossier = dossierTesterAndProvider.provideTestDossier(template, "hardDeletedDossier"); - dossierClient.archiveDossiers(Set.of(onlyArchivedDossier.getId(), archivedAndDeletedDossier.getId())); - dossierClient.deleteDossier(onlyDeletedDossier.getId()); - dossierClient.deleteDossier(archivedAndDeletedDossier.getId()); - dossierClient.deleteDossier(hardDeletedDossier.getId()); - dossierClient.hardDeleteDossiers(Set.of(hardDeletedDossier.getId())); + dossierClient.archiveDossiers(Set.of(onlyArchivedDossier.getId(), archivedAndDeletedDossier.getId()), auditor); + dossierClient.deleteDossier(onlyDeletedDossier.getId(), auditor); + dossierClient.deleteDossier(archivedAndDeletedDossier.getId(), auditor); + dossierClient.deleteDossier(hardDeletedDossier.getId(), auditor); + dossierClient.hardDeleteDossiers(Set.of(hardDeletedDossier.getId()), auditor); // check get all dossiers with inclusions assertThat(dossierClient.getDossiers(true, true)).hasSize(4); //all without harddeleted 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 0aaa11872..982b8dda1 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 @@ -111,7 +111,7 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes .downloadFileTypes(Set.of(DownloadFileType.ORIGINAL)) .fileIds(Collections.singletonList(testData.file.getId())) .redactionPreviewColor("#aaaaaa") - .build()); + .build(), auditor); List downloadStatuses = downloadClient.getDownloadStatus().getDownloadStatus(); assertThat(downloadStatuses).hasSize(1); @@ -161,14 +161,14 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes .dueDate(testData.dossier.getDueDate()) .dossierTemplateId(testData.dossier.getDossierTemplateId()) .reportTemplateIds(availableTemplates.stream().map(ReportTemplate::getTemplateId).collect(Collectors.toSet())) - .build()); + .build(), auditor); } private void uploadMockReportTemplate(DossierWithSingleFile testData) { var template = new MockMultipartFile("test.docx", "zzz".getBytes()); - reportTemplateClient.uploadTemplate(template, testData.getDossierTemplateId(), true, true); + reportTemplateClient.uploadTemplate(template, testData.getDossierTemplateId(), true, true, auditor); } @@ -222,7 +222,7 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes fileTesterAndProvider.markFileAsProcessed(getFileId()); - fileClient.setStatusApproved(getDossierId(), getFileId()); + fileClient.setStatusApproved(getDossierId(), getFileId(), auditor); assertThatTestFileIsApproved(); } 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 3a90676ac..d8ea29148 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 @@ -69,12 +69,12 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { fileTesterAndProvider.markFileAsProcessed(file2.getFileId()); - fileClient.setStatusApproved(dossier.getId(), file2.getId()); + fileClient.setStatusApproved(dossier.getId(), file2.getId(), auditor); var file22 = fileClient.getFileStatus(dossier.getId(), file2.getId()); assertThat(file22.getWorkflowStatus()).isEqualTo(WorkflowStatus.APPROVED); try { - downloadClient.prepareDownload(PrepareDownloadRequest.builder().dossierId(dossier.getId()).fileIds(List.of(file.getId(), file2.getId())).build()); + downloadClient.prepareDownload(PrepareDownloadRequest.builder().dossierId(dossier.getId()).fileIds(List.of(file.getId(), file2.getId())).build(), auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } @@ -83,7 +83,7 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { .downloadFileTypes(Set.of(DownloadFileType.ORIGINAL)) .dossierId(dossier.getId()) .fileIds(List.of(file2.getId())) - .build()); + .build(), auditor); downloadMessageReceiver.receive(new DownloadJob(userProvider.getUserId(), downloads.getStorageId())); var reportInfoId = downloads.getStorageId().substring(0, downloads.getStorageId().length() - 3) + "/REPORT_INFO.json"; @@ -98,7 +98,7 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { assertThat(statuses.getDownloadStatus()).isNotEmpty(); assertThat(statuses.getDownloadStatus().iterator().next().getLastDownload()).isNull(); - downloadClient.deleteDownloadStatus(new RemoveDownloadRequest(List.of(statuses.getDownloadStatus().iterator().next().getStorageId()))); + downloadClient.deleteDownloadStatus(new RemoveDownloadRequest(List.of(statuses.getDownloadStatus().iterator().next().getStorageId())), auditor); statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isEmpty(); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java index 88627f823..6f0b53517 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java @@ -67,13 +67,13 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { generalConfig.setEncoding("UTF-8"); generalConfig.setFilenameMappingColumnHeaderName("Name"); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig, auditor); var loadedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()); assertThat(loadedConfig.getDelimiter()).isEqualTo(","); assertThat(loadedConfig.getEncoding()).isEqualTo(UTF_ENCODING); generalConfig.setEncoding(" ASCII "); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig, auditor); loadedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()); assertThat(loadedConfig.getEncoding()).isEqualTo(ASCII_ENCODING); @@ -85,7 +85,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute C").primaryAttribute(false).label("Attribute C").build()); configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute D").primaryAttribute(false).label("Attribute D").build()); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name", ",", UTF_ENCODING, configs)); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name", ",", UTF_ENCODING, configs), auditor); List loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(5); @@ -97,7 +97,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { .filter(a -> a.getCsvColumnHeader().equalsIgnoreCase("Attribute C")) .findAny() .map(FileAttributeConfig::getId) - .orElseThrow(() -> new IllegalArgumentException("Should exists!"))); + .orElseThrow(() -> new IllegalArgumentException("Should exists!")), auditor); fileAttributeConfigClient.deleteFileAttributes(dossier.getDossierTemplateId(), loadedConfigs.stream() @@ -105,7 +105,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { .findAny() .map(FileAttributeConfig::getId) .stream() - .collect(Collectors.toList())); + .collect(Collectors.toList()), auditor); loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(3); @@ -113,20 +113,20 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { FileAttributeConfig newConfig = new FileAttributeConfig(); newConfig.setPrimaryAttribute(true); newConfig.setLabel("Test Attribute"); - var created = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig); + var created = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig, auditor); loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(4); newConfig.setId(created.getId()); newConfig.setLabel("Test Attribute Update"); - var updated = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig); + var updated = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig, auditor); loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(4); assertThat(updated.getLabel()).isEqualTo("Test Attribute Update"); assertThat(fileClient.getFileStatus(dossier.getId(), file.getId()).getLastFileAttributeChange()).isNull(); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(updated.getId(), "Lorem Ipsum"))); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(updated.getId(), "Lorem Ipsum")), auditor); assertThat(fileClient.getFileStatus(dossier.getId(), file.getId()).getLastFileAttributeChange()).isNotNull(); @@ -134,7 +134,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { assertThat(fileAttributes.size()).isEqualTo(1); assertThat(fileAttributes.entrySet().iterator().next().getValue()).isEqualTo("Lorem Ipsum"); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(updated.getId(), " "))); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(updated.getId(), " ")), auditor); fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue(); assertThat(fileAttributes.size()).isEqualTo(1); @@ -142,7 +142,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { Map fileAttributesWithNullValue = new HashMap<>(); fileAttributesWithNullValue.put(updated.getId(), null); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(fileAttributesWithNullValue)); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(fileAttributesWithNullValue), auditor); fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue(); assertThat(fileAttributes.size()).isEqualTo(1); @@ -155,12 +155,12 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { assertThat(fileAttributes.size()).isEqualTo(2); fileAttributes.put(fileAttributes.keySet().iterator().next(), "changed"); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(fileAttributes)); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(fileAttributes), auditor); fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue(); assertThat(fileAttributes.size()).isEqualTo(2); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name",",","ASCII",new ArrayList<>())); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name",",","ASCII",new ArrayList<>()), auditor); loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(0); @@ -182,7 +182,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { generalConfig.setEncoding("UTF-8"); generalConfig.setFilenameMappingColumnHeaderName("Name"); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig, auditor); var loadedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()); assertThat(loadedConfig.getDelimiter()).isEqualTo(","); @@ -195,20 +195,20 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { generalConfig.setFileAttributeConfigs(configs); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig, auditor); List loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(5); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "Lorem Ipsum"))); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "Lorem Ipsum")), auditor); Map fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue(); assertThat(fileAttributes.size()).isEqualTo(1); assertThat(fileAttributes.entrySet().iterator().next().getValue()).isEqualTo("Lorem Ipsum"); // Delete file - fileManagementClient.deleteFile(dossier.getId(), file.getId()); - fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId())); + fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); + fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); var deletedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(deletedFile.getFileAttributes().getAttributeIdToValue()).isEmpty(); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java index a2ea6e617..c06e7b39c 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java @@ -119,7 +119,7 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getAnalysisVersion()).isEqualTo(0); // Delete file - fileManagementClient.deleteFile(dossier.getId(), file.getId()); + fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); // assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.DELETED); assertThat(loadedFile.getSoftDeletedTime()).isNotNull(); @@ -155,7 +155,7 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { var file = fileTesterAndProvider.testAndProvideFile(dossier); var userId = userProvider.getUserId(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), @@ -165,9 +165,9 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { - reanalysisClient.toggleExclusion(file.getDossierId(), file.getId(), true); + reanalysisClient.toggleExclusion(file.getDossierId(), file.getId(), true, auditor); - reanalysisClient.toggleExclusion(file.getDossierId(), file.getId(), false); + reanalysisClient.toggleExclusion(file.getDossierId(), file.getId(), false, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); @@ -190,7 +190,7 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.PROCESSED); // Delete file - fileManagementClient.deleteFile(dossier.getId(), file.getId()); + fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getSoftDeletedTime()).isNotNull(); @@ -213,7 +213,7 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getFileErrorInfo()).isNotNull(); assertThat(loadedFile.getFileErrorInfo().getCause()).isEqualTo("analysisFailed"); - reanalysisClient.reanalyzeFilesForDossier(dossier.getId(), List.of(loadedFile.getId()), true); + reanalysisClient.reanalyzeFilesForDossier(dossier.getId(), List.of(loadedFile.getId()), true, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.FULL_PROCESSING); 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 3a35e3652..756ff0e57 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 @@ -130,7 +130,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); - fileManagementClient.deleteFile(dossier.getId(), file.getId()); + fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); var nrOfFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()).size(); assertThat(nrOfFiles).isEqualTo(1); @@ -155,14 +155,14 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); var userId = userProvider.getUserId(); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId); - reanalysisClient.toggleAutomaticAnalysis(dossier.getId(), file.getId(), true); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId, auditor); + reanalysisClient.toggleAutomaticAnalysis(dossier.getId(), file.getId(), true, auditor); List configs = new ArrayList<>(); configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name").build()); configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(true).label("Attribute A").build()); - var loadedConfig = fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig(configs)); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfig.getFileAttributeConfigs().get(0).getId(), "123"))); + var loadedConfig = fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig(configs), auditor); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfig.getFileAttributeConfigs().get(0).getId(), "123")), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isTrue(); @@ -181,7 +181,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isFalse(); assertThat(loadedFile.getFileAttributes().getAttributeIdToValue()).size().isEqualTo(0); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); viewedPages = viewedPagesClient.getViewedPages(file.getDossierId(), file.getFileId()); assertThat(viewedPages.getPages().size()).isEqualTo(0); @@ -197,15 +197,15 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var file = fileTesterAndProvider.testAndProvideFile(dossier, filename); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); - reanalysisClient.excludePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1)))); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); + reanalysisClient.excludePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1))), auditor); var redactionLog = redactionLogClient.getRedactionLog(dossier.getId(), file.getId(), null, false, true); assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId); - reanalysisClient.toggleAutomaticAnalysis(dossier.getId(), file.getId(), true); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId, auditor); + reanalysisClient.toggleAutomaticAnalysis(dossier.getId(), file.getId(), true, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isTrue(); @@ -243,36 +243,36 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getFileManipulationDate()).isNotNull(); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.NEW); assertThat(loadedFile.getLastReviewer()).isNull(); assertThat(loadedFile.getLastApprover()).isNull(); - reanalysisClient.excludePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1)))); + reanalysisClient.excludePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1))), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getExcludedPages()).containsExactlyInAnyOrder(1); - reanalysisClient.includePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1)))); + reanalysisClient.includePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1))), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getExcludedPages()).isEmpty(); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.NEW); assertThat(loadedFile.getLastReviewer()).isNull(); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_APPROVAL); assertThat(loadedFile.getAssignee()).isEqualTo(userId); @@ -280,7 +280,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastApprover()).isEqualTo(userId); fileTesterAndProvider.markFileAsProcessed(file.getFileId()); - fileClient.setStatusApproved(dossier.getId(), file.getId()); + fileClient.setStatusApproved(dossier.getId(), file.getId(), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.APPROVED); assertThat(loadedFile.getAssignee()).isEqualTo(userId); @@ -288,7 +288,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastApprover()).isEqualTo(userId); assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isTrue(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), altUserId); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), altUserId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); @@ -296,44 +296,44 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastApprover()).isEqualTo(userId); assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isTrue(); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), altUserId); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), altUserId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_APPROVAL); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isEqualTo(altUserId); - fileClient.setStatusApproved(dossier.getId(), file.getId()); + fileClient.setStatusApproved(dossier.getId(), file.getId(), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.APPROVED); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isEqualTo(altUserId); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null, auditor); - reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), true); + reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), true, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcluded()).isTrue(); - reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), false); + reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), false, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcluded()).isFalse(); - fileManagementClient.deleteFile(dossier.getId(), file.getId()); + fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); var softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(1); var activeFiles = fileClient.getDossierStatus(dossier.getId()); assertThat(activeFiles.size()).isEqualTo(0); - fileManagementClient.restoreFiles(dossier.getId(), Sets.newHashSet(file.getId())); + fileManagementClient.restoreFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(0); activeFiles = fileClient.getDossierStatus(dossier.getId()); assertThat(activeFiles.size()).isEqualTo(1); - fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId())); + fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(0); @@ -374,36 +374,36 @@ public class FileTest extends AbstractPersistenceServerServiceTest { .legalBasis("1") .dictionaryEntryType(DictionaryEntryType.ENTRY) .build(); - manualRedactionClient.addRedactionBulk(dossierId, fileId, Set.of(addRedactionRequest)); + manualRedactionClient.addRedactionBulk(dossierId, fileId, Set.of(addRedactionRequest), auditor); manualRedactionClient.removeRedactionBulk(dossierId, fileId, - Set.of(RemoveRedactionRequestModel.builder().annotationId(annotationId).comment("comment").removeFromDictionary(false).build())); + Set.of(RemoveRedactionRequestModel.builder().annotationId(annotationId).comment("comment").removeFromDictionary(false).build()), auditor); manualRedactionClient.forceRedactionBulk(dossierId, fileId, - Set.of(ForceRedactionRequestModel.builder().annotationId("forceRedactionAnnotation").comment("comment").legalBasis("1").build())); + Set.of(ForceRedactionRequestModel.builder().annotationId("forceRedactionAnnotation").comment("comment").legalBasis("1").build()), auditor); manualRedactionClient.legalBasisChangeBulk(dossierId, fileId, - Set.of(LegalBasisChangeRequestModel.builder().annotationId("legalBasisChangeAnnotation").comment("comment").legalBasis("1").build())); + Set.of(LegalBasisChangeRequestModel.builder().annotationId("legalBasisChangeAnnotation").comment("comment").legalBasis("1").build()), auditor); manualRedactionClient.recategorizeBulk(dossierId, fileId, - Set.of(RecategorizationRequestModel.builder().annotationId(annotationId).comment("comment").type("new-type").build())); + Set.of(RecategorizationRequestModel.builder().annotationId(annotationId).comment("comment").type("new-type").build()), auditor); var loadedFile = fileClient.getFileStatus(dossierId, fileId); - fileManagementClient.deleteFile(dossier.getId(), file.getId()); + fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); var softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(1); var activeFiles = fileClient.getDossierStatus(dossier.getId()); assertThat(activeFiles.size()).isEqualTo(0); - fileManagementClient.restoreFiles(dossier.getId(), Sets.newHashSet(file.getId())); + fileManagementClient.restoreFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(0); activeFiles = fileClient.getDossierStatus(dossier.getId()); assertThat(activeFiles.size()).isEqualTo(1); - fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId())); + fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(0); @@ -430,7 +430,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var userId = userProvider.getUserId(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); var addRedaction = manualRedactionClient.addRedactionBulk(dossierId, fileId, @@ -443,15 +443,15 @@ public class FileTest extends AbstractPersistenceServerServiceTest { .value("test") .legalBasis("1") .dictionaryEntryType(DictionaryEntryType.ENTRY) - .build())).iterator().next(); + .build()), auditor).iterator().next(); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); - reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), true); + reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), true, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcluded()).isTrue(); - reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), false); + reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), false, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcluded()).isFalse(); } @@ -474,18 +474,18 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); - reanalysisClient.excludePages(dossierId, fileId, new PageExclusionRequest(List.of(new PageRange(1, 1)))); + reanalysisClient.excludePages(dossierId, fileId, new PageExclusionRequest(List.of(new PageRange(1, 1))), auditor); assertThat(fileClient.getFileStatus(dossierId, fileId).getExcludedPages().size()).isEqualTo(1); assertThat(fileClient.getFileStatus(dossierId, fileId).getExcludedPages()).contains(1); // Delete file - fileManagementClient.deleteFile(dossierId, fileId); + fileManagementClient.deleteFile(dossierId, fileId, auditor); var softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossierId); assertThat(softDeletedFiles.size()).isEqualTo(1); var activeFiles = fileClient.getDossierStatus(dossierId); assertThat(activeFiles.size()).isEqualTo(0); - fileManagementClient.hardDeleteFiles(dossierId, Sets.newHashSet(fileId)); + fileManagementClient.hardDeleteFiles(dossierId, Sets.newHashSet(fileId), auditor); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossierId); assertThat(softDeletedFiles.size()).isEqualTo(0); @@ -516,28 +516,28 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastReviewer()).isNull(); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getLastReviewer()).isNull(); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), altUserId); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), altUserId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), altUserId); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), altUserId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_APPROVAL); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isEqualTo(altUserId); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_APPROVAL); assertThat(loadedFile.getAssignee()).isEqualTo(userId); @@ -566,7 +566,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastApprover()).isNull(); Exception exception = Assertions.assertThrows(FeignException.BadRequest.class, () -> { - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null, auditor); }); String expectedMessage = "File is already unassigned!"; @@ -575,7 +575,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(actualMessage).contains(expectedMessage); exception = Assertions.assertThrows(FeignException.BadRequest.class, () -> { - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), user2); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), user2, auditor); }); expectedMessage = "User must be dossier member"; @@ -583,7 +583,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(actualMessage).contains(expectedMessage); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), altUserId); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), altUserId, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java index c3d7fb9d8..caae4d7b6 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java @@ -43,31 +43,31 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest { var mappings = new ArrayList(); mappings.add(LegalBasis.builder().name("test 1").description("test 1").reason("test 1").build()); mappings.add(LegalBasis.builder().name("test 2").description("test 2").reason("test 2").build()); - legalBasisClient.setLegalBasisMapping(mappings, dossierTemplate.getId()); + legalBasisClient.setLegalBasisMapping(mappings, dossierTemplate.getId(), auditor); var mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(mapping.size()).isEqualTo(2); assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2"); var legalBasis = LegalBasis.builder().name("test 3").description("test 3").reason("test 3").build(); - legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis); + legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis, auditor); mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(mapping.size()).isEqualTo(3); assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3"); legalBasis = LegalBasis.builder().name("test 3").reason("test 3").description("test 3 - updated").build(); - legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis); + legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis, auditor); mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(mapping.size()).isEqualTo(3); assertThat(mapping.stream().map(LegalBasis::getDescription).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3 - updated"); - legalBasisClient.deleteLegalBasis(dossierTemplate.getId(), Lists.newArrayList("test 1")); + legalBasisClient.deleteLegalBasis(dossierTemplate.getId(), Lists.newArrayList("test 1"), auditor); mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(mapping.size()).isEqualTo(2); - legalBasisClient.setLegalBasisMapping(Lists.newArrayList(), dossierTemplate.getId()); + legalBasisClient.setLegalBasisMapping(Lists.newArrayList(), dossierTemplate.getId(), auditor); assertThat(legalBasisClient.getLegalBasisMapping(dossierTemplate.getId())).isEmpty(); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java index 2b58fdafa..3e5da7697 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java @@ -78,7 +78,7 @@ public class LicenseReportTest extends AbstractPersistenceServerServiceTest { LicenseReport licenseReport = licenseReportClient.getReport(LicenseReportRequest.builder() .startDate(Instant.parse("2023-01-01T10:00:00Z")) .endDate(Instant.parse("2023-05-01T11:00:00Z")) - .build()); + .build(), auditor); assertThat(licenseReport.getTotalFilesUploadedBytes()).isEqualTo(900L); assertThat(licenseReport.getActiveFilesUploadedBytes()).isEqualTo(700L); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java index 5c973e35d..578b8d6d3 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java @@ -95,7 +95,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var type = typeProvider.testAndProvideType(dossierTemplate, null, "type", true); assertThat(type.isDossierDictionaryOnly()).isTrue(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); var redactionLog = new RedactionLog(1, 1, @@ -112,7 +112,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { Assertions.assertThrows(FeignException.Forbidden.class, () -> manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), - Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build())));//.get(0); + Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), auditor));//.get(0); var dossierTemplateDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId()), null); assertThat(dossierTemplateDictionary.getEntries().size()).isZero(); @@ -143,7 +143,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .value("Luke Skywalker") .legalBasis("1") .sourceId("SourceId") - .build()))); + .build()), auditor)); var dossierTemplateDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId()), null); assertThat(dossierTemplateDictionary.getEntries().size()).isZero(); @@ -160,7 +160,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var type = typeProvider.testAndProvideType(dossierTemplate); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), dossier.getDossierId(), DictionaryEntryType.ENTRY); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); assertThat(dossierDictionary.getEntries().size()).isEqualTo(1); @@ -179,7 +179,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .value("Luke Skywalker") .legalBasis("1") .sourceId("SourceId") - .build())); + .build()), auditor); dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); assertThat(dossierDictionary.getEntries().size()).isEqualTo(1); @@ -213,7 +213,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .value("Luke Skywalker") .legalBasis("1") .sourceId("SourceId") - .build())); + .build()), auditor); var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); assertThat(dossierDictionary.getEntries().size()).isEqualTo(1); @@ -236,9 +236,9 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entries = new ArrayList(); entries.add("Luke Skywalker"); entries.add("Darth Vader"); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); Dictionary dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder("Luke Skywalker", "Darth Vader"); @@ -260,7 +260,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), - Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build())); + Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), auditor); dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder("Darth Vader"); @@ -288,7 +288,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entries = new ArrayList(); entries.add("Luke Skywalker"); entries.add("Darth Vader"); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); //FIXME should be created on the fly. // CreateTypeValue dossierDictionaryType = MagicConverter.convert(type, CreateTypeValue.class); @@ -308,7 +308,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), - Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).build())).get(0); + Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).build()), auditor).get(0); var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); @@ -333,7 +333,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { //FIXME should be created on the fly. // CreateTypeValue dossierDictionaryType = MagicConverter.convert(type, CreateTypeValue.class); // dictionaryClient.addType(dossierDictionaryType, dossier.getDossierId()); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); var redactionLog = new RedactionLog(1, 1, @@ -349,7 +349,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), - Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build())).get(0); + Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), auditor).get(0); var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); assertThat(dossierDictionary.getEntries().size()).isEqualTo(1); @@ -405,7 +405,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .sourceId("SourceId") .build(); - var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); + var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict), auditor); var loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId()); var redactionLog1 = new RedactionLog(1, @@ -457,7 +457,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .addToAllDossiers(true) .build(); - manualRedactionClient.resizeRedactionBulk(dossier1.getDossierId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos)); + manualRedactionClient.resizeRedactionBulk(dossier1.getDossierId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos), auditor); loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId()); @@ -552,7 +552,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .sourceId("SourceId") .build(); - var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); + var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict), auditor); var loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId()); var redactionLog1 = new RedactionLog(1, @@ -604,7 +604,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .addToAllDossiers(true) .build(); - manualRedactionClient.resizeRedactionBulk(dossier1.getDossierId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos)); + manualRedactionClient.resizeRedactionBulk(dossier1.getDossierId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos), auditor); loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId()); @@ -702,7 +702,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .sourceId("SourceId") .build(); - var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); + var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict), auditor); var redactionLog1 = new RedactionLog(1, 1, @@ -753,7 +753,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .addToAllDossiers(true) .build(); - var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getDossierId(), file2.getFileId(), Set.of(resizeRedactionDosTemp)); + var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getDossierId(), file2.getFileId(), Set.of(resizeRedactionDosTemp), auditor); var loadedRedactionsFile2 = manualRedactionClient.getManualRedactions(file2.getDossierId(), file2.getFileId()); @@ -848,7 +848,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .sourceId("SourceId") .build(); - var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); + var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict), auditor); var redactionLog1 = new RedactionLog(1, 1, @@ -899,7 +899,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .addToAllDossiers(true) .build(); - var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getDossierId(), file2.getFileId(), Set.of(resizeRedactionDosTemp)); + var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getDossierId(), file2.getFileId(), Set.of(resizeRedactionDosTemp), auditor); var loadedRedactionsFile2 = manualRedactionClient.getManualRedactions(file2.getDossierId(), file2.getFileId()); @@ -966,9 +966,9 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var darthVader = "Darth Vader"; entries.add(lukeSkywalker); entries.add(darthVader); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of(lukeSkywalker), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of(lukeSkywalker), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); Dictionary dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder(lukeSkywalker, darthVader); @@ -995,7 +995,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), - Set.of(RecategorizationRequestModel.builder().type(type2.getType()).annotationId(annotationId).addToDictionary(true).addToAllDossiers(true).build())); + Set.of(RecategorizationRequestModel.builder().type(type2.getType()).annotationId(annotationId).addToDictionary(true).addToAllDossiers(true).build()), auditor); dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder(darthVader); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReanalysisTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReanalysisTest.java index eba7943b2..c44a87a11 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReanalysisTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReanalysisTest.java @@ -46,32 +46,32 @@ public class ReanalysisTest extends AbstractPersistenceServerServiceTest { var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isNotEqualTo(ProcessingStatus.PROCESSED); - reanalysisClient.ocrDossier(dossier.getId()); + reanalysisClient.ocrDossier(dossier.getId(), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isNotEqualTo(ProcessingStatus.PROCESSED); resetProcessingStatus(file); - reanalysisClient.ocrDossier(dossier.getId()); + reanalysisClient.ocrDossier(dossier.getId(), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.OCR_PROCESSING_QUEUED); resetProcessingStatus(file); - reanalysisClient.ocrFile(dossier.getId(), file.getId(), true); + reanalysisClient.ocrFile(dossier.getId(), file.getId(), true, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.OCR_PROCESSING_QUEUED); resetProcessingStatus(file); - reanalysisClient.ocrFiles(dossier.getId(), Set.of(file.getId())); + reanalysisClient.ocrFiles(dossier.getId(), Set.of(file.getId()), auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.OCR_PROCESSING_QUEUED); resetProcessingStatus(file); - reanalysisClient.reanalyzeFilesForDossier(dossier.getId(), List.of(file.getId()), true); + reanalysisClient.reanalyzeFilesForDossier(dossier.getId(), List.of(file.getId()), true, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.FULL_PROCESSING); resetProcessingStatus(file); - reanalysisClient.reanalyzeDossier(dossier.getId(), true); + reanalysisClient.reanalyzeDossier(dossier.getId(), true, auditor); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.FULL_PROCESSING); resetProcessingStatus(file); 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 fd74e8512..5913fb1a6 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 @@ -51,7 +51,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { // var download = reportTemplateClient.downloadReportTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId()); // assertThat(download.getFile().length).isEqualTo(4); - reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId()); + reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId(), auditor); availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isEmpty(); @@ -82,7 +82,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo("report.xlsx"); - reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId()); + reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId(), auditor); availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isEmpty(); 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 43ea31130..dc351c6b7 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 @@ -29,13 +29,13 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); - rulesClient.upload(new RulesUploadRequest("lorem ipsum", dossierTemplate.getId())); + rulesClient.upload(new RulesUploadRequest("lorem ipsum", dossierTemplate.getId()), auditor); assertThat(versionClient.getVersions(List.of(dossierTemplate.getId())) .get(dossierTemplate.getId()) .getRulesVersion()).isEqualTo(3); //1. beim Anlegen des DossierTemplates; 2. bei provideTestTemplate(), damit es ACTIVE ist assertThat(rulesClient.download(dossierTemplate.getId()).getRules()).isEqualTo("lorem ipsum"); - rulesClient.upload(new RulesUploadRequest("lorem ipsum dolor sit amet", dossierTemplate.getId())); + rulesClient.upload(new RulesUploadRequest("lorem ipsum dolor sit amet", dossierTemplate.getId()), auditor); assertThat(versionClient.getVersions(List.of(dossierTemplate.getId())).get(dossierTemplate.getId()).getRulesVersion()).isEqualTo(4); assertThat(rulesClient.download(dossierTemplate.getId()).getRules()).isEqualTo("lorem ipsum dolor sit amet"); 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 a82d6d735..b537917af 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 @@ -39,7 +39,7 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { var type = typeProvider.testAndProvideType(dossierTemplate); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), Lists.newArrayList("aaa", "bbb", "ccc"), true, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), Lists.newArrayList("aaa", "bbb", "ccc"), true, null, DictionaryEntryType.ENTRY, auditor); var loadedType = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -49,7 +49,7 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { assertThat(dict.size()).isEqualTo(3); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), Lists.newArrayList("aaa", "bbb", "ccc"), null, DictionaryEntryType.ENTRY); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), Lists.newArrayList("aaa", "bbb", "ccc"), null, DictionaryEntryType.ENTRY, auditor); loadedType = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -60,12 +60,12 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { var request = new UpdateTypeValue(); BeanUtils.copyProperties(type, request); request.setRank(99); - dictionaryClient.updateType(type.getType(), type.getDossierTemplateId(), request); + dictionaryClient.updateType(type.getType(), type.getDossierTemplateId(), request, auditor); loadedType = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(loadedType.getRank()).isEqualTo(99); - dictionaryClient.deleteType(type.getType(), type.getDossierTemplateId()); + dictionaryClient.deleteType(type.getType(), type.getDossierTemplateId(), auditor); var typesForTemplate = dictionaryClient.getAllTypes(loadedType.getDossierTemplateId(), null, false).getTypes(); assertThat(typesForTemplate).isEmpty(); @@ -101,7 +101,7 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { colors.setDossierTemplateId(dossierTemplate.getId()); - dictionaryClient.setColors(dossierTemplate.getId(), colors); + dictionaryClient.setColors(dossierTemplate.getId(), colors, auditor); var savedColors = dictionaryClient.getColors(dossierTemplate.getId()); assertThat(savedColors).isEqualTo(colors); 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 bacf19943..6b31a504b 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 @@ -41,7 +41,7 @@ public class ViewedPagesTest extends AbstractPersistenceServerServiceTest { var file = fileTesterAndProvider.testAndProvideFile(dossier); var userId = userProvider.getUserId(); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId, auditor); var fileId = file.getId(); viewedPagesClient.addPage(dossier.getId(),fileId, new ViewedPagesRequest(1)); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/WatermarkTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/WatermarkTest.java index 5f59db92c..80f782ef4 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/WatermarkTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/WatermarkTest.java @@ -55,20 +55,20 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); watermark.setCreatedBy("user"); - var saved = watermarkClient.saveWatermark(watermark); + var saved = watermarkClient.saveWatermark(watermark, auditor); var loadedWatermark = watermarkClient.getWatermark(saved.getId()); assertThat(loadedWatermark).isEqualTo(saved); assertThat(saved.getDateAdded()).isNotNull(); // try to save the same watermark without id try { - watermarkClient.saveWatermark(watermark); + watermarkClient.saveWatermark(watermark, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } // try to save the same watermark with id try { - watermarkClient.saveWatermark(saved); + watermarkClient.saveWatermark(saved, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } @@ -77,7 +77,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { saved.setFontSize(14); saved.setEnabled(true); saved.setDossierTemplateId(null); - var updated = watermarkClient.saveWatermark(saved); + var updated = watermarkClient.saveWatermark(saved, auditor); assertThat(updated.getDossierTemplateId()).isEqualTo(dossierTemplate.getId()); assertThat(updated.getDateModified()).isNotNull(); assertThat(updated.isEnabled()).isTrue(); @@ -93,7 +93,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { cru.setDossierId(dossier.getId()); cru.setWatermarkId(updated.getId()); - var updatedDossier = dossierClient.createDossierOrUpdateDossier(cru).getBody(); + var updatedDossier = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); assertThat(updatedDossier.getWatermarkId()).isEqualTo(updated.getId()); assertThat(watermarkClient.isWatermarkUsed(updated.getId())).isEqualTo(JSONPrimitive.of(true)); @@ -101,7 +101,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { // update current watermark with new dossier template id updated.setDossierTemplateId("dossierTemplate2"); try { - watermarkClient.saveWatermark(updated); + watermarkClient.saveWatermark(updated, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } @@ -116,7 +116,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark2.setDossierTemplateId(dossierTemplate.getId()); try { - watermarkClient.saveWatermark(watermark2); + watermarkClient.saveWatermark(watermark2, auditor); } catch (FeignException.FeignClientException e) { assertThat(e.status()).isEqualTo(409); } @@ -139,12 +139,12 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossierTemplate.getId()); - var saved = watermarkClient.saveWatermark(watermark); + var saved = watermarkClient.saveWatermark(watermark, auditor); var loadedWatermark = watermarkClient.getWatermark(saved.getId()); assertThat(loadedWatermark).isEqualTo(saved); // Delete first time - watermarkClient.deleteWatermark(saved.getId()); + watermarkClient.deleteWatermark(saved.getId(), auditor); try { watermarkClient.getWatermark(saved.getId()); @@ -154,7 +154,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { // try to delete a not existing watermark try { - watermarkClient.deleteWatermark(saved.getId()); + watermarkClient.deleteWatermark(saved.getId(), auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(404); } @@ -177,13 +177,13 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossierTemplate.getId()); - var saved = watermarkClient.saveWatermark(watermark); + var saved = watermarkClient.saveWatermark(watermark, auditor); var loadedWatermark = watermarkClient.getWatermark(saved.getId()); assertThat(loadedWatermark).isEqualTo(saved); // try to save the same watermark try { - watermarkClient.saveWatermark(watermark); + watermarkClient.saveWatermark(watermark, auditor); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } @@ -195,7 +195,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossierTemplate.getId()); - var saved2 = watermarkClient.saveWatermark(watermark); + var saved2 = watermarkClient.saveWatermark(watermark, auditor); var loadedWatermark2 = watermarkClient.getWatermark(saved.getId()); } @@ -215,7 +215,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); Exception exception = Assertions.assertThrows(FeignException.BadRequest.class, () -> { - watermarkClient.saveWatermark(watermark); + watermarkClient.saveWatermark(watermark, auditor); }); String expectedMessage = "The specified color: " + color + " is malformed."; @@ -224,7 +224,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { assertThat(actualMessage).contains(expectedMessage); watermark.setHexColor(null); - var saved2 = watermarkClient.saveWatermark(watermark); + var saved2 = watermarkClient.saveWatermark(watermark, auditor); assertThat(saved2.getHexColor()).isEqualTo("#000000"); } @@ -246,7 +246,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); assertThat(watermark.getOpacity()).isEqualTo(0); - var saved2 = watermarkClient.saveWatermark(watermark); + var saved2 = watermarkClient.saveWatermark(watermark, auditor); assertThat(saved2.getOpacity()).isEqualTo(0); @@ -261,7 +261,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark2.setDossierTemplateId(dossierTemplate.getId()); watermark2.setOpacity(-1); - saved2 = watermarkClient.saveWatermark(watermark2); + saved2 = watermarkClient.saveWatermark(watermark2, auditor); assertThat(saved2.getOpacity()).isEqualTo(30); } @@ -283,7 +283,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setText(watermarkText); - var saved = watermarkClient.saveWatermark(watermark); + var saved = watermarkClient.saveWatermark(watermark, auditor); var loadedWatermarked = watermarkClient.getWatermark(saved.getId()); assertThat(loadedWatermarked).isEqualTo(saved); @@ -310,7 +310,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setText(watermarkText); // Act - var saved = watermarkClient.saveWatermark(watermark); + var saved = watermarkClient.saveWatermark(watermark, auditor); var loadedWatermarked = watermarkClient.getWatermark(saved.getId()); // Assert 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 84990bb9c..d669c3e2a 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 @@ -55,25 +55,25 @@ public class EntityPerformanceTest extends AbstractPersistenceServerServiceTest var tenKEntries = generateEntries(10000); long t1 = System.currentTimeMillis(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.ENTRY, auditor); long t2 = System.currentTimeMillis(); log.info("Add Time: {}ms counting: {} entries", (t2 - t1), entryRepository.findByTypeIdAndVersionGreaterThan(type.getTypeId(), 0).size()); t1 = System.currentTimeMillis(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), tenKEntries, true, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), tenKEntries, true, null, DictionaryEntryType.ENTRY, auditor); t2 = System.currentTimeMillis(); log.info("Add Time: {}ms counting: {} entries", (t2 - t1), entryRepository.findByTypeIdAndVersionGreaterThan(type.getTypeId(), 0).size()); t1 = System.currentTimeMillis(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.ENTRY, auditor); t2 = System.currentTimeMillis(); log.info("Update Time: {}ms counting: {} entries", (t2 - t1), entryRepository.findByTypeIdAndVersionGreaterThan(type.getTypeId(), 0).size()); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.FALSE_RECOMMENDATION); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.FALSE_POSITIVE); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.FALSE_RECOMMENDATION, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.FALSE_POSITIVE, auditor); t1 = System.currentTimeMillis(); - var cloned = dossierTemplateClient.cloneDossierTemplate(template.getId(), new CloneDossierTemplateRequest()); + var cloned = dossierTemplateClient.cloneDossierTemplate(template.getId(), new CloneDossierTemplateRequest(), auditor); t2 = System.currentTimeMillis(); log.info("Clone Time: {}", (t2 - t1)); -- 2.47.2 From 3c5d62c12f451d621add3f6e60ae7b732a96ab34 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Wed, 8 Nov 2023 17:57:26 +0200 Subject: [PATCH 06/20] Fixed test issues --- .../server/integration/service/ReportTemplateProvider.java | 6 +++++- .../v1/server/integration/service/TypeProvider.java | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/ReportTemplateProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/ReportTemplateProvider.java index 6e138150a..9a32e968d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/ReportTemplateProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/ReportTemplateProvider.java @@ -2,6 +2,7 @@ package com.iqser.red.service.peristence.v1.server.integration.service; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; @@ -15,6 +16,9 @@ public class ReportTemplateProvider { @Autowired private ReportTemplateClient reportTemplateClient; + @Autowired + private TestAuditor auditor; + public ReportTemplate provideReportTemplate(String dossierTemplateId) { @@ -31,7 +35,7 @@ public class ReportTemplateProvider { public ReportTemplate provideReportTemplate(String dossierTemplateId, String name, byte[] content, boolean multiFile, boolean activeByDefault) { var template = new MockMultipartFile(name,name,"application/octet-stream", content); - reportTemplateClient.uploadTemplate(template, dossierTemplateId, multiFile, activeByDefault); + reportTemplateClient.uploadTemplate(template, dossierTemplateId, multiFile, activeByDefault, auditor); var tpl = reportTemplateClient.getAvailableReportTemplates(dossierTemplateId) .stream() diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java index c245080bf..2f4d7e203 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java @@ -17,6 +17,9 @@ public class TypeProvider { @Autowired private DictionaryClient dictionaryClient; + @Autowired + private TestAuditor auditor; + public TypeValue testAndProvideType(DossierTemplateModel dossierTemplate) { @@ -53,7 +56,7 @@ public class TypeProvider { type.setHasDictionary(true); type.setDossierDictionaryOnly(dossierDictionaryOnly); - dictionaryClient.addType(type); + dictionaryClient.addType(type, auditor); var allTypes = dictionaryClient.getAllTypes(dossierTemplate.getDossierTemplateId(), dossier != null ? dossier.getId() : null, false); var foundType = allTypes.getTypes().stream().filter(t -> t.getType().equalsIgnoreCase(typeName)).findAny(); -- 2.47.2 From 4eddd50193d0cd0c68ef8ab4ec4a0820fac9fb6c Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Tue, 14 Nov 2023 15:07:58 +0200 Subject: [PATCH 07/20] Prepared codebase for auditor:request-scoped version variant. This was required to have the Feign backed tests working again. --- .../impl/controller/DictionaryController.java | 27 ++-- .../DigitalSignatureController.java | 13 +- .../DossierAttributesController.java | 18 +-- .../impl/controller/DossierController.java | 13 +- .../controller/DossierTemplateController.java | 17 ++- .../impl/controller/DownloadController.java | 18 +-- .../controller/FileAttributesController.java | 11 +- .../controller/FileManagementController.java | 11 +- .../LegalBasisMappingController.java | 7 +- .../controller/LicenseReportController.java | 4 +- .../controller/ManualRedactionController.java | 25 ++-- .../api/impl/controller/RSSController.java | 6 +- .../impl/controller/ReanalysisController.java | 39 +++--- .../controller/ReportTemplateController.java | 6 +- .../api/impl/controller/RulesController.java | 12 +- .../api/impl/controller/StatusController.java | 32 +++-- .../api/impl/controller/UploadController.java | 4 +- .../impl/controller/WatermarkController.java | 5 +- .../external/resource/DictionaryResource.java | 25 ++-- .../resource/DigitalSignatureResource.java | 14 +-- .../resource/DossierAttributesResource.java | 18 ++- .../external/resource/DossierResource.java | 14 +-- .../resource/DossierTemplateResource.java | 14 +-- .../external/resource/DownloadResource.java | 13 +- .../resource/FileAttributesResource.java | 12 +- .../resource/FileManagementResource.java | 12 +- .../resource/LegalBasisMappingResource.java | 8 +- .../resource/LicenseReportResource.java | 4 +- .../resource/ManualRedactionResource.java | 26 ++-- .../v1/api/external/resource/RSSResource.java | 6 +- .../external/resource/ReanalysisResource.java | 35 ++---- .../resource/ReportTemplateResource.java | 7 +- .../api/external/resource/RulesResource.java | 9 +- .../api/external/resource/StatusResource.java | 25 ++-- .../api/external/resource/UploadResource.java | 5 +- .../external/resource/WatermarkResource.java | 6 +- .../DossierTemplateTesterAndProvider.java | 6 +- .../service/DossierTesterAndProvider.java | 5 +- .../service/ReportTemplateProvider.java | 6 +- .../integration/service/TypeProvider.java | 5 +- .../integration/tests/DictionaryTest.java | 116 +++++++++--------- .../tests/DigitalSignatureTest.java | 11 +- .../tests/DossierAttributeTest.java | 34 ++--- .../integration/tests/DossierStatsTest.java | 4 +- .../integration/tests/DossierStatusTest.java | 4 +- .../tests/DossierTemplateImportTest.java | 2 +- .../tests/DossierTemplateStatsTest.java | 42 +++---- .../tests/DossierTemplateTest.java | 76 ++++++------ .../server/integration/tests/DossierTest.java | 72 +++++------ .../tests/DownloadPreparationTest.java | 8 +- .../integration/tests/DownloadTest.java | 8 +- .../integration/tests/FileAttributeTest.java | 34 ++--- .../integration/tests/FileProcessingTest.java | 12 +- .../v1/server/integration/tests/FileTest.java | 96 +++++++-------- .../integration/tests/LegalBasisTest.java | 10 +- .../integration/tests/LicenseReportTest.java | 2 +- .../tests/ManualRedactionTest.java | 48 ++++---- .../integration/tests/ReanalysisTest.java | 12 +- .../integration/tests/ReportTemplateTest.java | 4 +- .../server/integration/tests/RulesTest.java | 4 +- .../v1/server/integration/tests/TypeTest.java | 10 +- .../integration/tests/ViewedPagesTest.java | 3 +- .../integration/tests/WatermarkTest.java | 38 +++--- .../performance/EntityPerformanceTest.java | 12 +- 64 files changed, 552 insertions(+), 653 deletions(-) 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/DictionaryController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java index 527e51c81..d68843a05 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java @@ -41,7 +41,8 @@ @RequiredArgsConstructor public class DictionaryController implements DictionaryResource { - private final DictionaryService dictionaryService; + private final DictionaryService dictionaryService; + private final Auditor auditor; @Override public void addEntry(@PathVariable(TYPE_PARAMETER_NAME) String type, @@ -49,8 +50,7 @@ public class DictionaryController implements DictionaryResource { @RequestBody List entries, @RequestParam(name = REMOVE_CURRENT_REQUEST_PARAM, defaultValue = "false", required = false) boolean removeCurrent, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, - Auditor auditor) { + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType) { addEntries(type, dossierTemplateId, entries, removeCurrent, dossierId, dictionaryEntryType); auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary entries were added.", @@ -73,10 +73,9 @@ public class DictionaryController implements DictionaryResource { @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @PathVariable(ENTRY_PARAMETER_NAME) String entry, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, - Auditor auditor) { + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType) { - deleteEntries(type, dossierTemplateId, Arrays.asList(entry), dossierId, dictionaryEntryType, auditor); + deleteEntries(type, dossierTemplateId, Arrays.asList(entry), dossierId, dictionaryEntryType); auditor.audit(AuditCategory.DICTIONARY.name(), "Dictionary entry was deleted.", d(AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId), d(AuditDetail.TYPE, type), d(AuditDetail.VALUE, entry)); } @@ -87,8 +86,7 @@ public class DictionaryController implements DictionaryResource { @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List entries, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, - Auditor auditor) { + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType) { if (dossierId == null) { dictionaryService.deleteGlobalEntries(type, dossierTemplateId, entries, dictionaryEntryType); @@ -103,7 +101,7 @@ public class DictionaryController implements DictionaryResource { @Override public void updateType(@PathVariable(TYPE_PARAMETER_NAME) String type, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, - @RequestBody UpdateTypeValue typeValue, Auditor auditor) { + @RequestBody UpdateTypeValue typeValue) { dictionaryService.updateGlobalType(type, dossierTemplateId, typeValue); @@ -113,7 +111,7 @@ public class DictionaryController implements DictionaryResource { @Override - public TypeValue addType(@Valid @RequestBody CreateTypeValue typeValue, Auditor auditor) { + public TypeValue addType(@Valid @RequestBody CreateTypeValue typeValue) { Type result = dictionaryService.addGlobalType(typeValue); @@ -126,7 +124,7 @@ public class DictionaryController implements DictionaryResource { @Override public void deleteType(@PathVariable(TYPE_PARAMETER_NAME) String type, - @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, Auditor auditor) { + @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { dictionaryService.deleteGlobalType(type, dossierTemplateId); @@ -137,7 +135,7 @@ public class DictionaryController implements DictionaryResource { @Override public void deleteTypes(@RequestBody List types, - @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, Auditor auditor) { + @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { List errorIds = new ArrayList<>(); @@ -179,8 +177,7 @@ public class DictionaryController implements DictionaryResource { @PathVariable(TYPE_PARAMETER_NAME) String type, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, - Auditor auditor) { + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType) { validateFile(file); @@ -251,7 +248,7 @@ public class DictionaryController implements DictionaryResource { @Override - public void setColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Colors colors, Auditor auditor) { + public void setColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Colors colors) { dictionaryService.setColors(dossierTemplateId, colors); 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/DigitalSignatureController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DigitalSignatureController.java index 807ad58ef..244b9a6d0 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DigitalSignatureController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DigitalSignatureController.java @@ -29,6 +29,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac public class DigitalSignatureController implements DigitalSignatureResource { private static final String DIGITAL_SIGNATURE_AUDIT_ID = "DigitalSignature"; + private final Auditor auditor; private final DigitalSignatureTypeService digitalSignatureTypeService; private final DigitalSignatureService digitalSignatureService; private final DigitalSignatureKmsService digitalSignatureKmsService; @@ -44,7 +45,7 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public void setActiveDigitalSignatureType(DigitalSignatureType digitalSignatureType, Auditor auditor) { + public void setActiveDigitalSignatureType(DigitalSignatureType digitalSignatureType) { digitalSignatureTypeService.setActiveDigitalSignatureType(digitalSignatureType); auditor.audit(AuditCategory.SETTINGS.name(), "Digital signature type has been updated.", @@ -54,7 +55,7 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public DigitalSignatureViewModel saveDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel, Auditor auditor) { + public DigitalSignatureViewModel saveDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel) { DigitalSignatureViewModel digitalSignatureViewModel = convertToView(digitalSignatureService.saveDigitalSignature(convert(digitalSignatureModel))); auditor.audit(AuditCategory.SETTINGS.name(), "Digital signature has been saved.", @@ -66,7 +67,7 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public void updateDigitalSignature(@RequestBody DigitalSignatureViewModel digitalSignatureModel, Auditor auditor) { + public void updateDigitalSignature(@RequestBody DigitalSignatureViewModel digitalSignatureModel) { digitalSignatureService.updateDigitalSignature(convert(digitalSignatureModel)); auditor.audit(AuditCategory.SETTINGS.name(), "Digital signature has been updated.", @@ -84,7 +85,7 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public void deleteDigitalSignature(Auditor auditor) { + public void deleteDigitalSignature() { digitalSignatureService.deleteDigitalSignature(); auditor.audit(AuditCategory.SETTINGS.name(), "Digital signature has been deleted.", @@ -94,7 +95,7 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature, Auditor auditor) { + public DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature) { DigitalSignatureKmsViewModel result = convert(digitalSignatureKmsService.saveDigitalSignature(digitalSignature)); auditor.audit(AuditCategory.SETTINGS.name(), "Digital KMS signature has been saved.", @@ -113,7 +114,7 @@ public class DigitalSignatureController implements DigitalSignatureResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DIGITAL_SIGNATURE + "')") - public void deleteDigitalSignatureKms(Auditor auditor) { + public void deleteDigitalSignatureKms() { digitalSignatureKmsService.deleteDigitalSignature(); auditor.audit(AuditCategory.SETTINGS.name(), "Digital KMS signature has been deleted.", 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/DossierAttributesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierAttributesController.java index 7e4f1d306..ac055b7a6 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierAttributesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierAttributesController.java @@ -28,6 +28,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac @RequiredArgsConstructor public class DossierAttributesController implements DossierAttributesResource { + private final Auditor auditor; private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; private final DossierAttributesManagementService dossierAttributesManagementService; private final AccessControlService accessControlService; @@ -35,7 +36,7 @@ public class DossierAttributesController implements DossierAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES_CONFIG + "')") - public DossierAttributesConfig setDossierAttributesConfig(String dossierTemplateId, DossierAttributesConfig dossierAttributesConfig, Auditor auditor) { + public DossierAttributesConfig setDossierAttributesConfig(String dossierTemplateId, DossierAttributesConfig dossierAttributesConfig) { var result = MagicConverter.convert(dossierAttributeConfigPersistenceService.setDossierAttributesConfig(dossierTemplateId, MagicConverter.convert(dossierAttributesConfig.getDossierAttributeConfigs(), DossierAttributeConfigEntity.class)), DossierAttributeConfig.class); @@ -48,8 +49,7 @@ public class DossierAttributesController implements DossierAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES_CONFIG + "')") public DossierAttributeConfig addOrUpdateDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @RequestBody DossierAttributeConfig dossierAttribute, - Auditor auditor) { + @RequestBody DossierAttributeConfig dossierAttribute) { var result = MagicConverter.convert(dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, MagicConverter.convert(dossierAttribute, DossierAttributeConfigEntity.class)), DossierAttributeConfig.class); @@ -61,7 +61,7 @@ public class DossierAttributesController implements DossierAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES_CONFIG + "')") - public void deleteDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId, Auditor auditor) { + public void deleteDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId) { dossierAttributeConfigPersistenceService.deleteDossierAttribute(dossierAttributeId); auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier attributes removed", @@ -71,7 +71,7 @@ public class DossierAttributesController implements DossierAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES_CONFIG + "')") - public void deleteDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(DOSSIER_ATTRIBUTE_IDS) List dossierAttributeIds, Auditor auditor) { + public void deleteDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(DOSSIER_ATTRIBUTE_IDS) List dossierAttributeIds) { dossierAttributeConfigPersistenceService.deleteDossierAttributes(dossierAttributeIds); dossierAttributeIds.forEach(dossierAttributeId -> auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Dossier attribute removed", @@ -89,7 +89,7 @@ public class DossierAttributesController implements DossierAttributesResource { @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES + "')") - public DossierAttributes setDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttributes dossierAttributes, Auditor auditor) { + public DossierAttributes setDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttributes dossierAttributes) { accessControlService.verifyUserIsDossierOwner(dossierId); var result = dossierAttributesManagementService.setDossierAttributes(dossierId, dossierAttributes.getDossierAttributeList()); @@ -100,7 +100,7 @@ public class DossierAttributesController implements DossierAttributesResource { @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES + "')") - public DossierAttributes addOrUpdateDossierAttribute(String dossierId, DossierAttribute dossierAttribute, Auditor auditor) { + public DossierAttributes addOrUpdateDossierAttribute(String dossierId, DossierAttribute dossierAttribute) { accessControlService.verifyUserIsDossierOwner(dossierId); DossierAttribute result = dossierAttributesManagementService.addOrUpdateDossierAttribute(dossierId, dossierAttribute); @@ -110,7 +110,7 @@ public class DossierAttributesController implements DossierAttributesResource { @PreAuthorize("hasAuthority('" + READ_DOSSIER_ATTRIBUTES + "')") - public DossierAttributes getDossierAttributes(String dossierId, Auditor auditor) { + public DossierAttributes getDossierAttributes(String dossierId) { var result = dossierAttributesManagementService.getDossierAttributes(dossierId); auditor.audit(AuditCategory.DOSSIER.name(), "Got dossier attributes.", AuditDetail.DOSSIER_ID, dossierId); @@ -120,7 +120,7 @@ public class DossierAttributesController implements DossierAttributesResource { @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_ATTRIBUTES + "')") - public void deleteDossierAttribute(String dossierId, String dossierAttributeId, Auditor auditor) { + public void deleteDossierAttribute(String dossierId, String dossierAttributeId) { accessControlService.verifyUserIsDossierOwner(dossierId); dossierAttributesManagementService.deleteDossierAttribute(dossierId, dossierAttributeId); 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 41d2dd6db..40d3de720 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 @@ -52,6 +52,7 @@ public class DossierController implements DossierResource { private static final Set VALID_MEMBER_ROLES = Set.of(ApplicationRoles.RED_USER_ROLE, ApplicationRoles.RED_MANAGER_ROLE); + private final Auditor auditor; private final DossierManagementService dossierManagementService; private final UserService userService; private final FileStatusManagementService fileStatusManagementService; @@ -82,7 +83,7 @@ public class DossierController implements DossierResource { @Override @PreAuthorize("hasAuthority('" + ADD_UPDATE_DOSSIER + "') && (#dossierRequest.dossierId == null || hasPermission(#dossierRequest.dossierId, 'Dossier', 'ACCESS_OBJECT') )") - public ResponseEntity createDossierOrUpdateDossier(@RequestBody DossierRequest dossierRequest, Auditor auditor) { + public ResponseEntity createDossierOrUpdateDossier(@RequestBody DossierRequest dossierRequest) { if (dossierRequest.getDossierId() != null && dossierRequest.getOwnerId() == null) { throw new BadRequestException("Owner must be set for any update"); @@ -321,7 +322,7 @@ public class DossierController implements DossierResource { @PreAuthorize("hasAuthority('" + DELETE_DOSSIER + "') && hasPermission(#dossierId, 'Dossier', 'ACCESS_OBJECT')") - public void deleteDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId, Auditor auditor) { + public void deleteDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId) { var dossierToBeDeleted = dossierACLService.enhanceDossierWithACLData(dossierManagementService.getDossierById(dossierId, true, false)); @@ -404,7 +405,7 @@ public class DossierController implements DossierResource { @PreAuthorize("hasAuthority('" + ARCHIVE_DOSSIER + "')") @PreFilter("hasPermission(filterObject, 'Dossier', 'ACCESS_OBJECT')") - public void archiveDossiers(@RequestBody Set dossierIds, Auditor auditor) { + public void archiveDossiers(@RequestBody Set dossierIds) { for (String dossierId : dossierIds) { accessControlService.verifyUserIsDossierOwner(dossierId); @@ -418,7 +419,7 @@ public class DossierController implements DossierResource { @PreAuthorize("hasAuthority('" + UNARCHIVE_DOSSIER + "')") - public void unarchiveDossiers(@RequestBody Set dossierIds, Auditor auditor) { + public void unarchiveDossiers(@RequestBody Set dossierIds) { dossierManagementService.unarchiveDossiers(dossierIds); @@ -430,7 +431,7 @@ public class DossierController implements DossierResource { @PreAuthorize("hasAuthority('" + DELETE_DOSSIER + "')") @PreFilter("hasPermission(filterObject, 'Dossier', 'ACCESS_OBJECT')") - public void hardDeleteDossiers(@RequestParam(DOSSIER_ID_PARAM) Set dossierIds, Auditor auditor) { + public void hardDeleteDossiers(@RequestParam(DOSSIER_ID_PARAM) Set dossierIds) { for (String dossierId : dossierIds) { accessControlService.verifyUserIsDossierOwner(dossierId); @@ -445,7 +446,7 @@ public class DossierController implements DossierResource { @PreAuthorize("hasAuthority('" + DELETE_DOSSIER + "')") @PreFilter("hasPermission(filterObject, 'Dossier', 'ACCESS_OBJECT')") - public void undeleteDossiers(@RequestBody Set dossierIds, Auditor auditor) { + public void undeleteDossiers(@RequestBody Set dossierIds) { dossierManagementService.undeleteDossiers(dossierIds); for (String dossierId : dossierIds) { 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 40304cb67..fbf9ded05 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 @@ -6,7 +6,6 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Confl 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.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.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; @@ -44,16 +43,16 @@ import static com.iqser.red.service.persistence.management.v1.processor.service. @RequiredArgsConstructor public class DossierTemplateController implements DossierTemplateResource { + private final Auditor auditor; private final DossierTemplateManagementService dossierTemplateManagementService; private final DossierTemplateStatsService dossierTemplateStatsService; private final DossierManagementService dossierManagementService; private final DossierACLService dossierACLService; - private final UserService userService; @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_TEMPLATES + "')") - public DossierTemplateModel createOrUpdateDossierTemplate(@RequestBody DossierTemplateModel dossierTemplateModel, Auditor auditor) { + public DossierTemplateModel createOrUpdateDossierTemplate(@RequestBody DossierTemplateModel dossierTemplateModel) { String userId = KeycloakSecurity.getUserId(); dossierTemplateModel.setCreatedBy(userId); @@ -94,7 +93,7 @@ public class DossierTemplateController implements DossierTemplateResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_TEMPLATES + "')") - public void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, Auditor auditor) { + public void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { String userId = KeycloakSecurity.getUserId(); @@ -111,7 +110,7 @@ public class DossierTemplateController implements DossierTemplateResource { @Override @PreAuthorize("hasAuthority('" + READ_DOSSIER_TEMPLATES + "')") - public void deleteDossierTemplates(@RequestBody List dossierTemplateIds, Auditor auditor) { + public void deleteDossierTemplates(@RequestBody List dossierTemplateIds) { String userId = KeycloakSecurity.getUserId(); List errorIds = new ArrayList<>(); @@ -140,8 +139,7 @@ public class DossierTemplateController implements DossierTemplateResource { @Override @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_TEMPLATES + "')") public DossierTemplateModel cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest, - Auditor auditor) { + @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest) { try { @@ -185,7 +183,7 @@ public class DossierTemplateController implements DossierTemplateResource { @PreAuthorize("hasAuthority('" + READ_DOSSIER_TEMPLATES + "')") - public DownloadResponse prepareExportDownload(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, Auditor auditor) { + public DownloadResponse prepareExportDownload(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { try { ExportDownloadRequest request = ExportDownloadRequest.builder().dossierTemplateId(dossierTemplateId).userId(KeycloakSecurity.getUserId()).build(); @@ -204,8 +202,7 @@ public class DossierTemplateController implements DossierTemplateResource { @PreAuthorize("hasAuthority('" + WRITE_DOSSIER_TEMPLATES + "')") public DossierTemplateModel importDossierTemplate(@RequestPart(name = "file") MultipartFile file, @RequestParam(value = DOSSIER_TEMPLATE_ID, required = false) String dossierTemplateId, - @RequestParam(value = "updateExistingDossierTemplate", required = false, defaultValue = "false") boolean updateExistingDossierTemplate, - Auditor auditor) { + @RequestParam(value = "updateExistingDossierTemplate", required = false, defaultValue = "false") boolean updateExistingDossierTemplate) { String originalFileName = file.getOriginalFilename(); if (originalFileName == null || originalFileName.isEmpty()) { 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/DownloadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java index 32db80957..f6c3452e1 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java @@ -52,6 +52,7 @@ public class DownloadController implements DownloadResource { private static final Pattern COLOR_PATTERN = Pattern.compile("^#[\\da-f]{6,6}$"); + private final Auditor auditor; private final DossierManagementService dossierService; private final FileStatusService fileStatusService; private final DownloadService downloadService; @@ -67,7 +68,7 @@ public class DownloadController implements DownloadResource { @PreAuthorize("hasAuthority('" + PROCESS_DOWNLOAD + "')") - public DownloadResponse prepareDownload(@RequestBody PrepareDownloadRequest request, Auditor auditor) { + public DownloadResponse prepareDownload(@RequestBody PrepareDownloadRequest request) { // check the user is non-member or reviewer accessControlService.verifyUserIsDossierOwnerOrApprover(request.getDossierId()); @@ -79,7 +80,7 @@ public class DownloadController implements DownloadResource { @PreAuthorize("hasAuthority('" + PROCESS_DOWNLOAD + "')") - public DownloadResponse prepareDownload(@RequestBody PrepareDownloadWithOptionRequest request, Auditor auditor) { + public DownloadResponse prepareDownload(@RequestBody PrepareDownloadWithOptionRequest request) { validateDossierId(request.getDossierId()); @@ -153,7 +154,7 @@ public class DownloadController implements DownloadResource { @Override @PreAuthorize("hasAuthority('" + PROCESS_DOWNLOAD + "')") - public void deleteDownloadStatus(@RequestBody RemoveDownloadRequest removeDownloadRequest, Auditor auditor) { + public void deleteDownloadStatus(@RequestBody RemoveDownloadRequest removeDownloadRequest) { removeDownloadRequest.getStorageIds().forEach(storageId -> { downloadService.deleteDownloadStatus(JSONPrimitive.of(storageId)); @@ -186,8 +187,7 @@ public class DownloadController implements DownloadResource { @PreAuthorize("hasAuthority('" + PROCESS_DOWNLOAD + "')") public CompletableFuture> downloadFile(@RequestParam(STORAGE_ID) String storageId, - @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, - Auditor auditor) { + @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline) { var userId = KeycloakSecurity.getUserId(); var tenantId = TenantContext.getTenantId(); @@ -195,7 +195,7 @@ public class DownloadController implements DownloadResource { TenantContext.setTenantId(tenantId); var downloadStatus = getDownloadStatus(storageId, userId); - var fileDownloadStream = getFileForDownload(storageId, auditor); + var fileDownloadStream = getFileForDownload(storageId); return getResponseEntity(inline, fileDownloadStream, downloadStatus.getFilename(), MediaType.parseMediaType("application/zip"), downloadStatus.getFileSize()); }); @@ -211,7 +211,7 @@ public class DownloadController implements DownloadResource { } - private InputStreamResource getFileForDownload(String storageId, Auditor auditor) { + private InputStreamResource getFileForDownload(String storageId) { try { var response = storageService.getObject(TenantContext.getTenantId(), storageId); @@ -252,14 +252,14 @@ public class DownloadController implements DownloadResource { @Override public CompletableFuture> downloadFileUsingOTT(@PathVariable(OTT) String oneTimeToken, @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, - @RequestParam(value = "tenantId") String tenantId, Auditor auditor) { + @RequestParam(value = "tenantId") String tenantId) { return CompletableFuture.supplyAsync(() -> { TenantContext.setTenantId(tenantId); log.debug("downloadFileUsingOTT {}", oneTimeToken); var token = oneTimeTokenDownloadService.getToken(oneTimeToken); var downloadStatus = getDownloadStatus(token.getStorageId(), token.getUserId()); - var fileDownloadStream = getFileForDownload(token.getStorageId(), auditor); + var fileDownloadStream = getFileForDownload(token.getStorageId()); TenantContext.clear(); 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/FileAttributesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileAttributesController.java index ed8a6d0ee..b5c3c5602 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileAttributesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileAttributesController.java @@ -35,6 +35,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac @RequiredArgsConstructor public class FileAttributesController implements FileAttributesResource { + private final Auditor auditor; private final FileAttributesManagementService fileAttributesManagementService; private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; private final FileStatusService fileStatusService; @@ -43,7 +44,7 @@ public class FileAttributesController implements FileAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES_CONFIG + "')") - public FileAttributesConfig setFileAttributesConfig(String dossierTemplateId, FileAttributesConfig fileAttributesConfig, Auditor auditor) { + public FileAttributesConfig setFileAttributesConfig(String dossierTemplateId, FileAttributesConfig fileAttributesConfig) { if (StringUtils.isEmpty(fileAttributesConfig.getEncoding()) || !encodingList.contains(fileAttributesConfig.getEncoding().trim())) { throw new BadRequestException("Invalid encoding setting"); @@ -66,7 +67,7 @@ public class FileAttributesController implements FileAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES_CONFIG + "')") - public FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttribute, Auditor auditor) { + public FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttribute) { var result = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, MagicConverter.convert(fileAttribute, FileAttributeConfigEntity.class)); auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "File attributes added/updated", @@ -79,7 +80,7 @@ public class FileAttributesController implements FileAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES_CONFIG + "')") - public void deleteFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId, Auditor auditor) { + public void deleteFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId) { fileAttributeConfigPersistenceService.deleteFileAttribute(fileAttributeId); auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "File attributes removed", @@ -89,7 +90,7 @@ public class FileAttributesController implements FileAttributesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES_CONFIG + "')") - public void deleteFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributeIds, Auditor auditor) { + public void deleteFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributeIds) { fileAttributeConfigPersistenceService.deleteFileAttributes(fileAttributeIds); fileAttributeIds.forEach(fileAttributeId -> auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "File attribute removed", @@ -118,7 +119,7 @@ public class FileAttributesController implements FileAttributesResource { @PreAuthorize("hasAuthority('" + WRITE_FILE_ATTRIBUTES + "')") - public void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody FileAttributes fileAttributes, Auditor auditor) { + public void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody FileAttributes fileAttributes) { var file = fileStatusService.getStatus(fileId); 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/FileManagementController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java index fd339ff78..db563ce96 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java @@ -52,6 +52,7 @@ public class FileManagementController implements FileManagementResource { private static final String DOWNLOAD_HEADER_NAME = "Content-Disposition"; + private final Auditor auditor; private final FileService fileService; private final AccessControlService accessControlService; private final PDFTronClient pdfTronClient; @@ -65,7 +66,7 @@ public class FileManagementController implements FileManagementResource { @Timed @Override @PreAuthorize("hasAuthority('" + DELETE_FILE + "')") - public void deleteFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, Auditor auditor) { + public void deleteFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId) { fileService.deleteFile(dossierId, fileId); auditor.audit(AuditCategory.DOSSIER.name(), "File has been deleted.", @@ -76,7 +77,7 @@ public class FileManagementController implements FileManagementResource { @Timed @Override @PreAuthorize("hasAuthority('" + DELETE_FILE + "')") - public void deleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, Auditor auditor) { + public void deleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds) { List errorIds = new ArrayList<>(); for (String fileId : fileIds) { @@ -154,7 +155,7 @@ public class FileManagementController implements FileManagementResource { @Override @PreAuthorize("hasAuthority('" + DELETE_FILE + "')") - public void hardDeleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(FILE_IDS) Set fileIds, Auditor auditor) { + public void hardDeleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(FILE_IDS) Set fileIds) { for (String fileId : fileIds) { if (fileStatusManagementService.getFileStatus(fileId).getAssignee() != null) { @@ -169,7 +170,7 @@ public class FileManagementController implements FileManagementResource { @Override @PreAuthorize("hasAuthority('" + DELETE_FILE + "')") - public void restoreFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, Auditor auditor) { + public void restoreFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds) { verifyUserIsDossierOwnerOrApproverOrAssignedReviewer(dossierId, fileIds); fileService.undeleteFiles(dossierId, fileIds); @@ -180,7 +181,7 @@ public class FileManagementController implements FileManagementResource { @Override @PreAuthorize("hasAuthority('" + ROTATE_PAGE + "')") - public void rotatePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RotatePagesRequest rotatePagesRequest, Auditor auditor) { + public void rotatePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RotatePagesRequest rotatePagesRequest) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsReviewer(dossierId, fileId); 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/LegalBasisMappingController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LegalBasisMappingController.java index b3b09abb3..5746a6594 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LegalBasisMappingController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LegalBasisMappingController.java @@ -23,11 +23,12 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac @RequiredArgsConstructor public class LegalBasisMappingController implements LegalBasisMappingResource { + private final Auditor auditor; private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; @Override @PreAuthorize("hasAuthority('" + WRITE_LEGAL_BASIS + "')") - public void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames, Auditor auditor) { + public void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames) { legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId, legalBasisNames); auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Legal basis mapping has been changed.", @@ -37,7 +38,7 @@ public class LegalBasisMappingController implements LegalBasisMappingResource { @Override @PreAuthorize("hasAuthority('" + WRITE_LEGAL_BASIS + "')") - public void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis, Auditor auditor) { + public void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis) { legalBasisMappingPersistenceService.addOrUpdateLegalBasis(dossierTemplateId, legalBasis); auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Legal basis mapping has been changed.", @@ -46,7 +47,7 @@ public class LegalBasisMappingController implements LegalBasisMappingResource { @PreAuthorize("hasAuthority('" + WRITE_LEGAL_BASIS + "')") - public void setLegalBasisMapping(@RequestBody List legalBasisMapping, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, Auditor auditor) { + public void setLegalBasisMapping(@RequestBody List legalBasisMapping, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, legalBasisMapping); auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), "Legal basis mapping has been changed.", 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/LicenseReportController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LicenseReportController.java index 01657a036..cf5deec66 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LicenseReportController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LicenseReportController.java @@ -19,12 +19,14 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac public class LicenseReportController implements LicenseReportResource { private static final String LICENSE_AUDIT_KEY = "License"; + + private final Auditor auditor; private final LicenseReportService licenseReportService; @Override @PreAuthorize("hasAuthority('" + READ_LICENSE_REPORT + "')") - public LicenseReport getReport(@RequestBody LicenseReportRequest reportRequest, Auditor auditor) { + public LicenseReport getReport(@RequestBody LicenseReportRequest reportRequest) { LicenseReport licenseReport = licenseReportService.getLicenseReport(reportRequest); auditor.audit(AuditCategory.LICENSE.name(), "License report has been viewed.", AuditDetail.OBJECT_ID, LICENSE_AUDIT_KEY); 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 d97e43c4f..ac9d64160 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 @@ -35,6 +35,7 @@ import static com.knecon.fforesight.auditor.model.Detail.d; @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) public class ManualRedactionController implements ManualRedactionResource { + Auditor auditor; ManualRedactionService manualRedactionService; ManualRedactionUndoService manualRedactionUndoService; DossierManagementService dossierManagementService; @@ -59,8 +60,7 @@ public class ManualRedactionController implements ManualRedactionResource { public void undoComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, - @PathVariable(COMMENT_ID) String commentId, - Auditor auditor) { + @PathVariable(COMMENT_ID) String commentId) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); @@ -93,8 +93,7 @@ public class ManualRedactionController implements ManualRedactionResource { public CommentResponse addComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, - @RequestBody AddCommentRequestModel addCommentRequest, - Auditor auditor) { + @RequestBody AddCommentRequestModel addCommentRequest) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); @@ -115,8 +114,7 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List addRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set addRedactionRequests, - Auditor auditor) { + @RequestBody Set addRedactionRequests) { var dossier = dossierManagementService.getDossierById(dossierId, false, false); @@ -140,8 +138,7 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List removeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set removeRedactionRequests, - Auditor auditor) { + @RequestBody Set removeRedactionRequests) { var dossier = dossierManagementService.getDossierById(dossierId, false, false); accessControlService.verifyFileIsNotApproved(dossierId, fileId); @@ -164,8 +161,7 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List forceRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set forceRedactionRequests, - Auditor auditor) { + @RequestBody Set forceRedactionRequests) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); @@ -183,8 +179,7 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List legalBasisChangeBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set legalBasisChangeRequests, - Auditor auditor) { + @RequestBody Set legalBasisChangeRequests) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); @@ -203,8 +198,7 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List recategorizeBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set recategorizationRequests, - Auditor auditor) { + @RequestBody Set recategorizationRequests) { var dossier = dossierManagementService.getDossierById(dossierId, false, false); accessControlService.verifyFileIsNotApproved(dossierId, fileId); @@ -224,8 +218,7 @@ public class ManualRedactionController implements ManualRedactionResource { @PreAuthorize("hasAuthority('" + DO_MANUAL_REDACTION + "')") public List resizeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set resizeRedactionRequests, - Auditor auditor) { + @RequestBody Set resizeRedactionRequests) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsMemberOrApprover(dossierId); 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/RSSController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java index d64d6020c..e9d524588 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java @@ -28,6 +28,7 @@ import static com.knecon.fforesight.auditor.model.Detail.d; @RequiredArgsConstructor public class RSSController implements RSSResource { + private final Auditor auditor; private final RssReportClient rssReportClient; private final ComponentOverrideService componentOverrideService; @@ -62,7 +63,7 @@ public class RSSController implements RSSResource { @PreAuthorize("hasAuthority('" + GET_RSS + "')") - public void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides, Auditor auditor) { + public void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides) { componentOverrideService.addOverrides(dossierId, fileId, componentsOverrides); @@ -85,8 +86,7 @@ public class RSSController implements RSSResource { @PreAuthorize("hasAuthority('" + GET_RSS + "')") public void revertOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody RevertOverrideRequest revertOverrideRequest, - Auditor auditor) { + @RequestBody RevertOverrideRequest revertOverrideRequest) { var rssReport = rssReportClient.getDetailedRSS(dossierId, fileId); var components = rssReport.getFiles().get(0).getResult(); 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/ReanalysisController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReanalysisController.java index b29274585..b0c272d69 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReanalysisController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReanalysisController.java @@ -32,12 +32,13 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac @RequiredArgsConstructor public class ReanalysisController implements ReanalysisResource { + private final Auditor auditor; private final ReanalysisService reanalysisService; private final FileStatusManagementService fileStatusManagementService; private final AccessControlService accessControlService; @PreAuthorize("hasAuthority('" + REANALYZE_DOSSIER + "')") - public void reanalyzeDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, Auditor auditor) { + public void reanalyzeDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force) { try { accessControlService.verifyUserHasViewPermissions(dossierId); @@ -55,8 +56,7 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + REANALYZE_FILE + "')") public void reanalyzeFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, - Auditor auditor) { + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force) { reanalysisService.reanalyzeFiles(dossierId, Sets.newHashSet(fileId), force); auditor.audit(AuditCategory.DOSSIER.name(), "Reanalyse file was triggered", AuditDetail.DOSSIER_ID, dossierId); @@ -67,8 +67,7 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + REANALYZE_FILE + "')") public void reanalyzeFilesForDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, - Auditor auditor) { + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force) { reanalysisService.reanalyzeFiles(dossierId, new HashSet<>(fileIds), force); @@ -80,7 +79,7 @@ public class ReanalysisController implements ReanalysisResource { @Override @PreAuthorize("hasAuthority('" + REANALYZE_DOSSIER + "')") - public void ocrDossier(@PathVariable(DOSSIER_ID) String dossierId, Auditor auditor) { + public void ocrDossier(@PathVariable(DOSSIER_ID) String dossierId) { try { accessControlService.verifyUserHasViewPermissions(dossierId); @@ -100,7 +99,7 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + REANALYZE_FILE + "')") public void ocrFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, Auditor auditor) { + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force) { validateOCR(dossierId, fileId); reanalysisService.ocrFile(dossierId, fileId, force); @@ -111,7 +110,7 @@ public class ReanalysisController implements ReanalysisResource { @Override @PreAuthorize("hasAuthority('" + REANALYZE_FILE + "')") - public void ocrFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, Auditor auditor) { + public void ocrFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds) { fileIds.forEach(fileId -> validateOCR(dossierId, fileId)); reanalysisService.ocrFiles(dossierId, fileIds); @@ -122,8 +121,7 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_FILE + "')") public void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis, - Auditor auditor) { + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis) { accessControlService.verifyUserIsReviewer(dossierId, fileId); fileStatusManagementService.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis); @@ -139,8 +137,7 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_FILE + "')") public void toggleExclusion(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = "false") boolean excluded, - Auditor auditor) { + @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = "false") boolean excluded) { var status = fileStatusManagementService.getFileStatus(fileId); if (!(status.getAssignee() == null && status.isExcluded())) { // Needed to include documents after 3.0 migration. @@ -156,13 +153,12 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_FILE + "')") public void toggleAutomaticAnalysisForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, - @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis, - Auditor auditor) { + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis) { List errorIds = new ArrayList<>(); for (var fileId : fileIds) { try { - this.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis, auditor); + this.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis); } catch (FeignException e) { errorIds.add(fileId); } @@ -175,13 +171,12 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_FILE + "')") public void toggleExclusionForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, - @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = "false") boolean excluded, - Auditor auditor) { + @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = "false") boolean excluded) { List errorIds = new ArrayList<>(); for (var fileId : fileIds) { try { - this.toggleExclusion(dossierId, fileId, excluded, auditor); + this.toggleExclusion(dossierId, fileId, excluded); } catch (FeignException e) { errorIds.add(fileId); } @@ -196,8 +191,7 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_PAGES + "')") public void excludePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody PageExclusionRequest pageExclusionRequest, - Auditor auditor) { + @RequestBody PageExclusionRequest pageExclusionRequest) { accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); @@ -216,7 +210,7 @@ public class ReanalysisController implements ReanalysisResource { @Override @PreAuthorize("hasAuthority('" + EXCLUDE_INCLUDE_PAGES + "')") - public void includePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageInclusionRequest, Auditor auditor) { + public void includePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageInclusionRequest) { accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); @@ -235,8 +229,7 @@ public class ReanalysisController implements ReanalysisResource { @PreAuthorize("hasAuthority('" + REINDEX + "')") public void reindex(@RequestParam(value = "dossierId", required = false) String dossierId, @RequestParam(value = "dropIndex", required = false, defaultValue = FALSE) boolean dropIndex, - @RequestBody List fileIds, - Auditor auditor) { + @RequestBody List fileIds) { reanalysisService.reindex(dossierId, dropIndex, new HashSet<>(fileIds)); 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 050d57c85..eada57fec 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 @@ -50,6 +50,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.service. @RequiredArgsConstructor public class ReportTemplateController implements ReportTemplateResource { + private final Auditor auditor; private final ReportTemplatePlaceholderClient reportTemplatePlaceholderClient; private final PlaceholderClient placeholderClient; private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; @@ -78,8 +79,7 @@ public class ReportTemplateController implements ReportTemplateResource { public ReportTemplate uploadTemplate(@RequestPart(name = "file") MultipartFile file, @PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(value = MULTI_FILE_REPORT, required = false, defaultValue = "false") boolean multiFileReport, - @RequestParam(value = ACTIVE_BY_DEFAULT, required = false, defaultValue = "false") boolean activeByDefault, - Auditor auditor) { + @RequestParam(value = ACTIVE_BY_DEFAULT, required = false, defaultValue = "false") boolean activeByDefault) { try { if (file.getOriginalFilename() != null) { @@ -146,7 +146,7 @@ public class ReportTemplateController implements ReportTemplateResource { @Override @PreAuthorize("hasAuthority('" + DELETE_REPORT_TEMPLATE + "')") - public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId, Auditor auditor) { + public void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId) { var storageId = reportTemplatePersistenceService.find(templateId).getStorageId(); storageService.deleteObject(TenantContext.getTenantId(), storageId); 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/RulesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java index 10588aaa2..219a7a8ba 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java @@ -41,12 +41,13 @@ public class RulesController implements RulesResource { private static final String DOWNLOAD_FILE_NAME = "rules.drl"; + private final Auditor auditor; private final RulesPersistenceService rulesPersistenceService; private final RulesValidationService rulesValidationService; @Override @PreAuthorize("hasAuthority('" + WRITE_RULES + "')") - public ResponseEntity upload(@RequestBody RulesUploadRequest rules, Auditor auditor) { + public ResponseEntity upload(@RequestBody RulesUploadRequest rules) { DroolsSyntaxValidation droolsSyntaxValidation = rulesValidationService.validateRules(rules.getRuleFileType(), rules.getRules()); if (!droolsSyntaxValidation.isCompiled()) { @@ -85,9 +86,9 @@ public class RulesController implements RulesResource { @Override @PreAuthorize("hasAuthority('" + WRITE_RULES + "')") - public ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestPart(name = "file") MultipartFile file, Auditor auditor) { + public ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestPart(name = "file") MultipartFile file) { - return uploadFile(dossierTemplateId, RuleFileType.ENTITY, file, auditor); + return uploadFile(dossierTemplateId, RuleFileType.ENTITY, file); } @@ -95,11 +96,10 @@ public class RulesController implements RulesResource { @PreAuthorize("hasAuthority('" + WRITE_RULES + "')") public ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @PathVariable(RULE_FILE_TYPE_PARAMETER_NAME) RuleFileType ruleFileType, - @RequestPart(name = "file") MultipartFile file, - Auditor auditor) { + @RequestPart(name = "file") MultipartFile file) { try { - return upload(new RulesUploadRequest(new String(file.getBytes(), StandardCharsets.UTF_8), dossierTemplateId, ruleFileType), auditor); + return upload(new RulesUploadRequest(new String(file.getBytes(), StandardCharsets.UTF_8), dossierTemplateId, ruleFileType)); } catch (IOException e) { throw new FileUploadException("Could not upload file.", 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/StatusController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java index 9cb6c0e25..ade2c0b4e 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java @@ -48,6 +48,8 @@ public class StatusController implements StatusResource { private static final String DOSSIER_ID = "dossierId"; private static final String FILE_ID = "fileId"; private static final String FILE_NAME = "fileName"; + + private final Auditor auditor; private final FileStatusManagementService fileStatusManagementService; private final UserService userService; private final DossierManagementService dossierManagementService; @@ -146,8 +148,7 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_REVIEWER + "')") public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(name = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - Auditor auditor) { + @RequestParam(name = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { accessControlService.verifyUserIsMemberOrApprover(dossierId); @@ -216,8 +217,7 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_REVIEWER + "')") public void setStatusUnderReview(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - Auditor auditor) { + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { var fileStatus = fileStatusManagementService.getFileStatus(fileId); @@ -241,8 +241,7 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_STATUS_UNDER_APPROVAL + "')") public void setStatusUnderApproval(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(name = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - Auditor auditor) { + @RequestParam(name = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { var fileStatus = fileStatusManagementService.getFileStatus(fileId); @@ -265,7 +264,7 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_STATUS_APPROVED + "')") - public void setStatusApproved(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, Auditor auditor) { + public void setStatusApproved(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId) { accessControlService.verifyUserIsApprover(dossierId); setStatusApprovedForFile(dossierId, fileId); @@ -291,10 +290,9 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_REVIEWER + "')") public void setAssigneeForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - @RequestBody List fileIds, - Auditor auditor) { + @RequestBody List fileIds) { - fileIds.forEach(fileId -> setCurrentFileAssignee(dossierId, fileId, assigneeId, auditor)); + fileIds.forEach(fileId -> setCurrentFileAssignee(dossierId, fileId, assigneeId)); } @@ -302,10 +300,9 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_REVIEWER + "')") public void setStatusUnderReviewForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - Auditor auditor) { + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { - fileIds.forEach(fileId -> setStatusUnderReview(dossierId, fileId, assigneeId, auditor)); + fileIds.forEach(fileId -> setStatusUnderReview(dossierId, fileId, assigneeId)); } @@ -334,10 +331,9 @@ public class StatusController implements StatusResource { @PreAuthorize("hasAuthority('" + SET_STATUS_UNDER_APPROVAL + "')") public void setStatusUnderApprovalForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - Auditor auditor) { + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { - fileIds.forEach(fileId -> setStatusUnderApproval(dossierId, fileId, assigneeId, auditor)); + fileIds.forEach(fileId -> setStatusUnderApproval(dossierId, fileId, assigneeId)); } @@ -358,13 +354,13 @@ public class StatusController implements StatusResource { @Override @PreAuthorize("hasAuthority('" + SET_STATUS_APPROVED + "')") - public void setStatusApprovedForList(String dossierId, List fileIds, Auditor auditor) { + public void setStatusApprovedForList(String dossierId, List fileIds) { accessControlService.verifyUserIsApprover(dossierId); dossierManagementService.getDossierById(dossierId, false, false); - fileIds.forEach(fileId -> setStatusApproved(dossierId, fileId, auditor)); + fileIds.forEach(fileId -> setStatusApproved(dossierId, fileId)); } 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/UploadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java index b222aad4f..02a8ccccf 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java @@ -44,6 +44,7 @@ public class UploadController implements UploadResource { private static final List VALID_FILE_EXTENSIONS = List.of("pdf", "docx", "doc", "xls", "xlsx", "ppt", "pptx"); + private final Auditor auditor; private final UploadService uploadService; private final ReanalysisService reanalysisService; private final AccessControlService accessControlService; @@ -83,8 +84,7 @@ public class UploadController implements UploadResource { public void importRedactions(@RequestPart(name = "file") MultipartFile file, @PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = "pageInclusionRequest", required = false) Set pageInclusionRequest, - Auditor auditor) { + @RequestParam(value = "pageInclusionRequest", required = false) Set pageInclusionRequest) { accessControlService.verifyFileIsNotApproved(dossierId, fileId); accessControlService.verifyUserIsReviewerOrApprover(dossierId, fileId); 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/WatermarkController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/WatermarkController.java index de89cacd1..4a936f773 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/WatermarkController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/WatermarkController.java @@ -25,11 +25,12 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac @RequiredArgsConstructor public class WatermarkController implements WatermarkResource { + private final Auditor auditor; private final WatermarkService watermarkService; @Override @PreAuthorize("hasAuthority('" + WRITE_WATERMARK + "')") - public WatermarkModel saveWatermark(@RequestBody WatermarkModel watermark, Auditor auditor) { + public WatermarkModel saveWatermark(@RequestBody WatermarkModel watermark) { String userId = KeycloakSecurity.getUserId(); watermark.setCreatedBy(userId); @@ -57,7 +58,7 @@ public class WatermarkController implements WatermarkResource { @Override @PreAuthorize("hasAuthority('" + WRITE_WATERMARK + "')") - public void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId, Auditor auditor) { + public void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId) { String dossierTemplateId = watermarkService.getWatermark(watermarkId).getDossierTemplateId(); watermarkService.deleteWatermark(watermarkId); diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java index 90458ebb6..ffe0e2218 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DictionaryResource.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -71,8 +69,7 @@ public interface DictionaryResource { @RequestBody List entries, @RequestParam(name = REMOVE_CURRENT_REQUEST_PARAM, defaultValue = "false", required = false) boolean removeCurrent, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -83,8 +80,7 @@ public interface DictionaryResource { @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List entries, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -95,8 +91,7 @@ public interface DictionaryResource { @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @PathVariable(ENTRY_PARAMETER_NAME) String entry, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -105,15 +100,14 @@ public interface DictionaryResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully updated the colors, hint and caseInsensitive of entry type"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "The entry type is not found.")}) void updateType(@PathVariable(TYPE_PARAMETER_NAME) String type, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, - @RequestBody UpdateTypeValue typeValue, - @Parameter(hidden = true) Auditor auditor); + @RequestBody UpdateTypeValue typeValue); @ResponseStatus(HttpStatus.OK) @PostMapping(value = TYPE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Creates entry type with colors, hint and caseInsensitive", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully created the entry type with colors, hint " + "and caseInsensitive"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "409", description = "The entry type already exists, could not be added again.")}) - TypeValue addType(@RequestBody CreateTypeValue typeValue, @Parameter(hidden = true) Auditor auditor); + TypeValue addType(@RequestBody CreateTypeValue typeValue); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -121,7 +115,7 @@ public interface DictionaryResource { @Operation(summary = "Deletes entry type", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully deleted the entry type with value and all its entries"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "The entry type is not found.")}) void deleteType(@PathVariable(TYPE_PARAMETER_NAME) String type, - @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); + @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -129,7 +123,7 @@ public interface DictionaryResource { @Operation(summary = "Deletes entry types", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully deleted the entry types with value and all their entries"), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "The entry type is not found.")}) void deleteTypes(@RequestBody List types, - @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); + @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); @GetMapping(value = TYPE_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) @@ -162,8 +156,7 @@ public interface DictionaryResource { @PathVariable(TYPE_PARAMETER_NAME) String type, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestParam(value = DOSSIER_ID_PARAMETER_NAME, required = false) String dossierId, - @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = DICTIONARY_ENTRY_TYPE_PARAM, required = false, defaultValue = DEFAULT_DICTIONARY_ENTRY_TYPE) DictionaryEntryType dictionaryEntryType); /** @@ -191,7 +184,7 @@ public interface DictionaryResource { @Operation(summary = "Set system colors for redaction") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "System colors update successful."), @ApiResponse(responseCode = "400", description = "System colors request contains error.")}) @PostMapping(value = COLOR_REST_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void setColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Colors colors, @Parameter(hidden = true) Auditor auditor); + void setColors(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody Colors colors); @ResponseBody diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DigitalSignatureResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DigitalSignatureResource.java index dc4916bcb..576cdff36 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DigitalSignatureResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DigitalSignatureResource.java @@ -1,7 +1,5 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -43,21 +41,21 @@ public interface DigitalSignatureResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.NO_CONTENT) @PostMapping(value = DIGITAL_SIGNATURE_TYPE_PATH + DIGITAL_SIGNATURE_TYPE_VARIABLE) - void setActiveDigitalSignatureType(@PathVariable(DIGITAL_SIGNATURE_TYPE) DigitalSignatureType digitalSignatureType, @Parameter(hidden = true) Auditor auditor); + void setActiveDigitalSignatureType(@PathVariable(DIGITAL_SIGNATURE_TYPE) DigitalSignatureType digitalSignatureType); @Operation(summary = "Save a new digital signature used to sign PDF's", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Digital Signature Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.CREATED) @PostMapping(value = DIGITAL_SIGNATURE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DigitalSignatureViewModel saveDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel, @Parameter(hidden = true) Auditor auditor); + DigitalSignatureViewModel saveDigitalSignature(@RequestBody DigitalSignature digitalSignatureModel); @Operation(summary = "Update the digital signature used to sign PDF's", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Digital Signature Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.CREATED) @PutMapping(value = DIGITAL_SIGNATURE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - void updateDigitalSignature(@RequestBody DigitalSignatureViewModel digitalSignatureModel, @Parameter(hidden = true) Auditor auditor); + void updateDigitalSignature(@RequestBody DigitalSignatureViewModel digitalSignatureModel); @Operation(summary = "Get the current digital signature", description = "None") @@ -70,14 +68,14 @@ public interface DigitalSignatureResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.NO_CONTENT) @DeleteMapping(value = DIGITAL_SIGNATURE_PATH) - void deleteDigitalSignature(@Parameter(hidden = true) Auditor auditor); + void deleteDigitalSignature(); @Operation(summary = "Save a new digital KMS signature used to sign PDF's", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Digital Signature Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.CREATED) @PostMapping(value = DIGITAL_SIGNATURE_KMS_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature, @Parameter(hidden = true) Auditor auditor); + DigitalSignatureKmsViewModel saveDigitalSignatureKms(@RequestBody DigitalSignatureKms digitalSignature); @Operation(summary = "Get the current digital KMS signature", description = "None") @@ -90,6 +88,6 @@ public interface DigitalSignatureResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.NO_CONTENT) @DeleteMapping(value = DIGITAL_SIGNATURE_KMS_PATH) - void deleteDigitalSignatureKms(@Parameter(hidden = true) Auditor auditor); + void deleteDigitalSignatureKms(); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierAttributesResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierAttributesResource.java index 5207114fe..2abaa7846 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierAttributesResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierAttributesResource.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -51,7 +49,7 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PutMapping(value = DOSSIER_ATTRIBUTES_PATH + CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributesConfig setDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributesConfig dossierAttributesConfig, @Parameter(hidden = true) Auditor auditor); + DossierAttributesConfig setDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributesConfig dossierAttributesConfig); @ResponseBody @@ -59,7 +57,7 @@ public interface DossierAttributesResource { @Operation(summary = "Add or update a dossier attribute in base configuration.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributeConfig addOrUpdateDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributeConfig dossierAttributes, @Parameter(hidden = true) Auditor auditor); + DossierAttributeConfig addOrUpdateDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributeConfig dossierAttributes); @ResponseBody @@ -67,7 +65,7 @@ public interface DossierAttributesResource { @Operation(summary = "Delete a specific dossier attribute.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "NO_CONTENT")}) @DeleteMapping(value = DOSSIER_ATTRIBUTES_PATH + CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + DOSSIER_ATTRIBUTE_ID_PATH) - void deleteDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId, @Parameter(hidden = true) Auditor auditor); + void deleteDossierAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId); @ResponseBody @@ -75,7 +73,7 @@ public interface DossierAttributesResource { @Operation(summary = "Bulk delete dossier attributes.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "NO_CONTENT")}) @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + CONFIG_PATH + DELETE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE) - void deleteDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(DOSSIER_ATTRIBUTE_IDS) List dossierAttributeIds, @Parameter(hidden = true) Auditor auditor); + void deleteDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(DOSSIER_ATTRIBUTE_IDS) List dossierAttributeIds); @ResponseStatus(HttpStatus.OK) @@ -90,7 +88,7 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + SET_PATH + DOSSIER_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributes setDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttributes dossierAttributes, @Parameter(hidden = true) Auditor auditor); + DossierAttributes setDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttributes dossierAttributes); @ResponseBody @@ -99,7 +97,7 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = DOSSIER_ATTRIBUTES_PATH + UPDATE_PATH + DOSSIER_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributes addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttribute dossierAttribute, @Parameter(hidden = true) Auditor auditor); + DossierAttributes addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody DossierAttribute dossierAttribute); @ResponseStatus(HttpStatus.OK) @@ -107,7 +105,7 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @GetMapping(value = DOSSIER_ATTRIBUTES_PATH + DOSSIER_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributes getDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId, @Parameter(hidden = true) Auditor auditor); + DossierAttributes getDossierAttributes(@PathVariable(DOSSIER_ID) String dossierId); @ResponseBody @@ -116,6 +114,6 @@ public interface DossierAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "NO_CONTENT")}) @DeleteMapping(value = DOSSIER_ATTRIBUTES_PATH + SET_PATH + DOSSIER_ID_PATH_VARIABLE + DOSSIER_ATTRIBUTE_ID_PATH) - void deleteDossierAttribute(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId, @Parameter(hidden = true) Auditor auditor); + void deleteDossierAttribute(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierResource.java index 2ecaa30e6..c71fe11c8 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierResource.java @@ -4,8 +4,6 @@ import java.time.OffsetDateTime; import java.util.List; import java.util.Set; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -69,14 +67,14 @@ public interface DossierResource { @PostMapping(value = DOSSIER_REST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Creates or updates a dossier.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "Successfully saved the dossier."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID provided or attempted to change dossier-template for a dossier with files."), @ApiResponse(responseCode = "409", description = "Duplicate")}) - ResponseEntity createDossierOrUpdateDossier(@RequestBody DossierRequest dossier, @Parameter(hidden = true) Auditor auditor); + ResponseEntity createDossierOrUpdateDossier(@RequestBody DossierRequest dossier); @ResponseStatus(value = HttpStatus.NO_CONTENT) @DeleteMapping(value = DOSSIER_REST_PATH + DOSSIER_ID_PATH_PARAM) @Operation(summary = "Deletes an existing dossier.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully deleted the dossier."), @ApiResponse(responseCode = "404", description = "Not found")}) - void deleteDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @Parameter(hidden = true) Auditor auditor); + void deleteDossier(@PathVariable(DOSSIER_ID_PARAM) String dossierId); @ResponseStatus(value = HttpStatus.OK) @@ -136,27 +134,27 @@ public interface DossierResource { @PostMapping(value = ARCHIVE_DOSSIERS_PATH + ARCHIVE_PATH) @Operation(summary = "Archives an existing dossier.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully archived the dossier."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID entered to archive dossier."), @ApiResponse(responseCode = "403", description = "Forbidden operation while archiving."), @ApiResponse(responseCode = "404", description = "Dossier not found")}) - void archiveDossiers(@RequestBody Set dossierIds, @Parameter(hidden = true) Auditor auditor); + void archiveDossiers(@RequestBody Set dossierIds); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = ARCHIVE_DOSSIERS_PATH + UNARCHIVE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Restores archived dossiers.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully restored the dossiers."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID entered to restore dossier."), @ApiResponse(responseCode = "403", description = "Forbidden operation while restoring."), @ApiResponse(responseCode = "404", description = "Dossier not found"), @ApiResponse(responseCode = "409", description = "Conflict occurred while restoring.")}) - void unarchiveDossiers(@RequestBody Set dossierIds, @Parameter(hidden = true) Auditor auditor); + void unarchiveDossiers(@RequestBody Set dossierIds); @ResponseStatus(value = HttpStatus.NO_CONTENT) @DeleteMapping(value = DELETED_DOSSIERS_PATH + HARD_DELETE_PATH) @Operation(summary = "Hard deletes existing dossiers.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully hard deleted the dossier."), @ApiResponse(responseCode = "404", description = "Not found")}) - void hardDeleteDossiers(@RequestParam(DOSSIER_ID_PARAM) Set dossierIds, @Parameter(hidden = true) Auditor auditor); + void hardDeleteDossiers(@RequestParam(DOSSIER_ID_PARAM) Set dossierIds); @ResponseBody @PostMapping(value = DELETED_DOSSIERS_PATH + UNDELETE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Restores dossiers.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "Successfully restored the dossiers."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID entered to restore dossier."), @ApiResponse(responseCode = "403", description = "Forbidden operation while restoring."), @ApiResponse(responseCode = "409", description = "Conflict occurred while restoring.")}) - void undeleteDossiers(@RequestBody Set dossierIds, @Parameter(hidden = true) Auditor auditor); + void undeleteDossiers(@RequestBody Set dossierIds); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java index 0f24eda0d..a184e90bc 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DossierTemplateResource.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -41,7 +39,7 @@ public interface DossierTemplateResource { @PostMapping(value = DOSSIER_TEMPLATE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Creates a new DossierTemplates or updates an existing one.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "202", description = "Successfully created DossierTemplates."), @ApiResponse(responseCode = "400", description = "The create/update request is not valid."), @ApiResponse(responseCode = "409", description = "The create/update request is not valid.")}) - DossierTemplateModel createOrUpdateDossierTemplate(@RequestBody DossierTemplateModel dossierTemplate, @Parameter(hidden = true) Auditor auditor); + DossierTemplateModel createOrUpdateDossierTemplate(@RequestBody DossierTemplateModel dossierTemplate); @GetMapping(value = DOSSIER_TEMPLATE_PATH, produces = MediaType.APPLICATION_JSON_VALUE) @@ -60,20 +58,20 @@ public interface DossierTemplateResource { @DeleteMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE) @Operation(summary = "Delete a specific DossierTemplate by its ID", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "The DossierTemplate was deleted"), @ApiResponse(responseCode = "404", description = "The DossierTemplate is not found.")}) - void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); + void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = DOSSIER_TEMPLATE_PATH + "/delete") @Operation(summary = "Delete multiple DossierTemplates by their IDs", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "The DossierTemplates were deleted"), @ApiResponse(responseCode = "404", description = "DossierTemplates not found.")}) - void deleteDossierTemplates(@RequestBody List dossierTemplateIds, @Parameter(hidden = true) Auditor auditor); + void deleteDossierTemplates(@RequestBody List dossierTemplateIds); @PostMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + CLONE_PATH, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Clones a dossier template.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Successfully cloned dossier templates."), @ApiResponse(responseCode = "400", description = "The clone request is not valid."), @ApiResponse(responseCode = "409", description = "The clone request is not valid.")}) - DossierTemplateModel cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest, @Parameter(hidden = true) Auditor auditor); + DossierTemplateModel cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest); @Operation(summary = "Get Stats for a specific DossierTemplate", description = "None") @@ -91,7 +89,7 @@ public interface DossierTemplateResource { @Operation(summary = "Prepares an export download for given dossier template", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success."), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "Dossier template not found.")}) @GetMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + EXPORT_PATH, produces = MediaType.APPLICATION_JSON_VALUE) - DownloadResponse prepareExportDownload(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); + DownloadResponse prepareExportDownload(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -100,6 +98,6 @@ public interface DossierTemplateResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Archive have successfully imported"), @ApiResponse(responseCode = "400", description = "Validation failed during import"), @ApiResponse(responseCode = "404", description = "The dossier template to update does not exist")}) DossierTemplateModel importDossierTemplate(@RequestPart(name = "file") MultipartFile file, @RequestParam(value = DOSSIER_TEMPLATE_ID, required = false) String dossierTemplateId, - @RequestParam(value = "updateExistingDossierTemplate", required = false, defaultValue = "false") boolean updateExistingDossierTemplate, @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = "updateExistingDossierTemplate", required = false, defaultValue = "false") boolean updateExistingDossierTemplate); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java index 0d66609ea..bbbcf36cc 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/DownloadResource.java @@ -2,9 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.concurrent.CompletableFuture; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; -import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.InputStreamResource; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -45,19 +42,19 @@ public interface DownloadResource { @Operation(summary = "Prepares a download for given fileIds and types", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success."), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "Dossier or file not found.")}) @PostMapping(value = REST_PATH + "/prepare", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DownloadResponse prepareDownload(@RequestBody PrepareDownloadRequest request, @Parameter(hidden = true) Auditor auditor); + DownloadResponse prepareDownload(@RequestBody PrepareDownloadRequest request); @Operation(summary = "Prepares a download for given fileIds and types and reports", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success."), @ApiResponse(responseCode = "400", description = "Request contains error."), @ApiResponse(responseCode = "404", description = "Dossier or file not found.")}) @PostMapping(value = REST_PATH + "/prepare-option", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DownloadResponse prepareDownload(@RequestBody PrepareDownloadWithOptionRequest request, @Parameter(hidden = true) Auditor auditor); + DownloadResponse prepareDownload(@RequestBody PrepareDownloadWithOptionRequest request); @Operation(summary = "Removes a previously created download status", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Success."), @ApiResponse(responseCode = "404", description = "StorageId does not exist.")}) @PostMapping(value = REST_PATH + "/delete", consumes = MediaType.APPLICATION_JSON_VALUE) - void deleteDownloadStatus(@RequestBody RemoveDownloadRequest removeDownloadRequest, @Parameter(hidden = true) Auditor auditor); + void deleteDownloadStatus(@RequestBody RemoveDownloadRequest removeDownloadRequest); @Operation(summary = "Gets to download status for the current user", description = "None") @@ -72,7 +69,7 @@ public interface DownloadResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "404", description = "Download with this Id is no longer available")}) @GetMapping(value = REST_PATH) CompletableFuture> downloadFile(@RequestParam(STORAGE_ID) String storageId, - @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline); @ResponseBody @@ -90,6 +87,6 @@ public interface DownloadResource { @GetMapping(value = REST_PATH + OTT_PATH + OTT_PATH_VARIABLE) CompletableFuture> downloadFileUsingOTT(@PathVariable(OTT) String oneTimeToken, @RequestParam(value = "inline", required = false, defaultValue = FALSE) boolean inline, - @RequestParam(value = "tenantId") String tenantId, @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = "tenantId") String tenantId); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileAttributesResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileAttributesResource.java index 3b6f414e5..266e330df 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileAttributesResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileAttributesResource.java @@ -3,8 +3,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; import java.util.Set; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -53,7 +51,7 @@ public interface FileAttributesResource { @Operation(summary = "Set file attributes base configuration and a list of file attributes, ", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PutMapping(value = FILE_ATTRIBUTES_PATH + CONFIG_PATH + BASE_CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - FileAttributesConfig setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributesConfig fileAttributesConfig, @Parameter(hidden = true) Auditor auditor); + FileAttributesConfig setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributesConfig fileAttributesConfig); @ResponseBody @@ -61,7 +59,7 @@ public interface FileAttributesResource { @Operation(summary = "Add or update a file attribute that can be used at importing csv.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = FILE_ATTRIBUTES_PATH + CONFIG_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttributes, @Parameter(hidden = true) Auditor auditor); + FileAttributeConfig addOrUpdateFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttributes); @ResponseBody @@ -70,7 +68,7 @@ public interface FileAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "NO_CONTENT")}) @DeleteMapping(value = FILE_ATTRIBUTES_PATH + CONFIG_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + FILE_ATTRIBUTE_ID_PATH_VARIABLE) - void deleteFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId, @Parameter(hidden = true) Auditor auditor); + void deleteFileAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId); @ResponseBody @@ -79,7 +77,7 @@ public interface FileAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "NO_CONTENT")}) @PostMapping(value = FILE_ATTRIBUTES_PATH + CONFIG_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + "/delete") - void deleteFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributeIds, @Parameter(hidden = true) Auditor auditor); + void deleteFileAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributeIds); @ResponseStatus(HttpStatus.OK) @@ -94,6 +92,6 @@ public interface FileAttributesResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) @PostMapping(value = FILE_ATTRIBUTES_PATH + SET_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody FileAttributes fileAttributes, @Parameter(hidden = true) Auditor auditor); + void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody FileAttributes fileAttributes); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java index 26b6cdde5..e1c6535e2 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/FileManagementResource.java @@ -3,8 +3,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; import java.util.Set; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -46,14 +44,14 @@ public interface FileManagementResource { @DeleteMapping(value = DELETE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) @Operation(summary = "Deletes a file for a given dossierId and FileId", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void deleteFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @Parameter(hidden = true) Auditor auditor); + void deleteFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = DELETE_PATH + DOSSIER_ID_PATH_VARIABLE) @Operation(summary = "Deletes a a list of files for a given dossierId", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void deleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, @Parameter(hidden = true) Auditor auditor); + void deleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds); @ResponseBody @@ -80,7 +78,7 @@ public interface FileManagementResource { @DeleteMapping(value = HARD_DELETE_PATH + DOSSIER_ID_PATH_VARIABLE) @Operation(summary = "Hard deletes an uploaded file.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Successfully hard deleted the file."), @ApiResponse(responseCode = "404", description = "Not found")}) - void hardDeleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(FILE_IDS) Set fileIds, @Parameter(hidden = true) Auditor auditor); + void hardDeleteFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(FILE_IDS) Set fileIds); @ResponseBody @@ -88,13 +86,13 @@ public interface FileManagementResource { @PostMapping(value = UNDELETE_PATH + DOSSIER_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Restores an deleted file.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "201", description = "File successfully restored."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID or file ID entered to restore file."), @ApiResponse(responseCode = "403", description = "Forbidden operation while restoring."), @ApiResponse(responseCode = "409", description = "Conflict occurred while restoring.")}) - void restoreFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, @Parameter(hidden = true) Auditor auditor); + void restoreFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = ROTATION_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Rotates one or more pages for one file.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Pages successfully rotated."), @ApiResponse(responseCode = "400", description = "Incorrect dossier ID, file ID, pages or rotation entered."), @ApiResponse(responseCode = "403", description = "Forbidden operation while rotating.")}) - void rotatePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RotatePagesRequest rotatePagesRequest, @Parameter(hidden = true) Auditor auditor); + void rotatePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RotatePagesRequest rotatePagesRequest); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LegalBasisMappingResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LegalBasisMappingResource.java index 3592b01dc..cd5227e94 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LegalBasisMappingResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LegalBasisMappingResource.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -32,21 +30,21 @@ public interface LegalBasisMappingResource { @PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + DELETE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "delete some legal basis by their names.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames, @Parameter(hidden = true) Auditor auditor); + void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames); @ResponseStatus(HttpStatus.NO_CONTENT) @PutMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Add or update one legalBasis.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis, @Parameter(hidden = true) Auditor auditor); + void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis); @ResponseStatus(HttpStatus.NO_CONTENT) @PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Set the mapping between legal basis and redaction reason.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void setLegalBasisMapping(@RequestBody List legalBasisMapping, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @Parameter(hidden = true) Auditor auditor); + void setLegalBasisMapping(@RequestBody List legalBasisMapping, @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); @ResponseBody diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LicenseReportResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LicenseReportResource.java index 117d843c5..be3afeb49 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LicenseReportResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/LicenseReportResource.java @@ -1,7 +1,5 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; @@ -26,6 +24,6 @@ public interface LicenseReportResource { @PostMapping(value = LICENSE_REPORT_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Creates and serves license report.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Successfully created and served a license report.")}) - LicenseReport getReport(@RequestBody LicenseReportRequest reportRequest, @Parameter(hidden = true) Auditor auditor); + LicenseReport getReport(@RequestBody LicenseReportRequest reportRequest); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ManualRedactionResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ManualRedactionResource.java index 1c1d9a42c..df1a6fa61 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ManualRedactionResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ManualRedactionResource.java @@ -3,8 +3,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; import java.util.Set; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -61,8 +59,7 @@ public interface ManualRedactionResource { CommentResponse addComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, - @RequestBody AddCommentRequestModel addCommentRequest, - @Parameter(hidden = true) Auditor auditor); + @RequestBody AddCommentRequestModel addCommentRequest); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -72,8 +69,7 @@ public interface ManualRedactionResource { void undoComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, - @PathVariable(COMMENT_ID) String commentId, - @Parameter(hidden = true) Auditor auditor); + @PathVariable(COMMENT_ID) String commentId); @ResponseStatus(value = HttpStatus.OK) @@ -82,8 +78,7 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List addRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set addRedactionRequest, - @Parameter(hidden = true) Auditor auditor); + @RequestBody Set addRedactionRequest); @ResponseStatus(value = HttpStatus.OK) @@ -92,8 +87,7 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List removeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set removeRedactionRequests, - @Parameter(hidden = true) Auditor auditor); + @RequestBody Set removeRedactionRequests); @ResponseStatus(value = HttpStatus.OK) @@ -102,8 +96,7 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List forceRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set forceRedactionRequests, - @Parameter(hidden = true) Auditor auditor); + @RequestBody Set forceRedactionRequests); @ResponseStatus(value = HttpStatus.OK) @@ -112,8 +105,7 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List legalBasisChangeBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set legalBasisChangeRequests, - @Parameter(hidden = true) Auditor auditor); + @RequestBody Set legalBasisChangeRequests); @ResponseStatus(value = HttpStatus.OK) @@ -122,8 +114,7 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List recategorizeBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set recategorizationRequests, - @Parameter(hidden = true) Auditor auditor); + @RequestBody Set recategorizationRequests); @ResponseStatus(value = HttpStatus.OK) @@ -132,8 +123,7 @@ public interface ManualRedactionResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) List resizeRedactionBulk(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestBody Set resizeRedactionRequests, - @Parameter(hidden = true) Auditor auditor); + @RequestBody Set resizeRedactionRequests); @ResponseStatus(value = HttpStatus.OK) diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RSSResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RSSResource.java index 7ea074934..919fb7168 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RSSResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RSSResource.java @@ -1,7 +1,5 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -53,7 +51,7 @@ public interface RSSResource { @PostMapping(value = RSS_PATH + OVERRIDE_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Adds overrides for RSS components", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) - void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides, @Parameter(hidden = true) Auditor auditor); + void addOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody ComponentsOverrides componentsOverrides); @ResponseBody @@ -69,6 +67,6 @@ public interface RSSResource { @PostMapping(value = RSS_PATH + OVERRIDE_PATH + "/revert" + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Reverts overrides for RSS components", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK")}) - void revertOverrides(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody RevertOverrideRequest revertOverrideRequest, @Parameter(hidden = true) Auditor auditor); + 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/ReanalysisResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReanalysisResource.java index 3b364a8d2..e9ebd084b 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReanalysisResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReanalysisResource.java @@ -3,8 +3,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; import java.util.Set; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -45,7 +43,7 @@ public interface ReanalysisResource { @PostMapping(value = REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE) @Operation(summary = "Reanalyze all files of the dossier.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void reanalyzeDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, @Parameter(hidden = true) Auditor auditor); + void reanalyzeDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force); @PostMapping(value = REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) @@ -53,8 +51,7 @@ public interface ReanalysisResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void reanalyzeFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force); @PostMapping(value = REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH) @@ -62,14 +59,13 @@ public interface ReanalysisResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void reanalyzeFilesForDossier(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force); @Operation(summary = "Ocr and reanalyze a dossier", description = "None") @PostMapping(value = OCR_REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE) @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void ocrDossier(@PathVariable(DOSSIER_ID) String dossierId, @Parameter(hidden = true) Auditor auditor); + void ocrDossier(@PathVariable(DOSSIER_ID) String dossierId); @Operation(summary = "Ocr and reanalyze a file", description = "None") @@ -77,14 +73,13 @@ public interface ReanalysisResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK"), @ApiResponse(responseCode = "409", description = "Conflict")}) void ocrFile(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = FORCE_PARAM, required = false, defaultValue = FALSE) boolean force); @Operation(summary = "Ocr and reanalyze multiple files for a dossier", description = "None") @PostMapping(value = OCR_REANALYSIS_REST_PATH + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH) @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void ocrFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, @Parameter(hidden = true) Auditor auditor); + void ocrFiles(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds); @Operation(summary = "Exclude or re-include a file to the automatic analysis", description = "None") @@ -92,8 +87,7 @@ public interface ReanalysisResource { @PostMapping(value = TOGGLE_AUTOMATIC_ANALYSIS_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis); @Operation(summary = "Exclude or re-include a file to analysis", description = "None") @@ -102,8 +96,7 @@ public interface ReanalysisResource { @PostMapping(value = TOGGLE_ANALYSIS_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) void toggleExclusion(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = FALSE) boolean excluded, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = FALSE) boolean excluded); @Operation(summary = "Exclude or re-include a file to the automatic analysis", description = "None") @@ -112,8 +105,7 @@ public interface ReanalysisResource { @PostMapping(value = TOGGLE_AUTOMATIC_ANALYSIS_PATH + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH) void toggleAutomaticAnalysisForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, - @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis); @Operation(summary = "Exclude or re-include a file to analysis", description = "None") @@ -122,21 +114,20 @@ public interface ReanalysisResource { @PostMapping(value = TOGGLE_ANALYSIS_PATH + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH) void toggleExclusionForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody Set fileIds, - @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = FALSE) boolean excluded, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(name = EXCLUDED_STATUS_PARAM, required = false, defaultValue = FALSE) boolean excluded); @Operation(summary = "Exclude pages from analysis for a file", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) @PostMapping(value = EXCLUDE_PAGES_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) - void excludePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageExclusionRequest, @Parameter(hidden = true) Auditor auditor); + void excludePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageExclusionRequest); @Operation(summary = "Include pages from analysis for a file", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) @PostMapping(value = INCLUDE_PAGES_PATH + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) - void includePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageInclusionRequest, @Parameter(hidden = true) Auditor auditor); + void includePages(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody PageExclusionRequest pageInclusionRequest); @PostMapping(value = REINDEX_REST_PATH) @@ -144,6 +135,6 @@ public interface ReanalysisResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void reindex(@RequestParam(value = "dossierId", required = false) String dossierId, @RequestParam(value = "dropIndex", required = false, defaultValue = FALSE) boolean dropIndex, - @RequestBody List fileIds, @Parameter(hidden = true) Auditor auditor); + @RequestBody List fileIds); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReportTemplateResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReportTemplateResource.java index 291644917..4dfb64eb3 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReportTemplateResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/ReportTemplateResource.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -55,8 +53,7 @@ public interface ReportTemplateResource { ReportTemplate uploadTemplate(@RequestPart(name = "file") MultipartFile file, @PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(value = MULTI_FILE_REPORT, required = false, defaultValue = "false") boolean multiFileReport, - @RequestParam(value = ACTIVE_BY_DEFAULT, required = false, defaultValue = "false") boolean activeByDefault, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = ACTIVE_BY_DEFAULT, required = false, defaultValue = "false") boolean activeByDefault); @GetMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) @@ -75,7 +72,7 @@ public interface ReportTemplateResource { @DeleteMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE) @Operation(summary = "Delete template file for redaction-report", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Report template deletion succeeded.")}) - void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId, @Parameter(hidden = true) Auditor auditor); + void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId); @GetMapping(value = PLACEHOLDERS_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RulesResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RulesResource.java index df991449f..198d6b8e0 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RulesResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/RulesResource.java @@ -1,7 +1,5 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -44,7 +42,7 @@ public interface RulesResource { @PostMapping(value = RULES_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Takes object containing string or rules as argument, which will be used by the redaction service.") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Rules upload successful."), @ApiResponse(responseCode = "400", description = "Uploaded rules could not be verified.")}) - ResponseEntity upload(@RequestBody RulesUploadRequest rules, @Parameter(hidden = true) Auditor auditor); + ResponseEntity upload(@RequestBody RulesUploadRequest rules); @ResponseBody @@ -72,7 +70,7 @@ public interface RulesResource { @PostMapping(value = RULES_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + UPLOAD_PATH, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @Operation(summary = "Takes object containing string or rules as argument, which will be used by the redaction service.") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Rules upload successful."), @ApiResponse(responseCode = "400", description = "Uploaded rules could not be verified.")}) - ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestPart(name = "file") MultipartFile file, @Parameter(hidden = true) Auditor auditor); + ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestPart(name = "file") MultipartFile file); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -81,8 +79,7 @@ public interface RulesResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "Rules upload successful."), @ApiResponse(responseCode = "400", description = "Uploaded rules could not be verified.")}) ResponseEntity uploadFile(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @PathVariable(RULE_FILE_TYPE_PARAMETER_NAME) RuleFileType ruleFileType, - @RequestPart(name = "file") MultipartFile file, - @Parameter(hidden = true) Auditor auditor); + @RequestPart(name = "file") MultipartFile file); @ResponseBody diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/StatusResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/StatusResource.java index 9d051a5c5..8ff0e9bbe 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/StatusResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/StatusResource.java @@ -4,8 +4,6 @@ import java.time.OffsetDateTime; import java.util.List; import java.util.Map; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -86,8 +84,7 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Successfully assigned new owner to dossier."), @ApiResponse(responseCode = "404", description = "Not found")}) void setCurrentFileAssignee(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -96,8 +93,7 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void setStatusUnderReview(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -106,16 +102,14 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void setStatusUnderApproval(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = STATUS_REST_PATH + "/approved" + DOSSIER_ID_PATH_VARIABLE + FILE_ID_PATH_VARIABLE) @Operation(summary = "Sets the status APPROVED for a file.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void setStatusApproved(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @Parameter(hidden = true) Auditor auditor); + void setStatusApproved(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -124,8 +118,7 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Successfully assigned new owner to dossier."), @ApiResponse(responseCode = "404", description = "Not found")}) void setAssigneeForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - @RequestBody List fileIds, - @Parameter(hidden = true) Auditor auditor); + @RequestBody List fileIds); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -134,8 +127,7 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void setStatusUnderReviewForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); @ResponseStatus(value = HttpStatus.NO_CONTENT) @@ -144,15 +136,14 @@ public interface StatusResource { @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) void setStatusUnderApprovalForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, - @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); @ResponseStatus(value = HttpStatus.NO_CONTENT) @PostMapping(value = STATUS_REST_PATH + "/approved" + DOSSIER_ID_PATH_VARIABLE + BULK_REST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Sets the status APPROVED for a list of files.", description = "None") @ApiResponses(value = {@ApiResponse(responseCode = "204", description = "OK")}) - void setStatusApprovedForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds, @Parameter(hidden = true) Auditor auditor); + void setStatusApprovedForList(@PathVariable(DOSSIER_ID) String dossierId, @RequestBody List fileIds); @ResponseStatus(value = HttpStatus.NO_CONTENT) diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/UploadResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/UploadResource.java index 5098ccd62..50a434b47 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/UploadResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/UploadResource.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.Set; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PathVariable; @@ -48,7 +46,6 @@ public interface UploadResource { void importRedactions(@RequestPart(name = "file") MultipartFile file, @PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, - @RequestParam(value = "pageInclusionRequest", required = false) Set pageInclusionRequest, - @Parameter(hidden = true) Auditor auditor); + @RequestParam(value = "pageInclusionRequest", required = false) Set pageInclusionRequest); } diff --git a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/WatermarkResource.java b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/WatermarkResource.java index 553708063..582e97882 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/WatermarkResource.java +++ b/persistence-service-v1/persistence-service-external-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/external/resource/WatermarkResource.java @@ -2,8 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.external.resource; import java.util.List; -import com.knecon.fforesight.auditor.Auditor; -import io.swagger.v3.oas.annotations.Parameter; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.DeleteMapping; @@ -35,7 +33,7 @@ public interface WatermarkResource { @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "400", description = "Invalid Watermark Data."), @ApiResponse(responseCode = "403", description = "Forbidden.")}) @ResponseStatus(HttpStatus.OK) @PostMapping(value = WATERMARK_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - WatermarkModel saveWatermark(@RequestBody WatermarkModel watermark, @Parameter(hidden = true) Auditor auditor); + WatermarkModel saveWatermark(@RequestBody WatermarkModel watermark); @Operation(summary = "Get a specific watermark configuration", description = "None") @@ -56,7 +54,7 @@ public interface WatermarkResource { @ResponseStatus(HttpStatus.NO_CONTENT) @DeleteMapping(value = WATERMARK_PATH + WATERMARK_ID_PATH_VARIABLE) - void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId, @Parameter(hidden = true) Auditor auditor); + void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId); @Operation(summary = "Check if a specific watermark configuration is in use", description = "None") diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTemplateTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTemplateTesterAndProvider.java index 0c7f175ac..a4415bae5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTemplateTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTemplateTesterAndProvider.java @@ -72,7 +72,7 @@ public class DossierTemplateTesterAndProvider { cru.setValidTo(OffsetDateTime.now().plusHours(1).truncatedTo(ChronoUnit.MILLIS)); cru.setOcrByDefault(ocrByDefault); - var result = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); + var result = dossierTemplateClient.createOrUpdateDossierTemplate(cru); assertThat(result.getName()).isEqualTo(name); @@ -80,10 +80,10 @@ public class DossierTemplateTesterAndProvider { assertThat(loadedTemplate).isEqualTo(result); - rulesClient.upload(new RulesUploadRequest("ABCD", loadedTemplate.getDossierTemplateId()), auditor); + rulesClient.upload(new RulesUploadRequest("ABCD", loadedTemplate.getDossierTemplateId())); legalBasisClient.setLegalBasisMapping( List.of(new LegalBasis("name", "description", "reason")), - loadedTemplate.getDossierTemplateId(), auditor); + loadedTemplate.getDossierTemplateId()); loadedTemplate = dossierTemplateClient.getDossierTemplate(result.getDossierTemplateId()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java index 89a2f716f..0a60cb8d9 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/DossierTesterAndProvider.java @@ -31,9 +31,6 @@ public class DossierTesterAndProvider { @Autowired private UserProvider userProvider; - @Autowired - private TestAuditor auditor; - public Dossier provideTestDossier(DossierTemplateModel testTemplate) { return provideTestDossier(testTemplate, "Dossier1"); @@ -82,7 +79,7 @@ public class DossierTesterAndProvider { cru.setMemberIds(Sets.newHashSet(userId, altUserId)); cru.setApproverIds(Sets.newHashSet(userId, altUserId)); - var result = dossierClient.createDossierOrUpdateDossier(cru, auditor); + var result = dossierClient.createDossierOrUpdateDossier(cru); return result.getBody(); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/ReportTemplateProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/ReportTemplateProvider.java index 9a32e968d..6e138150a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/ReportTemplateProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/ReportTemplateProvider.java @@ -2,7 +2,6 @@ package com.iqser.red.service.peristence.v1.server.integration.service; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; @@ -16,9 +15,6 @@ public class ReportTemplateProvider { @Autowired private ReportTemplateClient reportTemplateClient; - @Autowired - private TestAuditor auditor; - public ReportTemplate provideReportTemplate(String dossierTemplateId) { @@ -35,7 +31,7 @@ public class ReportTemplateProvider { public ReportTemplate provideReportTemplate(String dossierTemplateId, String name, byte[] content, boolean multiFile, boolean activeByDefault) { var template = new MockMultipartFile(name,name,"application/octet-stream", content); - reportTemplateClient.uploadTemplate(template, dossierTemplateId, multiFile, activeByDefault, auditor); + reportTemplateClient.uploadTemplate(template, dossierTemplateId, multiFile, activeByDefault); var tpl = reportTemplateClient.getAvailableReportTemplates(dossierTemplateId) .stream() diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java index 2f4d7e203..c245080bf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/TypeProvider.java @@ -17,9 +17,6 @@ public class TypeProvider { @Autowired private DictionaryClient dictionaryClient; - @Autowired - private TestAuditor auditor; - public TypeValue testAndProvideType(DossierTemplateModel dossierTemplate) { @@ -56,7 +53,7 @@ public class TypeProvider { type.setHasDictionary(true); type.setDossierDictionaryOnly(dossierDictionaryOnly); - dictionaryClient.addType(type, auditor); + dictionaryClient.addType(type); var allTypes = dictionaryClient.getAllTypes(dossierTemplate.getDossierTemplateId(), dossier != null ? dossier.getId() : null, false); var foundType = allTypes.getTypes().stream().filter(t -> t.getType().equalsIgnoreCase(typeName)).findAny(); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java index cf8f6b752..7619aafb0 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DictionaryTest.java @@ -63,13 +63,11 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { var falsePositives = List.of("false_positive1", "false_positive"); var falseRecommendations = List.of("false_recommendation1", "false_recommendation2"); Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.addEntry(type.getType(), - type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor)); + type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY)); Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.addEntry(type.getType(), - type.getDossierTemplateId(), falsePositives, false, null, DictionaryEntryType.FALSE_POSITIVE, - auditor)); + type.getDossierTemplateId(), falsePositives, false, null, DictionaryEntryType.FALSE_POSITIVE)); Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.addEntry(type.getType(), - type.getDossierTemplateId(), falseRecommendations, false, null, DictionaryEntryType.FALSE_RECOMMENDATION, - auditor)); + type.getDossierTemplateId(), falseRecommendations, false, null, DictionaryEntryType.FALSE_RECOMMENDATION)); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(loadedType1).isNotNull(); @@ -78,20 +76,17 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType1.getFalseRecommendationEntries()).isEmpty(); Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntries(type.getType(), - type.getDossierTemplateId(), entries, null, DictionaryEntryType.ENTRY, auditor)); + type.getDossierTemplateId(), entries, null, DictionaryEntryType.ENTRY)); Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntries(type.getType(), - type.getDossierTemplateId(), falsePositives, null, DictionaryEntryType.FALSE_POSITIVE, auditor)); + type.getDossierTemplateId(), falsePositives, null, DictionaryEntryType.FALSE_POSITIVE)); Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntries(type.getType(), - type.getDossierTemplateId(), falseRecommendations, null, DictionaryEntryType.FALSE_RECOMMENDATION, - auditor)); + type.getDossierTemplateId(), falseRecommendations, null, DictionaryEntryType.FALSE_RECOMMENDATION)); Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntry(type.getType(), - type.getDossierTemplateId(), entries.get(0), null, DictionaryEntryType.ENTRY, auditor)); + type.getDossierTemplateId(), entries.get(0), null, DictionaryEntryType.ENTRY)); Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntry(type.getType(), - type.getDossierTemplateId(), falsePositives.get(0), null, DictionaryEntryType.FALSE_POSITIVE, - auditor)); + type.getDossierTemplateId(), falsePositives.get(0), null, DictionaryEntryType.FALSE_POSITIVE)); Assertions.assertThrows(FeignException.Forbidden.class, () -> dictionaryClient.deleteEntry(type.getType(), - type.getDossierTemplateId(), falseRecommendations.get(0), null, DictionaryEntryType.FALSE_RECOMMENDATION, - auditor)); + type.getDossierTemplateId(), falseRecommendations.get(0), null, DictionaryEntryType.FALSE_RECOMMENDATION)); } @Test @@ -104,16 +99,15 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(type.isDossierDictionaryOnly()).isFalse(); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2"), false, - null, DictionaryEntryType.ENTRY, auditor); + null, DictionaryEntryType.ENTRY); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), - false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); + false, null, DictionaryEntryType.FALSE_POSITIVE); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation1", "false_recommendation2"), false, null, - DictionaryEntryType.FALSE_RECOMMENDATION, - auditor); + DictionaryEntryType.FALSE_RECOMMENDATION); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -135,7 +129,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { var request = new UpdateTypeValue(); BeanUtils.copyProperties(type, request); type.setSkippedHexColor(null); - dictionaryClient.updateType(type.getType(), type.getDossierTemplateId(), request, auditor); + dictionaryClient.updateType(type.getType(), type.getDossierTemplateId(), request); var loadedType = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(loadedType.getSkippedHexColor()).isNotNull(); @@ -152,7 +146,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add("age"); entries.add("page"); try { - dictionaryClient.addEntry(typeId, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(typeId, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } @@ -171,34 +165,34 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add("p"); try { - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } entries.remove(1); entries.add("5"); try { - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } entries.remove(1); entries.add("12"); try { - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } entries.remove(1); entries.add(";"); try { - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } entries.remove(1); entries.add("設"); - dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type, dossier.getDossierTemplateId(), entries, false, dossier.getId(), DictionaryEntryType.ENTRY); } @@ -214,7 +208,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { var entries = new ArrayList(); entries.add(word); entries.add(word); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); var dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -224,7 +218,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { // Act & Assert: Add same word again; Only one should exist entries = new ArrayList<>(); entries.add(word); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dictionary.getEntries()).hasSize(1); @@ -236,7 +230,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word); entries.add(word); entries.add(word); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dictionary.getEntries()).hasSize(1); @@ -246,7 +240,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { // Act & Assert: Delete word; Should have 'deleted' flag entries = new ArrayList<>(); entries.add(word); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), entries, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), entries, null, DictionaryEntryType.ENTRY); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dictionary.getEntries()).hasSize(0); @@ -268,7 +262,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); var dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -278,7 +272,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { // Act & Assert: Add same word again; No duplicate should exist entries = new ArrayList<>(); entries.add(word1); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -293,7 +287,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -322,7 +316,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { .addToDictionaryAction(false) .dossierTemplateId(dossier.getDossierTemplateId()) .dossierDictionaryOnly(true) - .build(), auditor); + .build()); assertThat(returnedtype1.isDossierDictionaryOnly()).isTrue(); assertThat(dictionaryClient.getAllTypes(dossier.getDossierTemplateId(), null, false).getTypes().size()).isEqualTo(1); @@ -348,7 +342,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { .dossierTemplateId(dossierTemplate.getId()) .build(); - var createdType = dictionaryClient.addType(type, auditor); + var createdType = dictionaryClient.addType(type); var word1 = "Luke Skywalker"; var word2 = "Anakin Skywalker"; @@ -359,7 +353,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); var dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -367,10 +361,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(actualEntries.size()).isEqualTo(3); assertThat(actualEntries).usingComparator(new ListContentWithoutOrderAndWithoutDuplicatesComparator<>()).isEqualTo(entries); - dictionaryClient.deleteType(createdType.getType(), createdType.getDossierTemplateId(), auditor); + dictionaryClient.deleteType(createdType.getType(), createdType.getDossierTemplateId()); assertThat(dictionaryClient.getAllTypes(createdType.getDossierTemplateId(), null, false).getTypes().size()).isEqualTo(0); - dictionaryClient.addType(type, auditor); + dictionaryClient.addType(type); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -395,19 +389,19 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); var word4 = "Padme"; var word5 = "Obiwan"; entries.clear(); entries.add(word4); entries.add(word5); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, true, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, true, null, DictionaryEntryType.ENTRY); entries.add(word1); entries.add(word2); entries.add(word3); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); var dictionary = dictionaryClient.getDictionaryForType(createdType.getType(), createdType.getDossierTemplateId(), null); @@ -437,14 +431,14 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(type.getSkippedHexColor()).isEqualTo("#aaaaaa"); assertThat(type.isDossierDictionaryOnly()).isFalse(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2", "word3"), false, null, DictionaryEntryType.ENTRY, auditor); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2", "word3"), false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation1", "false_recommendation2"), false, null, - DictionaryEntryType.FALSE_RECOMMENDATION, auditor); + DictionaryEntryType.FALSE_RECOMMENDATION); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -452,15 +446,15 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType1.getFalsePositiveEntries()).hasSize(2); assertThat(loadedType1.getFalseRecommendationEntries()).hasSize(2); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word4"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("word2"), dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive3"), false, dossier.getDossierId(), DictionaryEntryType.FALSE_POSITIVE, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word4"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("word2"), dossier.getDossierId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive3"), false, dossier.getDossierId(), DictionaryEntryType.FALSE_POSITIVE); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation3", "false_recommendation4"), false, dossier.getDossierId(), - DictionaryEntryType.FALSE_RECOMMENDATION, auditor); + DictionaryEntryType.FALSE_RECOMMENDATION); Assertions.assertThrows(FeignException.Unauthorized.class, () -> dictionaryClient.getMergedDictionaries(type.getType() + ";", dossierTemplate.getDossierTemplateId(), dossier.getDossierId())); Dictionary mergedDict = dictionaryClient.getMergedDictionaries(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()); @@ -477,14 +471,14 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate, "Dossier"); var type = typeProvider.testAndProvideType(dossierTemplate); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2", "word3"), false, null, DictionaryEntryType.ENTRY, auditor); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word2", "word3"), false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation1", "false_recommendation2"), false, null, - DictionaryEntryType.FALSE_RECOMMENDATION, auditor); + DictionaryEntryType.FALSE_RECOMMENDATION); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -492,15 +486,15 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType1.getFalsePositiveEntries()).hasSize(2); assertThat(loadedType1.getFalseRecommendationEntries()).hasSize(2); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word4"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("word2"), dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive3"), false, dossier.getDossierId(), DictionaryEntryType.FALSE_POSITIVE, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("word1", "word4"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("word2"), dossier.getDossierId(), DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive3"), false, dossier.getDossierId(), DictionaryEntryType.FALSE_POSITIVE); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation3", "false_recommendation4"), false, dossier.getDossierId(), - DictionaryEntryType.FALSE_RECOMMENDATION, auditor); + DictionaryEntryType.FALSE_RECOMMENDATION); var loadedType2 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), dossier.getDossierId()); @@ -522,14 +516,14 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(type.getSkippedHexColor()).isEqualTo("#aaaaaa"); assertThat(type.isDossierDictionaryOnly()).isFalse(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Charalampos", "Carina Wilson", "carlsen"), false, null, DictionaryEntryType.ENTRY, auditor); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Charalampos", "Carina Wilson", "carlsen"), false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_positive1", "false_positive"), false, null, DictionaryEntryType.FALSE_POSITIVE); dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("false_recommendation1", "afalse_recommendation2"), false, null, - DictionaryEntryType.FALSE_RECOMMENDATION, auditor); + DictionaryEntryType.FALSE_RECOMMENDATION); var loadedType1 = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -564,11 +558,11 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { .dossierTemplateId(dossierTemplate.getId()) .build(); - var createdType = dictionaryClient.addType(type, auditor); + var createdType = dictionaryClient.addType(type); var entries = createDummyEntries(10_000); - dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(createdType.getType(), createdType.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); var dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -576,7 +570,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(actualEntries.size()).isEqualTo(entries.size()); assertThat(actualEntries).usingComparator(new ListContentWithoutOrderAndWithoutDuplicatesComparator<>()).isEqualTo(entries); - dictionaryClient.deleteEntries(type.getType(), dossierTemplate.getDossierTemplateId(), entries, null, null, auditor); + dictionaryClient.deleteEntries(type.getType(), dossierTemplate.getDossierTemplateId(), entries, null, null); dictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -615,7 +609,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { .dossierTemplateId(dossierTemplateId) .hexColor("#FFFFFF") .recommendationHexColor("#FFFFFF") - .build(), auditor); + .build()); } 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 ff8569ecd..b076a3a22 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; @@ -43,7 +42,7 @@ public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest { digitalSignature.setContactInfo("test"); digitalSignature.setBase64EncodedPrivateKey("zzz"); - var savedDigitalSignature = digitalSignatureClient.saveDigitalSignature(digitalSignature, auditor); + var savedDigitalSignature = digitalSignatureClient.saveDigitalSignature(digitalSignature); var loadedSignature = digitalSignatureClient.getDigitalSignature(); // encrypted @@ -51,11 +50,11 @@ public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest { var dvm = new DigitalSignatureViewModel(); BeanUtils.copyProperties(loadedSignature, dvm); dvm.setReason("new test"); - digitalSignatureClient.updateDigitalSignature(dvm, auditor); + digitalSignatureClient.updateDigitalSignature(dvm); loadedSignature = digitalSignatureClient.getDigitalSignature(); assertThat(loadedSignature.getReason()).isEqualTo("new test"); - digitalSignatureClient.deleteDigitalSignature(auditor); + digitalSignatureClient.deleteDigitalSignature(); try { digitalSignatureClient.getDigitalSignature(); } catch (FeignException.FeignClientException e) { @@ -102,7 +101,7 @@ public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest { } // Act and Assert: Save - var savedDigitalSignature = digitalSignatureClient.saveDigitalSignatureKms(digitalSignature, auditor); + var savedDigitalSignature = digitalSignatureClient.saveDigitalSignatureKms(digitalSignature); assertThat(savedDigitalSignature.getKmsAccessKey()).isEqualTo(digitalSignature.getKmsAccessKey()); assertThat(savedDigitalSignature.getKmsKeyId()).isEqualTo(digitalSignature.getKmsKeyId()); @@ -120,7 +119,7 @@ public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest { assertThat(loadedDigitalSignature.getKmsServiceEndpoint()).isEqualTo(digitalSignature.getKmsServiceEndpoint()); // Act and Assert: Delete - digitalSignatureClient.deleteDigitalSignatureKms(auditor); + digitalSignatureClient.deleteDigitalSignatureKms(); try { digitalSignatureClient.getDigitalSignatureKms(); } catch (FeignException.FeignClientException e) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java index a4473b26d..38675345d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierAttributeTest.java @@ -48,21 +48,21 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest { attribute.setEditable(true); attribute.setType(DossierAttributeType.TEXT); - dossierAttributeConfigClient.addOrUpdateDossierAttributeConfig(dossier.getDossierTemplateId(), attribute, auditor); + dossierAttributeConfigClient.addOrUpdateDossierAttributeConfig(dossier.getDossierTemplateId(), attribute); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isNotEmpty(); - dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(), auditor); + dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig()); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isEmpty(); - dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(List.of(attribute)), auditor); + dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(List.of(attribute))); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isNotEmpty(); dossierAttributeConfigClient.deleteDossierAttributesConfig(dossier.getDossierTemplateId(), - loadedAttributes.getDossierAttributeConfigs().stream().map(DossierAttributeConfig::getId).collect(Collectors.toList()), auditor); - dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(List.of(attribute)), auditor); + loadedAttributes.getDossierAttributeConfigs().stream().map(DossierAttributeConfig::getId).collect(Collectors.toList())); + dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), new DossierAttributesConfig(List.of(attribute))); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isNotEmpty(); @@ -70,44 +70,44 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest { List dossierAttributes = new ArrayList<>(); dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configId).dossierId(dossier.getId()).value("lorem ipsum").build()); - dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes), auditor); + dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes)); - var loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); + var loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty(); var firstAttribute = loadedAttributeValues.getDossierAttributeList().iterator().next(); assertThat(firstAttribute.getValue()).isEqualTo("lorem ipsum"); firstAttribute.setValue(" "); - dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute, auditor); + dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty(); firstAttribute = loadedAttributeValues.getDossierAttributeList().iterator().next(); assertThat(firstAttribute.getValue()).isNull(); firstAttribute.setValue(null); - dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute, auditor); + dossierAttributeClient.addOrUpdateDossierAttribute(dossier.getId(), firstAttribute); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty(); firstAttribute = loadedAttributeValues.getDossierAttributeList().iterator().next(); assertThat(firstAttribute.getValue()).isNull(); - dossierAttributeClient.deleteDossierAttribute(dossier.getId(), firstAttribute.getDossierAttributeConfigId(), auditor); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); + dossierAttributeClient.deleteDossierAttribute(dossier.getId(), firstAttribute.getDossierAttributeConfigId()); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); assertThat(loadedAttributeValues.getDossierAttributeList()).isEmpty(); - dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes), auditor); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); + dossierAttributeClient.setDossierAttributes(dossier.getId(), new DossierAttributes(dossierAttributes)); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); assertThat(loadedAttributeValues.getDossierAttributeList()).isNotEmpty(); //delete the list of dossier attribute config with child dossierAttributeConfigClient.deleteDossierAttributesConfig(dossier.getDossierTemplateId(), - Lists.newArrayList(loadedAttributes.getDossierAttributeConfigs().iterator().next().getId()), auditor); + Lists.newArrayList(loadedAttributes.getDossierAttributeConfigs().iterator().next().getId())); loadedAttributes = dossierAttributeConfigClient.getDossierAttributesConfig(dossier.getDossierTemplateId()); assertThat(loadedAttributes.getDossierAttributeConfigs()).isEmpty(); - loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId(), auditor); + loadedAttributeValues = dossierAttributeClient.getDossierAttributes(dossier.getId()); assertThat(loadedAttributeValues.getDossierAttributeList()).isEmpty(); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java index 763bd8184..bd3af379b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatsTest.java @@ -158,11 +158,11 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { DossierStats dossierStats = dossierStatsClient.getDossierStats(dossier1.getId()); assertThat(dossierStats.getNumberOfFiles()).isEqualTo(2); - dossierClient.archiveDossiers(Set.of(dossier1.getId()), auditor); + dossierClient.archiveDossiers(Set.of(dossier1.getId())); dossierStats = dossierStatsClient.getDossierStats(dossier1.getId()); assertThat(dossierStats.getNumberOfFiles()).isEqualTo(2); - dossierClient.deleteDossier(dossier1.getId(), auditor); + dossierClient.deleteDossier(dossier1.getId()); var allDossiers = dossierClient.getDossiers(true, true); assertThat(allDossiers.size()).isEqualTo(2); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java index 5cb497ccf..ebb424117 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierStatusTest.java @@ -83,7 +83,7 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest { BeanUtils.copyProperties(testDossier, cru); cru.setDossierTemplateId(testDossier.getDossierTemplateId()); cru.setDossierStatusId(null); - var updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); + var updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); assertThat(updated.getDossierStatusId()).isNull(); updatedStatus = dossierStatusClient.getDossierStatus(loadedDossierStatus.getId()); @@ -124,7 +124,7 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest { BeanUtils.copyProperties(testDossier, cru2); cru2.setDossierTemplateId(testDossier.getDossierTemplateId()); cru2.setDossierStatusId(loadedDossierStatus.getId()); - updated = dossierClient.createDossierOrUpdateDossier(cru2, auditor).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru2).getBody(); assertThat(updated.getDossierStatusId()).isNotNull(); //delete and replace dossierStatusClient.deleteDossierStatus(loadedDossierStatus.getId(), loadedDossierStatus2.getId()); 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 5b8145c02..d35a78cff 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 @@ -148,7 +148,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT public void dossierImportClientTest() { var multipartFile = loadMultiPartFileFromClasspath("EFSA_sanitisation_GFL_v1.zip"); - DossierTemplateModel dossierTemplateModel = dossierTemplateClient.importDossierTemplate(multipartFile, null, false, auditor); + DossierTemplateModel dossierTemplateModel = dossierTemplateClient.importDossierTemplate(multipartFile, null, false); assertThat(dossierTemplateModel).isNotNull(); assertThat(dossierTemplateModel.getId()).isNotBlank(); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateStatsTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateStatsTest.java index d896a31e3..108ffb89e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateStatsTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateStatsTest.java @@ -100,7 +100,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .description("Something") .addToDictionaryAction(false) .dossierTemplateId(dossier.getDossierTemplateId()) - .build(), auditor); + .build()); assertThat(addedType1).isNotNull(); @@ -115,13 +115,13 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .addToDictionaryAction(false) .dossierTemplateId(dossierTemplate2.getId()) .hasDictionary(true) - .build(), auditor); + .build()); assertThat(addedType).isNotNull(); var entries1 = new ArrayList(); entries1.add("entry1"); entries1.add("entry2"); - dictionaryClient.addEntry(addedType.getType(), addedType.getDossierTemplateId(), entries1, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(addedType.getType(), addedType.getDossierTemplateId(), entries1, false, null, DictionaryEntryType.ENTRY); var dictionary = dictionaryClient.getDictionaryForType(addedType.getType(), addedType.getDossierTemplateId(), null); assertThat(dictionary.getEntries().size()).isEqualTo(entries1.size()); @@ -135,12 +135,12 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .addToDictionaryAction(false) .dossierTemplateId(dossierTemplate2.getId()) .hasDictionary(true) - .build(), auditor); + .build()); var entries2 = new ArrayList(); entries2.add("entry1"); entries2.add("entry2"); entries2.add("entry3"); - dictionaryClient.addEntry(addedType2.getType(), addedType2.getDossierTemplateId(), entries2, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(addedType2.getType(), addedType2.getDossierTemplateId(), entries2, false, null, DictionaryEntryType.ENTRY); dictionary = dictionaryClient.getDictionaryForType(addedType2.getType(), addedType.getDossierTemplateId(), null); assertThat(dictionary.getEntries().size()).isEqualTo(entries2.size()); @@ -155,13 +155,13 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .addToDictionaryAction(false) .dossierTemplateId(dossierTemplate3.getId()) .hasDictionary(true) - .build(), auditor); + .build()); assertThat(addedType3).isNotNull(); var entries3 = new ArrayList(); entries3.add("entry1"); entries3.add("entry2"); - dictionaryClient.addEntry(addedType3.getType(), addedType3.getDossierTemplateId(), entries3, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(addedType3.getType(), addedType3.getDossierTemplateId(), entries3, false, null, DictionaryEntryType.ENTRY); dictionary = dictionaryClient.getDictionaryForType(addedType3.getType(), addedType3.getDossierTemplateId(), null); assertThat(dictionary.getEntries().size()).isEqualTo(entries3.size()); @@ -179,7 +179,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .addToDictionaryAction(false) .dossierTemplateId(dossierTemplate5.getId()) .hasDictionary(true) - .build(), auditor); + .build()); assertThat(addedType5).isNotNull(); Set dossierTemplateIds = new HashSet<>(); @@ -214,7 +214,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe var entries22 = new ArrayList(); entries22.add(entries2.get(2)); - dictionaryClient.deleteEntries(addedType2.getType(), addedType2.getDossierTemplateId(), entries22, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.deleteEntries(addedType2.getType(), addedType2.getDossierTemplateId(), entries22, null, DictionaryEntryType.ENTRY); dossierTemplateStatsList = dossierTemplateStatsClient.getDossierTemplateStats(dossierTemplateIds); assertThat(dossierTemplateStatsList.size()).isEqualTo(dossierTemplateIds.size()); @@ -231,7 +231,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe entries23.add(entries2.get(0)); entries23.add(entries2.get(1)); - dictionaryClient.deleteEntries(addedType2.getType(), addedType2.getDossierTemplateId(), entries23, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.deleteEntries(addedType2.getType(), addedType2.getDossierTemplateId(), entries23, null, DictionaryEntryType.ENTRY); dictionary = dictionaryClient.getDictionaryForType(addedType2.getType(), addedType.getDossierTemplateId(), null); var entries23loaded = dictionary.getEntries(); @@ -260,7 +260,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe cru.setValidFrom(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); cru.setValidTo(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - return dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); + return dossierTemplateClient.createOrUpdateDossierTemplate(cru); } @@ -288,30 +288,30 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe if (k == 1){ fileStatusPersistenceService.updateProcessingStatus(fileId, k, 0L, 0L, 0L, 0L, 0L, 1, 1); - reanalysisClient.excludePages(dossier.getId(), fileId, new PageExclusionRequest(List.of(new PageRange(k, k))), auditor); + reanalysisClient.excludePages(dossier.getId(), fileId, new PageExclusionRequest(List.of(new PageRange(k, k)))); } if (k ==2) { - fileManagementClient.deleteFile(dossier.getId(), fileId, auditor); + fileManagementClient.deleteFile(dossier.getId(), fileId); } if (k == 3){ - fileManagementClient.hardDeleteFiles(dossier.getId(), Set.of(fileId), auditor); + fileManagementClient.hardDeleteFiles(dossier.getId(), Set.of(fileId)); } if (k == 4){ - fileClient.setStatusUnderReview(dossier.getId(), fileId, userId, auditor); + fileClient.setStatusUnderReview(dossier.getId(), fileId, userId); } if (k == 5){ - fileClient.setStatusUnderApproval(dossier.getId(), fileId, userId, auditor); + fileClient.setStatusUnderApproval(dossier.getId(), fileId, userId); } } if (j == 1) { - dossierClient.archiveDossiers(Set.of(dossier.getId()), auditor); + dossierClient.archiveDossiers(Set.of(dossier.getId())); } if (j == 2) { - dossierClient.deleteDossier(dossier.getId(), auditor); + dossierClient.deleteDossier(dossier.getId()); } if (j == 3) { - dossierClient.hardDeleteDossiers(Set.of(dossier.getId()), auditor); + dossierClient.hardDeleteDossiers(Set.of(dossier.getId())); } } @@ -326,7 +326,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe .rank(100) .build()); var dossier = dossierTesterAndProvider.provideTestDossierQuick(template, "test dossier: ", status); - dossierClient.deleteDossier(dossier.getId(), auditor); + dossierClient.deleteDossier(dossier.getId()); var cru = new DossierTemplateModel(); cru.setDossierTemplateId(template.getId()); @@ -334,7 +334,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe cru.setName(template.getName()); cru.setValidTo(OffsetDateTime.now().minusHours(1).truncatedTo(ChronoUnit.MILLIS)); - var result = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); + var result = dossierTemplateClient.createOrUpdateDossierTemplate(cru); long t1 = System.currentTimeMillis(); var stats = dossierTemplateStatsClient.getDossierTemplateStats(Set.of(template.getId())); 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 7b45aa679..c0b008f31 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 @@ -115,7 +115,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); // test the export of dossier template - dossierTemplateClient.prepareExportDownload(dossierTemplate.getId(), auditor); + dossierTemplateClient.prepareExportDownload(dossierTemplate.getId()); var statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isNotEmpty(); } @@ -138,7 +138,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { cru.setName("Template 1 Update"); cru.setApplyDictionaryUpdatesToAllDossiersByDefault(true); - var updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); + var updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru); assertThat(updated.getName()).isEqualTo("Template 1 Update"); assertThat(updated.isApplyDictionaryUpdatesToAllDossiersByDefault()).isTrue(); @@ -148,21 +148,21 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(loadedTemplate.getDossierTemplateStatus()).isEqualTo(DossierTemplateStatus.ACTIVE); - updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); + updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru); assertThat(updated.getName()).isEqualTo("Template 1 Update"); var testDossier = dossierTesterAndProvider.provideTestDossier(updated); try { - dossierTemplateClient.deleteDossierTemplate(updated.getId(), auditor); + dossierTemplateClient.deleteDossierTemplate(updated.getId()); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } - dossierClient.hardDeleteDossiers(Collections.singleton(testDossier.getId()), auditor); + dossierClient.hardDeleteDossiers(Collections.singleton(testDossier.getId())); - dossierTemplateClient.deleteDossierTemplate(updated.getId(), auditor); + dossierTemplateClient.deleteDossierTemplate(updated.getId()); assertThat(dossierTemplateClient.getAllDossierTemplates().isEmpty()).isTrue(); } @@ -222,15 +222,15 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .hasDictionary(true) .build(); - var createdType1 = dictionaryClient.addType(type, auditor); - var createdType2 = dictionaryClient.addType(type2, auditor); + var createdType1 = dictionaryClient.addType(type); + var createdType2 = dictionaryClient.addType(type2); var loadedType1 = dictionaryClient.getDictionaryForType(createdType1.getType(), createdType1.getDossierTemplateId(), null); var loadedType2 = dictionaryClient.getDictionaryForType(createdType2.getType(), createdType2.getDossierTemplateId(), null); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry1", "entry2"), false, null, DictionaryEntryType.ENTRY, auditor); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry3", "entry4"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry5", "entry6"), false, null, DictionaryEntryType.FALSE_RECOMMENDATION, auditor); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry1", "entry2"), false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry3", "entry4"), false, null, DictionaryEntryType.FALSE_POSITIVE); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry5", "entry6"), false, null, DictionaryEntryType.FALSE_RECOMMENDATION); dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), new DossierAttributesConfig(List.of(DossierAttributeConfig.builder() @@ -240,7 +240,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .label("labelDossierAttribute") .type(DossierAttributeType.TEXT) .placeholder("placeholderDossier") - .build())), auditor); + .build()))); fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(), new FileAttributesConfig(List.of(FileAttributeConfig.builder() .dossierTemplateId(dossierTemplate.getId()) @@ -253,9 +253,9 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .label("labelFileAttribute") .type(FileAttributeType.TEXT) .placeholder("placeholderFile") - .build())), auditor); + .build()))); var template = new MockMultipartFile("template", "asd".getBytes()); - reportTemplateClient.uploadTemplate(template, dossierTemplate.getId(), true, false, auditor); + reportTemplateClient.uploadTemplate(template, dossierTemplate.getId(), true, false); var col = Colors.builder() .dossierTemplateId(dossierTemplate.getId()) .appliedRedactionColor("#cccccc") @@ -272,7 +272,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .redactionColor("#999999") .updatedColor("#aaaaaa") .build(); - dictionaryClient.setColors(dossierTemplate.getId(), col, auditor); + dictionaryClient.setColors(dossierTemplate.getId(), col); var dossierStatus = DossierStatusRequest.builder() .name("dossStatus1") .description("ds description") @@ -294,14 +294,14 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); watermark.setCreatedBy("user"); - watermarkClient.saveWatermark(watermark, auditor); + watermarkClient.saveWatermark(watermark); var allTemplates = dossierTemplateClient.getAllDossierTemplates(); assertThat(allTemplates.size()).isEqualTo(1); assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate); CloneDossierTemplateRequest cdtr = CloneDossierTemplateRequest.builder().name("Clone of " + dossierTemplate.getName()).cloningUserId("user").build(); - var clonedDT = dossierTemplateClient.cloneDossierTemplate(dossierTemplate.getId(), cdtr, auditor); + var clonedDT = dossierTemplateClient.cloneDossierTemplate(dossierTemplate.getId(), cdtr); assertThat(clonedDT.getName()).isEqualTo("Clone of " + dossierTemplate.getName()); var loadedTemplate = dossierTemplateClient.getDossierTemplate(clonedDT.getId()); @@ -357,7 +357,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); setupDossierTemplate(dossierTemplate); - dossierTemplateClient.prepareExportDownload(dossierTemplate.getId(), auditor); + dossierTemplateClient.prepareExportDownload(dossierTemplate.getId()); var statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isNotEmpty(); @@ -397,15 +397,15 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .hasDictionary(true) .build(); - var createdType1 = dictionaryClient.addType(type, auditor); - var createdType2 = dictionaryClient.addType(type2, auditor); + var createdType1 = dictionaryClient.addType(type); + var createdType2 = dictionaryClient.addType(type2); var loadedType1 = dictionaryClient.getDictionaryForType(createdType1.getType(), createdType1.getDossierTemplateId(), null); var loadedType2 = dictionaryClient.getDictionaryForType(createdType2.getType(), createdType2.getDossierTemplateId(), null); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry1", "entry2"), false, null, DictionaryEntryType.ENTRY, auditor); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry3", "entry4"), false, null, DictionaryEntryType.FALSE_POSITIVE, auditor); - dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry5", "entry6"), false, null, DictionaryEntryType.FALSE_RECOMMENDATION, auditor); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry1", "entry2"), false, null, DictionaryEntryType.ENTRY); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry3", "entry4"), false, null, DictionaryEntryType.FALSE_POSITIVE); + dictionaryClient.addEntry(createdType1.getType(), createdType1.getDossierTemplateId(), List.of("entry5", "entry6"), false, null, DictionaryEntryType.FALSE_RECOMMENDATION); dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), new DossierAttributesConfig(List.of(DossierAttributeConfig.builder() @@ -415,7 +415,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .label("labelDossierAttribute") .type(DossierAttributeType.TEXT) .placeholder("placeholderDossier") - .build())), auditor); + .build()))); fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(), new FileAttributesConfig(List.of(FileAttributeConfig.builder() .dossierTemplateId(dossierTemplate.getId()) @@ -428,10 +428,10 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .label("labelFileAttribute") .type(FileAttributeType.TEXT) .placeholder("placeholderFile") - .build())), auditor); + .build()))); var template = new MockMultipartFile("template", "asd".getBytes()); - reportTemplateClient.uploadTemplate(template, dossierTemplate.getId(), true, false, auditor); + reportTemplateClient.uploadTemplate(template, dossierTemplate.getId(), true, false); var col = Colors.builder() .dossierTemplateId(dossierTemplate.getId()) .appliedRedactionColor("#cccccc") @@ -448,7 +448,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .redactionColor("#999999") .updatedColor("#aaaaaa") .build(); - dictionaryClient.setColors(dossierTemplate.getId(), col, auditor); + dictionaryClient.setColors(dossierTemplate.getId(), col); var dossierStatus = DossierStatusRequest.builder() .name("dossStatus1") .description("ds description") @@ -470,7 +470,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); watermark.setCreatedBy("user"); - watermarkClient.saveWatermark(watermark, auditor); + watermarkClient.saveWatermark(watermark); } @@ -480,7 +480,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); - dossierTemplateClient.prepareExportDownload(dossierTemplate.getId(), auditor); + dossierTemplateClient.prepareExportDownload(dossierTemplate.getId()); var statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isNotEmpty(); @@ -500,11 +500,11 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(existingLegalBasis.size()).isEqualTo(1); // delete justifications for export - legalBasisClient.deleteLegalBasis(dossierTemplate.getId(), existingLegalBasis.stream().map(LegalBasis::getName).collect(Collectors.toList()), auditor); + legalBasisClient.deleteLegalBasis(dossierTemplate.getId(), existingLegalBasis.stream().map(LegalBasis::getName).collect(Collectors.toList())); existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(existingLegalBasis.isEmpty()).isTrue(); - dossierTemplateClient.prepareExportDownload(dossierTemplate.getId(), auditor); + dossierTemplateClient.prepareExportDownload(dossierTemplate.getId()); var statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isNotEmpty(); @@ -512,7 +512,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { exportDownloadReportMessageReceiver.receive(new DownloadJob(status.getUserId(), status.getStorageId())); // add new justifications - legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("nameAgain", "description", "reason")), dossierTemplate.getId(), auditor); + legalBasisClient.setLegalBasisMapping(List.of(new LegalBasis("nameAgain", "description", "reason")), dossierTemplate.getId()); existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(existingLegalBasis.size()).isEqualTo(1); @@ -524,14 +524,14 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { cru.setDescription("new description"); cru.setKeepImageMetadata(true); - var updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru, auditor); + var updated = dossierTemplateClient.createOrUpdateDossierTemplate(cru); assertThat(updated.getName()).isNotEqualTo(dossierTemplate.getName()); var storedObject = fileManagementStorageService.getObject(TenantContext.getTenantId(), status.getStorageId()); var importTemplate = new MockMultipartFile("import.zip", "import.zip", "application/zip", storedObject); - var dossierImported = dossierTemplateClient.importDossierTemplate(importTemplate, dossierTemplate.getId(), true, auditor); + var dossierImported = dossierTemplateClient.importDossierTemplate(importTemplate, dossierTemplate.getId(), true); // assertThat(dossierImported).isNotNull(); existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); @@ -738,7 +738,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { dossierTemplateModel.setValidTo(OffsetDateTime.now().plusHours(1).truncatedTo(ChronoUnit.MILLIS)); dossierTemplateModel.setOcrByDefault(true); - DossierTemplateModel result = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel, auditor); + DossierTemplateModel result = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); assertThat(result.getName()).isEqualTo(name); assertThat(result.isOcrByDefault()).isTrue(); @@ -747,7 +747,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { dossierTemplateModel.setName("Test Dossier Template Update"); dossierTemplateModel.setOcrByDefault(false); - loadedTemplate = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel, auditor); + loadedTemplate = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); assertThat(loadedTemplate.isOcrByDefault()).isFalse(); } @@ -764,7 +764,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { dossierTemplateModel.setValidTo(OffsetDateTime.now().plusHours(1).truncatedTo(ChronoUnit.MILLIS)); dossierTemplateModel.setRemoveWatermark(true); - DossierTemplateModel result = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel, auditor); + DossierTemplateModel result = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); assertThat(result.getName()).isEqualTo(name); assertThat(result.isRemoveWatermark()).isTrue(); @@ -773,7 +773,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { dossierTemplateModel.setName("Test Dossier Template Update"); dossierTemplateModel.setRemoveWatermark(false); - loadedTemplate = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel, auditor); + loadedTemplate = dossierTemplateClient.createOrUpdateDossierTemplate(dossierTemplateModel); assertThat(loadedTemplate.isRemoveWatermark()).isFalse(); } 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 79120b8ec..c34ae8152 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 @@ -115,11 +115,11 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossier.getDossierTemplateId()); - var watermarkConfig = watermarkClient.saveWatermark(watermark, auditor); + var watermarkConfig = watermarkClient.saveWatermark(watermark); watermark.setEnabled(false); watermark.setName("watermark disabled"); - var watermarkConfigDisabled = watermarkClient.saveWatermark(watermark, auditor); + var watermarkConfigDisabled = watermarkClient.saveWatermark(watermark); var allDossiers = dossierClient.getDossiers(false, false); assertThat(allDossiers.size()).isEqualTo(1); @@ -148,7 +148,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setDossierStatusId(loadedDossierStatus.getId()); try { - dossierClient.createDossierOrUpdateDossier(cru, auditor); + dossierClient.createDossierOrUpdateDossier(cru); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } @@ -156,7 +156,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); // update the watermark preview to an enabled one cru.setDossierId(dossier.getId()); - var updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); + var updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); assertThat(updated.getDossierName()).isEqualTo("Dossier 1 Update"); assertThat(updated.getWatermarkId()).isNull(); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); @@ -166,12 +166,12 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { // disable the watermark used watermarkConfig.setEnabled(false); - var watermarkDisabled = watermarkClient.saveWatermark(watermarkConfig, auditor); + var watermarkDisabled = watermarkClient.saveWatermark(watermarkConfig); assertThat(watermarkDisabled.isEnabled()).isFalse(); assertThat(watermarkDisabled.getId()).isEqualTo(watermarkConfig.getId()); // update dossier description, while the watermark used was disabled cru.setDescription("new description"); - updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); assertThat(updated.getDescription()).isEqualTo(cru.getDescription()); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getWatermarkId()).isNull(); @@ -179,7 +179,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfigDisabled.getId()); //try to update the dossier with a different disabled watermark try { - dossierClient.createDossierOrUpdateDossier(cru, auditor); + dossierClient.createDossierOrUpdateDossier(cru); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } @@ -187,32 +187,32 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { // put dossier status to null cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setDossierStatusId(null); - updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); assertThat(updated.getDossierStatusId()).isNull(); var loadedTemplate = dossierClient.getDossier(updated.getId(), false, false); assertThat(loadedTemplate).isEqualTo(updated); - dossierClient.getDossiers(false, false).forEach(ld -> dossierClient.deleteDossier(ld.getId(), auditor)); + dossierClient.getDossiers(false, false).forEach(ld -> dossierClient.deleteDossier(ld.getId())); assertThat(dossierClient.getDossiers(false, false)).isEmpty(); assertThat(dossierClient.getSoftDeletedDossiers().size()).isEqualTo(1); assertThat(dossierClient.getDossiers(false, true)).hasSize(1); - dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()), auditor); + dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId())); assertThat(dossierClient.getDossiers(false, false)).isNotEmpty(); assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty(); - dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId()), auditor); + dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId())); assertThat(dossierClient.getDossiers(false, false)).isEmpty(); assertThat(dossierClient.getDossiers(true, false)).isEmpty(); assertThat(dossierClient.getDossiers(false, true)).hasSize(0); assertThat(dossierClient.getDossiers(true, true)).hasSize(0); assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty(); - assertThatThrownBy(() -> dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()), auditor)).isInstanceOf(FeignException.class); + assertThatThrownBy(() -> dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()))).isInstanceOf(FeignException.class); var dossierInformation = dossierClient.getDossierInformation(); assertThat(dossierInformation.getNumberOfActiveDossiers()).isEqualTo(0); @@ -242,7 +242,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(0); // Act & Assert 2 - dossierClient.archiveDossiers(Set.of(dossier1.getId()), auditor); + dossierClient.archiveDossiers(Set.of(dossier1.getId())); assertThat(dossierClient.getDossiers(false, false)).hasSize(1); assertThat(dossierClient.getDossiers(true, false)).hasSize(2); assertThat(dossierClient.getDossiers(false, true)).hasSize(1); @@ -270,7 +270,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(dossierInformation.getNumberOfArchivedDossiers()).isEqualTo(0); // Act & Assert 4 - dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId()), auditor); + dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId())); assertThat(dossierClient.getDossiers(false, false)).hasSize(0); assertThat(dossierClient.getDossiers(true, false)).hasSize(2); assertThat(dossierClient.getArchivedDossiers()).hasSize(2); @@ -283,8 +283,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { // assertThat(dossierInformation.getNumberOfArchivedDossiers()).isEqualTo(2); // Act & Assert 5 - dossierClient.deleteDossier(dossier1.getId(), auditor); - dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId()), auditor); + dossierClient.deleteDossier(dossier1.getId()); + dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId())); assertThat(dossierClient.getDossiers(false, false)).hasSize(0); assertThat(dossierClient.getDossiers(true, false)).hasSize(1); assertThat(dossierClient.getDossiers(false, true)).hasSize(1); @@ -313,8 +313,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(dossierInformation.getNumberOfArchivedDossiers()).isEqualTo(0); // Act & Assert 7 - dossierClient.hardDeleteDossiers(Set.of(dossier1.getId()), auditor); - dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId()), auditor); + dossierClient.hardDeleteDossiers(Set.of(dossier1.getId())); + dossierClient.archiveDossiers(Set.of(dossier1.getId(), dossier2.getId())); assertThat(dossierClient.getDossiers(false, false)).hasSize(0); assertThat(dossierClient.getDossiers(true, false)).hasSize(1); assertThat(dossierClient.getDossiers(false, true)).hasSize(0); @@ -342,7 +342,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossier.getDossierTemplateId()); - var watermarkConfig = watermarkClient.saveWatermark(watermark, auditor); + var watermarkConfig = watermarkClient.saveWatermark(watermark); String dossierName = "Dossier 1 Update"; @@ -360,7 +360,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setReportTemplateIds(Set.of(availableTemplates.get(0).getTemplateId(), "id-does-not-exist-1", "id-does-not-exist-2")); - var updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); + var updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); assertThat(updated.getDossierName()).isEqualTo(dossierName); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getReportTemplateIds().size()).isEqualTo(1); @@ -384,7 +384,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setReportTemplateIds(Set.of(availableTemplates.get(0).getTemplateId(), availableTemplates.get(1).getTemplateId())); - updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); assertThat(updated.getDossierName()).isEqualTo(dossierName); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getReportTemplateIds().size()).isEqualTo(2); @@ -404,7 +404,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setReportTemplateIds(Set.of(availableTemplates.get(1).getTemplateId(), availableTemplates.get(2).getTemplateId())); - updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); assertThat(updated.getDossierName()).isEqualTo(dossierName); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getReportTemplateIds().size()).isEqualTo(2); @@ -424,7 +424,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setPreviewWatermarkId(watermarkConfig.getId()); cru.setReportTemplateIds(Set.of(availableTemplates.get(0).getTemplateId())); - updated = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); + updated = dossierClient.createDossierOrUpdateDossier(cru).getBody(); assertThat(updated.getDossierName()).isEqualTo(dossierName); assertThat(updated.getPreviewWatermarkId()).isEqualTo(watermarkConfig.getId()); assertThat(updated.getReportTemplateIds().size()).isEqualTo(1); @@ -437,8 +437,8 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(loadedTemplate.getReportTemplateIds()).contains(availableTemplates.get(0).getTemplateId()); // Remove dossier - dossierClient.getDossiers(false, false).forEach(ld -> dossierClient.deleteDossier(ld.getId(), auditor)); - dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId()), auditor); + dossierClient.getDossiers(false, false).forEach(ld -> dossierClient.deleteDossier(ld.getId())); + dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId())); assertThat(dossierClient.getDossiers(false, false)).isEmpty(); assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty(); } @@ -450,9 +450,9 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { var template2 = new MockMultipartFile("reportTemplate2.docx","reportTemplate2.docx","application/word" ,new byte[]{1, 2, 3, 4}); var template3 = new MockMultipartFile("reportTemplate2.docx","reportTemplate3.docx","application/word" ,new byte[]{1, 2, 3, 4}); - reportTemplateClient.uploadTemplate(template1, dossier.getDossierTemplateId(), true, false, auditor); - reportTemplateClient.uploadTemplate(template2, dossier.getDossierTemplateId(), true, false, auditor); - reportTemplateClient.uploadTemplate(template3, dossier.getDossierTemplateId(), true, false, auditor); + reportTemplateClient.uploadTemplate(template1, dossier.getDossierTemplateId(), true, false); + reportTemplateClient.uploadTemplate(template2, dossier.getDossierTemplateId(), true, false); + reportTemplateClient.uploadTemplate(template3, dossier.getDossierTemplateId(), true, false); var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossier.getDossierTemplateId()); assertThat(availableTemplates.size()).isEqualTo(3); @@ -471,16 +471,16 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { var nonDeletedDossiers = dossierClient.getDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(1); - dossierClient.archiveDossiers(Set.of(dossier1.getId()), auditor); + dossierClient.archiveDossiers(Set.of(dossier1.getId())); nonDeletedDossiers = dossierClient.getDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(1); - dossierClient.deleteDossier(dossier1.getId(), auditor); + dossierClient.deleteDossier(dossier1.getId()); nonDeletedDossiers = dossierClient.getDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(0); assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(1); - dossierClient.hardDeleteDossiers(Set.of(dossier1.getId()), auditor); + dossierClient.hardDeleteDossiers(Set.of(dossier1.getId())); nonDeletedDossiers = dossierClient.getDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(0); assertThat(dossierClient.getSoftDeletedDossiers()).hasSize(0); @@ -500,11 +500,11 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { var archivedAndDeletedDossier = dossierTesterAndProvider.provideTestDossier(template, "archivedAndDeletedDossier"); var hardDeletedDossier = dossierTesterAndProvider.provideTestDossier(template, "hardDeletedDossier"); - dossierClient.archiveDossiers(Set.of(onlyArchivedDossier.getId(), archivedAndDeletedDossier.getId()), auditor); - dossierClient.deleteDossier(onlyDeletedDossier.getId(), auditor); - dossierClient.deleteDossier(archivedAndDeletedDossier.getId(), auditor); - dossierClient.deleteDossier(hardDeletedDossier.getId(), auditor); - dossierClient.hardDeleteDossiers(Set.of(hardDeletedDossier.getId()), auditor); + dossierClient.archiveDossiers(Set.of(onlyArchivedDossier.getId(), archivedAndDeletedDossier.getId())); + dossierClient.deleteDossier(onlyDeletedDossier.getId()); + dossierClient.deleteDossier(archivedAndDeletedDossier.getId()); + dossierClient.deleteDossier(hardDeletedDossier.getId()); + dossierClient.hardDeleteDossiers(Set.of(hardDeletedDossier.getId())); // check get all dossiers with inclusions assertThat(dossierClient.getDossiers(true, true)).hasSize(4); //all without harddeleted 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 982b8dda1..0aaa11872 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 @@ -111,7 +111,7 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes .downloadFileTypes(Set.of(DownloadFileType.ORIGINAL)) .fileIds(Collections.singletonList(testData.file.getId())) .redactionPreviewColor("#aaaaaa") - .build(), auditor); + .build()); List downloadStatuses = downloadClient.getDownloadStatus().getDownloadStatus(); assertThat(downloadStatuses).hasSize(1); @@ -161,14 +161,14 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes .dueDate(testData.dossier.getDueDate()) .dossierTemplateId(testData.dossier.getDossierTemplateId()) .reportTemplateIds(availableTemplates.stream().map(ReportTemplate::getTemplateId).collect(Collectors.toSet())) - .build(), auditor); + .build()); } private void uploadMockReportTemplate(DossierWithSingleFile testData) { var template = new MockMultipartFile("test.docx", "zzz".getBytes()); - reportTemplateClient.uploadTemplate(template, testData.getDossierTemplateId(), true, true, auditor); + reportTemplateClient.uploadTemplate(template, testData.getDossierTemplateId(), true, true); } @@ -222,7 +222,7 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes fileTesterAndProvider.markFileAsProcessed(getFileId()); - fileClient.setStatusApproved(getDossierId(), getFileId(), auditor); + fileClient.setStatusApproved(getDossierId(), getFileId()); assertThatTestFileIsApproved(); } 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 d8ea29148..3a90676ac 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 @@ -69,12 +69,12 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { fileTesterAndProvider.markFileAsProcessed(file2.getFileId()); - fileClient.setStatusApproved(dossier.getId(), file2.getId(), auditor); + fileClient.setStatusApproved(dossier.getId(), file2.getId()); var file22 = fileClient.getFileStatus(dossier.getId(), file2.getId()); assertThat(file22.getWorkflowStatus()).isEqualTo(WorkflowStatus.APPROVED); try { - downloadClient.prepareDownload(PrepareDownloadRequest.builder().dossierId(dossier.getId()).fileIds(List.of(file.getId(), file2.getId())).build(), auditor); + downloadClient.prepareDownload(PrepareDownloadRequest.builder().dossierId(dossier.getId()).fileIds(List.of(file.getId(), file2.getId())).build()); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } @@ -83,7 +83,7 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { .downloadFileTypes(Set.of(DownloadFileType.ORIGINAL)) .dossierId(dossier.getId()) .fileIds(List.of(file2.getId())) - .build(), auditor); + .build()); downloadMessageReceiver.receive(new DownloadJob(userProvider.getUserId(), downloads.getStorageId())); var reportInfoId = downloads.getStorageId().substring(0, downloads.getStorageId().length() - 3) + "/REPORT_INFO.json"; @@ -98,7 +98,7 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { assertThat(statuses.getDownloadStatus()).isNotEmpty(); assertThat(statuses.getDownloadStatus().iterator().next().getLastDownload()).isNull(); - downloadClient.deleteDownloadStatus(new RemoveDownloadRequest(List.of(statuses.getDownloadStatus().iterator().next().getStorageId())), auditor); + downloadClient.deleteDownloadStatus(new RemoveDownloadRequest(List.of(statuses.getDownloadStatus().iterator().next().getStorageId()))); statuses = downloadClient.getDownloadStatus(); assertThat(statuses.getDownloadStatus()).isEmpty(); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java index 6f0b53517..88627f823 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileAttributeTest.java @@ -67,13 +67,13 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { generalConfig.setEncoding("UTF-8"); generalConfig.setFilenameMappingColumnHeaderName("Name"); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig, auditor); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig); var loadedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()); assertThat(loadedConfig.getDelimiter()).isEqualTo(","); assertThat(loadedConfig.getEncoding()).isEqualTo(UTF_ENCODING); generalConfig.setEncoding(" ASCII "); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig, auditor); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig); loadedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()); assertThat(loadedConfig.getEncoding()).isEqualTo(ASCII_ENCODING); @@ -85,7 +85,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute C").primaryAttribute(false).label("Attribute C").build()); configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute D").primaryAttribute(false).label("Attribute D").build()); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name", ",", UTF_ENCODING, configs), auditor); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name", ",", UTF_ENCODING, configs)); List loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(5); @@ -97,7 +97,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { .filter(a -> a.getCsvColumnHeader().equalsIgnoreCase("Attribute C")) .findAny() .map(FileAttributeConfig::getId) - .orElseThrow(() -> new IllegalArgumentException("Should exists!")), auditor); + .orElseThrow(() -> new IllegalArgumentException("Should exists!"))); fileAttributeConfigClient.deleteFileAttributes(dossier.getDossierTemplateId(), loadedConfigs.stream() @@ -105,7 +105,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { .findAny() .map(FileAttributeConfig::getId) .stream() - .collect(Collectors.toList()), auditor); + .collect(Collectors.toList())); loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(3); @@ -113,20 +113,20 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { FileAttributeConfig newConfig = new FileAttributeConfig(); newConfig.setPrimaryAttribute(true); newConfig.setLabel("Test Attribute"); - var created = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig, auditor); + var created = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig); loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(4); newConfig.setId(created.getId()); newConfig.setLabel("Test Attribute Update"); - var updated = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig, auditor); + var updated = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig); loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(4); assertThat(updated.getLabel()).isEqualTo("Test Attribute Update"); assertThat(fileClient.getFileStatus(dossier.getId(), file.getId()).getLastFileAttributeChange()).isNull(); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(updated.getId(), "Lorem Ipsum")), auditor); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(updated.getId(), "Lorem Ipsum"))); assertThat(fileClient.getFileStatus(dossier.getId(), file.getId()).getLastFileAttributeChange()).isNotNull(); @@ -134,7 +134,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { assertThat(fileAttributes.size()).isEqualTo(1); assertThat(fileAttributes.entrySet().iterator().next().getValue()).isEqualTo("Lorem Ipsum"); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(updated.getId(), " ")), auditor); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(updated.getId(), " "))); fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue(); assertThat(fileAttributes.size()).isEqualTo(1); @@ -142,7 +142,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { Map fileAttributesWithNullValue = new HashMap<>(); fileAttributesWithNullValue.put(updated.getId(), null); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(fileAttributesWithNullValue), auditor); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(fileAttributesWithNullValue)); fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue(); assertThat(fileAttributes.size()).isEqualTo(1); @@ -155,12 +155,12 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { assertThat(fileAttributes.size()).isEqualTo(2); fileAttributes.put(fileAttributes.keySet().iterator().next(), "changed"); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(fileAttributes), auditor); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(fileAttributes)); fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue(); assertThat(fileAttributes.size()).isEqualTo(2); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name",",","ASCII",new ArrayList<>()), auditor); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig("Name",",","ASCII",new ArrayList<>())); loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(0); @@ -182,7 +182,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { generalConfig.setEncoding("UTF-8"); generalConfig.setFilenameMappingColumnHeaderName("Name"); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig, auditor); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig); var loadedConfig = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()); assertThat(loadedConfig.getDelimiter()).isEqualTo(","); @@ -195,20 +195,20 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { generalConfig.setFileAttributeConfigs(configs); - fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig, auditor); + fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), generalConfig); List loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(5); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "Lorem Ipsum")), auditor); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfigs.get(0).getId(), "Lorem Ipsum"))); Map fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes().getAttributeIdToValue(); assertThat(fileAttributes.size()).isEqualTo(1); assertThat(fileAttributes.entrySet().iterator().next().getValue()).isEqualTo("Lorem Ipsum"); // Delete file - fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); - fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); + fileManagementClient.deleteFile(dossier.getId(), file.getId()); + fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId())); var deletedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(deletedFile.getFileAttributes().getAttributeIdToValue()).isEmpty(); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java index c06e7b39c..a2ea6e617 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/FileProcessingTest.java @@ -119,7 +119,7 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getAnalysisVersion()).isEqualTo(0); // Delete file - fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); + fileManagementClient.deleteFile(dossier.getId(), file.getId()); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); // assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.DELETED); assertThat(loadedFile.getSoftDeletedTime()).isNotNull(); @@ -155,7 +155,7 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { var file = fileTesterAndProvider.testAndProvideFile(dossier); var userId = userProvider.getUserId(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), @@ -165,9 +165,9 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { - reanalysisClient.toggleExclusion(file.getDossierId(), file.getId(), true, auditor); + reanalysisClient.toggleExclusion(file.getDossierId(), file.getId(), true); - reanalysisClient.toggleExclusion(file.getDossierId(), file.getId(), false, auditor); + reanalysisClient.toggleExclusion(file.getDossierId(), file.getId(), false); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); @@ -190,7 +190,7 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.PROCESSED); // Delete file - fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); + fileManagementClient.deleteFile(dossier.getId(), file.getId()); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getSoftDeletedTime()).isNotNull(); @@ -213,7 +213,7 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getFileErrorInfo()).isNotNull(); assertThat(loadedFile.getFileErrorInfo().getCause()).isEqualTo("analysisFailed"); - reanalysisClient.reanalyzeFilesForDossier(dossier.getId(), List.of(loadedFile.getId()), true, auditor); + reanalysisClient.reanalyzeFilesForDossier(dossier.getId(), List.of(loadedFile.getId()), true); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.FULL_PROCESSING); 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 756ff0e57..3a35e3652 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 @@ -130,7 +130,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); - fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); + fileManagementClient.deleteFile(dossier.getId(), file.getId()); var nrOfFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()).size(); assertThat(nrOfFiles).isEqualTo(1); @@ -155,14 +155,14 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); var userId = userProvider.getUserId(); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId, auditor); - reanalysisClient.toggleAutomaticAnalysis(dossier.getId(), file.getId(), true, auditor); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId); + reanalysisClient.toggleAutomaticAnalysis(dossier.getId(), file.getId(), true); List configs = new ArrayList<>(); configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name").build()); configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(true).label("Attribute A").build()); - var loadedConfig = fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig(configs), auditor); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfig.getFileAttributeConfigs().get(0).getId(), "123")), auditor); + var loadedConfig = fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), new FileAttributesConfig(configs)); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), new FileAttributes(Map.of(loadedConfig.getFileAttributeConfigs().get(0).getId(), "123"))); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isTrue(); @@ -181,7 +181,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isFalse(); assertThat(loadedFile.getFileAttributes().getAttributeIdToValue()).size().isEqualTo(0); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); viewedPages = viewedPagesClient.getViewedPages(file.getDossierId(), file.getFileId()); assertThat(viewedPages.getPages().size()).isEqualTo(0); @@ -197,15 +197,15 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var file = fileTesterAndProvider.testAndProvideFile(dossier, filename); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); - reanalysisClient.excludePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1))), auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); + reanalysisClient.excludePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1)))); var redactionLog = redactionLogClient.getRedactionLog(dossier.getId(), file.getId(), null, false, true); assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId, auditor); - reanalysisClient.toggleAutomaticAnalysis(dossier.getId(), file.getId(), true, auditor); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId); + reanalysisClient.toggleAutomaticAnalysis(dossier.getId(), file.getId(), true); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isTrue(); @@ -243,36 +243,36 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getFileManipulationDate()).isNotNull(); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId, auditor); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.NEW); assertThat(loadedFile.getLastReviewer()).isNull(); assertThat(loadedFile.getLastApprover()).isNull(); - reanalysisClient.excludePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1))), auditor); + reanalysisClient.excludePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1)))); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getExcludedPages()).containsExactlyInAnyOrder(1); - reanalysisClient.includePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1))), auditor); + reanalysisClient.includePages(dossier.getId(), file.getId(), new PageExclusionRequest(List.of(new PageRange(1, 1)))); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getExcludedPages()).isEmpty(); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId, auditor); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.NEW); assertThat(loadedFile.getLastReviewer()).isNull(); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId, auditor); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), userId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_APPROVAL); assertThat(loadedFile.getAssignee()).isEqualTo(userId); @@ -280,7 +280,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastApprover()).isEqualTo(userId); fileTesterAndProvider.markFileAsProcessed(file.getFileId()); - fileClient.setStatusApproved(dossier.getId(), file.getId(), auditor); + fileClient.setStatusApproved(dossier.getId(), file.getId()); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.APPROVED); assertThat(loadedFile.getAssignee()).isEqualTo(userId); @@ -288,7 +288,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastApprover()).isEqualTo(userId); assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isTrue(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), altUserId, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), altUserId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); @@ -296,44 +296,44 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastApprover()).isEqualTo(userId); assertThat(loadedFile.isExcludedFromAutomaticAnalysis()).isTrue(); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), altUserId, auditor); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), altUserId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_APPROVAL); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isEqualTo(altUserId); - fileClient.setStatusApproved(dossier.getId(), file.getId(), auditor); + fileClient.setStatusApproved(dossier.getId(), file.getId()); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.APPROVED); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isEqualTo(altUserId); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null); - reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), true, auditor); + reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), true); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcluded()).isTrue(); - reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), false, auditor); + reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), false); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcluded()).isFalse(); - fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); + fileManagementClient.deleteFile(dossier.getId(), file.getId()); var softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(1); var activeFiles = fileClient.getDossierStatus(dossier.getId()); assertThat(activeFiles.size()).isEqualTo(0); - fileManagementClient.restoreFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); + fileManagementClient.restoreFiles(dossier.getId(), Sets.newHashSet(file.getId())); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(0); activeFiles = fileClient.getDossierStatus(dossier.getId()); assertThat(activeFiles.size()).isEqualTo(1); - fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); + fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId())); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(0); @@ -374,36 +374,36 @@ public class FileTest extends AbstractPersistenceServerServiceTest { .legalBasis("1") .dictionaryEntryType(DictionaryEntryType.ENTRY) .build(); - manualRedactionClient.addRedactionBulk(dossierId, fileId, Set.of(addRedactionRequest), auditor); + manualRedactionClient.addRedactionBulk(dossierId, fileId, Set.of(addRedactionRequest)); manualRedactionClient.removeRedactionBulk(dossierId, fileId, - Set.of(RemoveRedactionRequestModel.builder().annotationId(annotationId).comment("comment").removeFromDictionary(false).build()), auditor); + Set.of(RemoveRedactionRequestModel.builder().annotationId(annotationId).comment("comment").removeFromDictionary(false).build())); manualRedactionClient.forceRedactionBulk(dossierId, fileId, - Set.of(ForceRedactionRequestModel.builder().annotationId("forceRedactionAnnotation").comment("comment").legalBasis("1").build()), auditor); + Set.of(ForceRedactionRequestModel.builder().annotationId("forceRedactionAnnotation").comment("comment").legalBasis("1").build())); manualRedactionClient.legalBasisChangeBulk(dossierId, fileId, - Set.of(LegalBasisChangeRequestModel.builder().annotationId("legalBasisChangeAnnotation").comment("comment").legalBasis("1").build()), auditor); + Set.of(LegalBasisChangeRequestModel.builder().annotationId("legalBasisChangeAnnotation").comment("comment").legalBasis("1").build())); manualRedactionClient.recategorizeBulk(dossierId, fileId, - Set.of(RecategorizationRequestModel.builder().annotationId(annotationId).comment("comment").type("new-type").build()), auditor); + Set.of(RecategorizationRequestModel.builder().annotationId(annotationId).comment("comment").type("new-type").build())); var loadedFile = fileClient.getFileStatus(dossierId, fileId); - fileManagementClient.deleteFile(dossier.getId(), file.getId(), auditor); + fileManagementClient.deleteFile(dossier.getId(), file.getId()); var softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(1); var activeFiles = fileClient.getDossierStatus(dossier.getId()); assertThat(activeFiles.size()).isEqualTo(0); - fileManagementClient.restoreFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); + fileManagementClient.restoreFiles(dossier.getId(), Sets.newHashSet(file.getId())); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(0); activeFiles = fileClient.getDossierStatus(dossier.getId()); assertThat(activeFiles.size()).isEqualTo(1); - fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId()), auditor); + fileManagementClient.hardDeleteFiles(dossier.getId(), Sets.newHashSet(file.getId())); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossier.getId()); assertThat(softDeletedFiles.size()).isEqualTo(0); @@ -430,7 +430,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { var userId = userProvider.getUserId(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); var addRedaction = manualRedactionClient.addRedactionBulk(dossierId, fileId, @@ -443,15 +443,15 @@ public class FileTest extends AbstractPersistenceServerServiceTest { .value("test") .legalBasis("1") .dictionaryEntryType(DictionaryEntryType.ENTRY) - .build()), auditor).iterator().next(); + .build())).iterator().next(); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); - reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), true, auditor); + reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), true); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcluded()).isTrue(); - reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), false, auditor); + reanalysisClient.toggleExclusion(dossier.getId(), file.getId(), false); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.isExcluded()).isFalse(); } @@ -474,18 +474,18 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); - reanalysisClient.excludePages(dossierId, fileId, new PageExclusionRequest(List.of(new PageRange(1, 1))), auditor); + reanalysisClient.excludePages(dossierId, fileId, new PageExclusionRequest(List.of(new PageRange(1, 1)))); assertThat(fileClient.getFileStatus(dossierId, fileId).getExcludedPages().size()).isEqualTo(1); assertThat(fileClient.getFileStatus(dossierId, fileId).getExcludedPages()).contains(1); // Delete file - fileManagementClient.deleteFile(dossierId, fileId, auditor); + fileManagementClient.deleteFile(dossierId, fileId); var softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossierId); assertThat(softDeletedFiles.size()).isEqualTo(1); var activeFiles = fileClient.getDossierStatus(dossierId); assertThat(activeFiles.size()).isEqualTo(0); - fileManagementClient.hardDeleteFiles(dossierId, Sets.newHashSet(fileId), auditor); + fileManagementClient.hardDeleteFiles(dossierId, Sets.newHashSet(fileId)); softDeletedFiles = fileClient.getSoftDeletedDossierStatus(dossierId); assertThat(softDeletedFiles.size()).isEqualTo(0); @@ -516,28 +516,28 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastReviewer()).isNull(); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), userId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(userId); assertThat(loadedFile.getLastReviewer()).isNull(); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), altUserId, auditor); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), altUserId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isNull(); - fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), altUserId, auditor); + fileClient.setStatusUnderApproval(dossier.getId(), file.getId(), altUserId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_APPROVAL); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); assertThat(loadedFile.getLastReviewer()).isEqualTo(userId); assertThat(loadedFile.getLastApprover()).isEqualTo(altUserId); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId, auditor); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_APPROVAL); assertThat(loadedFile.getAssignee()).isEqualTo(userId); @@ -566,7 +566,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastApprover()).isNull(); Exception exception = Assertions.assertThrows(FeignException.BadRequest.class, () -> { - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), null); }); String expectedMessage = "File is already unassigned!"; @@ -575,7 +575,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(actualMessage).contains(expectedMessage); exception = Assertions.assertThrows(FeignException.BadRequest.class, () -> { - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), user2, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), user2); }); expectedMessage = "User must be dossier member"; @@ -583,7 +583,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(actualMessage).contains(expectedMessage); - fileClient.setStatusUnderReview(dossier.getId(), file.getId(), altUserId, auditor); + fileClient.setStatusUnderReview(dossier.getId(), file.getId(), altUserId); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.UNDER_REVIEW); assertThat(loadedFile.getAssignee()).isEqualTo(altUserId); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java index caae4d7b6..c3d7fb9d8 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LegalBasisTest.java @@ -43,31 +43,31 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest { var mappings = new ArrayList(); mappings.add(LegalBasis.builder().name("test 1").description("test 1").reason("test 1").build()); mappings.add(LegalBasis.builder().name("test 2").description("test 2").reason("test 2").build()); - legalBasisClient.setLegalBasisMapping(mappings, dossierTemplate.getId(), auditor); + legalBasisClient.setLegalBasisMapping(mappings, dossierTemplate.getId()); var mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(mapping.size()).isEqualTo(2); assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2"); var legalBasis = LegalBasis.builder().name("test 3").description("test 3").reason("test 3").build(); - legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis, auditor); + legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis); mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(mapping.size()).isEqualTo(3); assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3"); legalBasis = LegalBasis.builder().name("test 3").reason("test 3").description("test 3 - updated").build(); - legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis, auditor); + legalBasisClient.addOrUpdateLegalBasis(dossierTemplate.getId(), legalBasis); mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(mapping.size()).isEqualTo(3); assertThat(mapping.stream().map(LegalBasis::getDescription).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2", "test 3 - updated"); - legalBasisClient.deleteLegalBasis(dossierTemplate.getId(), Lists.newArrayList("test 1"), auditor); + legalBasisClient.deleteLegalBasis(dossierTemplate.getId(), Lists.newArrayList("test 1")); mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(mapping.size()).isEqualTo(2); - legalBasisClient.setLegalBasisMapping(Lists.newArrayList(), dossierTemplate.getId(), auditor); + legalBasisClient.setLegalBasisMapping(Lists.newArrayList(), dossierTemplate.getId()); assertThat(legalBasisClient.getLegalBasisMapping(dossierTemplate.getId())).isEmpty(); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java index 3e5da7697..2b58fdafa 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/LicenseReportTest.java @@ -78,7 +78,7 @@ public class LicenseReportTest extends AbstractPersistenceServerServiceTest { LicenseReport licenseReport = licenseReportClient.getReport(LicenseReportRequest.builder() .startDate(Instant.parse("2023-01-01T10:00:00Z")) .endDate(Instant.parse("2023-05-01T11:00:00Z")) - .build(), auditor); + .build()); assertThat(licenseReport.getTotalFilesUploadedBytes()).isEqualTo(900L); assertThat(licenseReport.getActiveFilesUploadedBytes()).isEqualTo(700L); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java index 578b8d6d3..5c973e35d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ManualRedactionTest.java @@ -95,7 +95,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var type = typeProvider.testAndProvideType(dossierTemplate, null, "type", true); assertThat(type.isDossierDictionaryOnly()).isTrue(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); var redactionLog = new RedactionLog(1, 1, @@ -112,7 +112,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { Assertions.assertThrows(FeignException.Forbidden.class, () -> manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), - Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), auditor));//.get(0); + Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build())));//.get(0); var dossierTemplateDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId()), null); assertThat(dossierTemplateDictionary.getEntries().size()).isZero(); @@ -143,7 +143,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .value("Luke Skywalker") .legalBasis("1") .sourceId("SourceId") - .build()), auditor)); + .build()))); var dossierTemplateDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId()), null); assertThat(dossierTemplateDictionary.getEntries().size()).isZero(); @@ -160,7 +160,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var type = typeProvider.testAndProvideType(dossierTemplate); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), dossier.getDossierId(), DictionaryEntryType.ENTRY); var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); assertThat(dossierDictionary.getEntries().size()).isEqualTo(1); @@ -179,7 +179,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .value("Luke Skywalker") .legalBasis("1") .sourceId("SourceId") - .build()), auditor); + .build())); dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); assertThat(dossierDictionary.getEntries().size()).isEqualTo(1); @@ -213,7 +213,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .value("Luke Skywalker") .legalBasis("1") .sourceId("SourceId") - .build()), auditor); + .build())); var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); assertThat(dossierDictionary.getEntries().size()).isEqualTo(1); @@ -236,9 +236,9 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entries = new ArrayList(); entries.add("Luke Skywalker"); entries.add("Darth Vader"); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); Dictionary dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder("Luke Skywalker", "Darth Vader"); @@ -260,7 +260,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), - Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), auditor); + Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build())); dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder("Darth Vader"); @@ -288,7 +288,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var entries = new ArrayList(); entries.add("Luke Skywalker"); entries.add("Darth Vader"); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); //FIXME should be created on the fly. // CreateTypeValue dossierDictionaryType = MagicConverter.convert(type, CreateTypeValue.class); @@ -308,7 +308,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), - Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).build()), auditor).get(0); + Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).build())).get(0); var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); @@ -333,7 +333,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { //FIXME should be created on the fly. // CreateTypeValue dossierDictionaryType = MagicConverter.convert(type, CreateTypeValue.class); // dictionaryClient.addType(dossierDictionaryType, dossier.getDossierId()); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of("Luke Skywalker"), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); var redactionLog = new RedactionLog(1, 1, @@ -349,7 +349,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactionClient.removeRedactionBulk(dossier.getId(), file.getId(), - Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build()), auditor).get(0); + Set.of(RemoveRedactionRequestModel.builder().annotationId("AnnotationId").removeFromDictionary(true).removeFromAllDossiers(true).build())).get(0); var dossierDictionary = internalDictionaryClient.getDictionaryForType(toTypeId(type.getType(), dossierTemplate.getDossierTemplateId(), dossier.getDossierId()), null); assertThat(dossierDictionary.getEntries().size()).isEqualTo(1); @@ -405,7 +405,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .sourceId("SourceId") .build(); - var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict), auditor); + var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); var loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId()); var redactionLog1 = new RedactionLog(1, @@ -457,7 +457,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .addToAllDossiers(true) .build(); - manualRedactionClient.resizeRedactionBulk(dossier1.getDossierId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos), auditor); + manualRedactionClient.resizeRedactionBulk(dossier1.getDossierId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos)); loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId()); @@ -552,7 +552,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .sourceId("SourceId") .build(); - var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict), auditor); + var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); var loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId()); var redactionLog1 = new RedactionLog(1, @@ -604,7 +604,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .addToAllDossiers(true) .build(); - manualRedactionClient.resizeRedactionBulk(dossier1.getDossierId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos), auditor); + manualRedactionClient.resizeRedactionBulk(dossier1.getDossierId(), file1.getFileId(), Set.of(resizeRedactionDosAndAddToAllDos)); loadedRedactionsFile1 = manualRedactionClient.getManualRedactions(file1.getDossierId(), file1.getFileId()); @@ -702,7 +702,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .sourceId("SourceId") .build(); - var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict), auditor); + var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); var redactionLog1 = new RedactionLog(1, 1, @@ -753,7 +753,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .addToAllDossiers(true) .build(); - var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getDossierId(), file2.getFileId(), Set.of(resizeRedactionDosTemp), auditor); + var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getDossierId(), file2.getFileId(), Set.of(resizeRedactionDosTemp)); var loadedRedactionsFile2 = manualRedactionClient.getManualRedactions(file2.getDossierId(), file2.getFileId()); @@ -848,7 +848,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .sourceId("SourceId") .build(); - var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict), auditor); + var addRedactions = manualRedactionClient.addRedactionBulk(dossier1.getDossierId(), file1.getId(), Set.of(redactionDos, redactionDosTempDict)); var redactionLog1 = new RedactionLog(1, 1, @@ -899,7 +899,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { .addToAllDossiers(true) .build(); - var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getDossierId(), file2.getFileId(), Set.of(resizeRedactionDosTemp), auditor); + var resizeRedactions = manualRedactionClient.resizeRedactionBulk(dossier2.getDossierId(), file2.getFileId(), Set.of(resizeRedactionDosTemp)); var loadedRedactionsFile2 = manualRedactionClient.getManualRedactions(file2.getDossierId(), file2.getFileId()); @@ -966,9 +966,9 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var darthVader = "Darth Vader"; entries.add(lukeSkywalker); entries.add(darthVader); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), entries, false, null, DictionaryEntryType.ENTRY); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of(lukeSkywalker), false, dossier.getDossierId(), DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), List.of(lukeSkywalker), false, dossier.getDossierId(), DictionaryEntryType.ENTRY); Dictionary dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder(lukeSkywalker, darthVader); @@ -995,7 +995,7 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactionClient.recategorizeBulk(dossier.getId(), file.getId(), - Set.of(RecategorizationRequestModel.builder().type(type2.getType()).annotationId(annotationId).addToDictionary(true).addToAllDossiers(true).build()), auditor); + Set.of(RecategorizationRequestModel.builder().type(type2.getType()).annotationId(annotationId).addToDictionary(true).addToAllDossiers(true).build())); dossierTemplateDictionary = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(dossierTemplateDictionary.getEntries()).containsExactlyInAnyOrder(darthVader); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReanalysisTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReanalysisTest.java index c44a87a11..eba7943b2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReanalysisTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReanalysisTest.java @@ -46,32 +46,32 @@ public class ReanalysisTest extends AbstractPersistenceServerServiceTest { var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isNotEqualTo(ProcessingStatus.PROCESSED); - reanalysisClient.ocrDossier(dossier.getId(), auditor); + reanalysisClient.ocrDossier(dossier.getId()); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isNotEqualTo(ProcessingStatus.PROCESSED); resetProcessingStatus(file); - reanalysisClient.ocrDossier(dossier.getId(), auditor); + reanalysisClient.ocrDossier(dossier.getId()); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.OCR_PROCESSING_QUEUED); resetProcessingStatus(file); - reanalysisClient.ocrFile(dossier.getId(), file.getId(), true, auditor); + reanalysisClient.ocrFile(dossier.getId(), file.getId(), true); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.OCR_PROCESSING_QUEUED); resetProcessingStatus(file); - reanalysisClient.ocrFiles(dossier.getId(), Set.of(file.getId()), auditor); + reanalysisClient.ocrFiles(dossier.getId(), Set.of(file.getId())); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.OCR_PROCESSING_QUEUED); resetProcessingStatus(file); - reanalysisClient.reanalyzeFilesForDossier(dossier.getId(), List.of(file.getId()), true, auditor); + reanalysisClient.reanalyzeFilesForDossier(dossier.getId(), List.of(file.getId()), true); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.FULL_PROCESSING); resetProcessingStatus(file); - reanalysisClient.reanalyzeDossier(dossier.getId(), true, auditor); + reanalysisClient.reanalyzeDossier(dossier.getId(), true); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.FULL_PROCESSING); resetProcessingStatus(file); 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 5913fb1a6..fd74e8512 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 @@ -51,7 +51,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { // var download = reportTemplateClient.downloadReportTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId()); // assertThat(download.getFile().length).isEqualTo(4); - reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId(), auditor); + reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId()); availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isEmpty(); @@ -82,7 +82,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo("report.xlsx"); - reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId(), auditor); + reportTemplateClient.deleteTemplate(firstTemplate.getDossierTemplateId(), firstTemplate.getTemplateId()); availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isEmpty(); 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 dc351c6b7..43ea31130 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 @@ -29,13 +29,13 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); - rulesClient.upload(new RulesUploadRequest("lorem ipsum", dossierTemplate.getId()), auditor); + rulesClient.upload(new RulesUploadRequest("lorem ipsum", dossierTemplate.getId())); assertThat(versionClient.getVersions(List.of(dossierTemplate.getId())) .get(dossierTemplate.getId()) .getRulesVersion()).isEqualTo(3); //1. beim Anlegen des DossierTemplates; 2. bei provideTestTemplate(), damit es ACTIVE ist assertThat(rulesClient.download(dossierTemplate.getId()).getRules()).isEqualTo("lorem ipsum"); - rulesClient.upload(new RulesUploadRequest("lorem ipsum dolor sit amet", dossierTemplate.getId()), auditor); + rulesClient.upload(new RulesUploadRequest("lorem ipsum dolor sit amet", dossierTemplate.getId())); assertThat(versionClient.getVersions(List.of(dossierTemplate.getId())).get(dossierTemplate.getId()).getRulesVersion()).isEqualTo(4); assertThat(rulesClient.download(dossierTemplate.getId()).getRules()).isEqualTo("lorem ipsum dolor sit amet"); 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 b537917af..a82d6d735 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 @@ -39,7 +39,7 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { var type = typeProvider.testAndProvideType(dossierTemplate); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), Lists.newArrayList("aaa", "bbb", "ccc"), true, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), Lists.newArrayList("aaa", "bbb", "ccc"), true, null, DictionaryEntryType.ENTRY); var loadedType = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -49,7 +49,7 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { assertThat(dict.size()).isEqualTo(3); - dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), Lists.newArrayList("aaa", "bbb", "ccc"), null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.deleteEntries(type.getType(), type.getDossierTemplateId(), Lists.newArrayList("aaa", "bbb", "ccc"), null, DictionaryEntryType.ENTRY); loadedType = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); @@ -60,12 +60,12 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { var request = new UpdateTypeValue(); BeanUtils.copyProperties(type, request); request.setRank(99); - dictionaryClient.updateType(type.getType(), type.getDossierTemplateId(), request, auditor); + dictionaryClient.updateType(type.getType(), type.getDossierTemplateId(), request); loadedType = dictionaryClient.getDictionaryForType(type.getType(), type.getDossierTemplateId(), null); assertThat(loadedType.getRank()).isEqualTo(99); - dictionaryClient.deleteType(type.getType(), type.getDossierTemplateId(), auditor); + dictionaryClient.deleteType(type.getType(), type.getDossierTemplateId()); var typesForTemplate = dictionaryClient.getAllTypes(loadedType.getDossierTemplateId(), null, false).getTypes(); assertThat(typesForTemplate).isEmpty(); @@ -101,7 +101,7 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { colors.setDossierTemplateId(dossierTemplate.getId()); - dictionaryClient.setColors(dossierTemplate.getId(), colors, auditor); + dictionaryClient.setColors(dossierTemplate.getId(), colors); var savedColors = dictionaryClient.getColors(dossierTemplate.getId()); assertThat(savedColors).isEqualTo(colors); 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 6b31a504b..6abd7dc26 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 { @@ -41,7 +40,7 @@ public class ViewedPagesTest extends AbstractPersistenceServerServiceTest { var file = fileTesterAndProvider.testAndProvideFile(dossier); var userId = userProvider.getUserId(); - fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId, auditor); + fileClient.setCurrentFileAssignee(dossier.getId(), file.getId(), userId); var fileId = file.getId(); viewedPagesClient.addPage(dossier.getId(),fileId, new ViewedPagesRequest(1)); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/WatermarkTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/WatermarkTest.java index 80f782ef4..5f59db92c 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/WatermarkTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/WatermarkTest.java @@ -55,20 +55,20 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); watermark.setCreatedBy("user"); - var saved = watermarkClient.saveWatermark(watermark, auditor); + var saved = watermarkClient.saveWatermark(watermark); var loadedWatermark = watermarkClient.getWatermark(saved.getId()); assertThat(loadedWatermark).isEqualTo(saved); assertThat(saved.getDateAdded()).isNotNull(); // try to save the same watermark without id try { - watermarkClient.saveWatermark(watermark, auditor); + watermarkClient.saveWatermark(watermark); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } // try to save the same watermark with id try { - watermarkClient.saveWatermark(saved, auditor); + watermarkClient.saveWatermark(saved); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } @@ -77,7 +77,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { saved.setFontSize(14); saved.setEnabled(true); saved.setDossierTemplateId(null); - var updated = watermarkClient.saveWatermark(saved, auditor); + var updated = watermarkClient.saveWatermark(saved); assertThat(updated.getDossierTemplateId()).isEqualTo(dossierTemplate.getId()); assertThat(updated.getDateModified()).isNotNull(); assertThat(updated.isEnabled()).isTrue(); @@ -93,7 +93,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { cru.setDossierId(dossier.getId()); cru.setWatermarkId(updated.getId()); - var updatedDossier = dossierClient.createDossierOrUpdateDossier(cru, auditor).getBody(); + var updatedDossier = dossierClient.createDossierOrUpdateDossier(cru).getBody(); assertThat(updatedDossier.getWatermarkId()).isEqualTo(updated.getId()); assertThat(watermarkClient.isWatermarkUsed(updated.getId())).isEqualTo(JSONPrimitive.of(true)); @@ -101,7 +101,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { // update current watermark with new dossier template id updated.setDossierTemplateId("dossierTemplate2"); try { - watermarkClient.saveWatermark(updated, auditor); + watermarkClient.saveWatermark(updated); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } @@ -116,7 +116,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark2.setDossierTemplateId(dossierTemplate.getId()); try { - watermarkClient.saveWatermark(watermark2, auditor); + watermarkClient.saveWatermark(watermark2); } catch (FeignException.FeignClientException e) { assertThat(e.status()).isEqualTo(409); } @@ -139,12 +139,12 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossierTemplate.getId()); - var saved = watermarkClient.saveWatermark(watermark, auditor); + var saved = watermarkClient.saveWatermark(watermark); var loadedWatermark = watermarkClient.getWatermark(saved.getId()); assertThat(loadedWatermark).isEqualTo(saved); // Delete first time - watermarkClient.deleteWatermark(saved.getId(), auditor); + watermarkClient.deleteWatermark(saved.getId()); try { watermarkClient.getWatermark(saved.getId()); @@ -154,7 +154,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { // try to delete a not existing watermark try { - watermarkClient.deleteWatermark(saved.getId(), auditor); + watermarkClient.deleteWatermark(saved.getId()); } catch (FeignException e) { assertThat(e.status()).isEqualTo(404); } @@ -177,13 +177,13 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossierTemplate.getId()); - var saved = watermarkClient.saveWatermark(watermark, auditor); + var saved = watermarkClient.saveWatermark(watermark); var loadedWatermark = watermarkClient.getWatermark(saved.getId()); assertThat(loadedWatermark).isEqualTo(saved); // try to save the same watermark try { - watermarkClient.saveWatermark(watermark, auditor); + watermarkClient.saveWatermark(watermark); } catch (FeignException e) { assertThat(e.status()).isEqualTo(409); } @@ -195,7 +195,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setDossierTemplateId(dossierTemplate.getId()); - var saved2 = watermarkClient.saveWatermark(watermark, auditor); + var saved2 = watermarkClient.saveWatermark(watermark); var loadedWatermark2 = watermarkClient.getWatermark(saved.getId()); } @@ -215,7 +215,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); Exception exception = Assertions.assertThrows(FeignException.BadRequest.class, () -> { - watermarkClient.saveWatermark(watermark, auditor); + watermarkClient.saveWatermark(watermark); }); String expectedMessage = "The specified color: " + color + " is malformed."; @@ -224,7 +224,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { assertThat(actualMessage).contains(expectedMessage); watermark.setHexColor(null); - var saved2 = watermarkClient.saveWatermark(watermark, auditor); + var saved2 = watermarkClient.saveWatermark(watermark); assertThat(saved2.getHexColor()).isEqualTo("#000000"); } @@ -246,7 +246,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setDossierTemplateId(dossierTemplate.getId()); assertThat(watermark.getOpacity()).isEqualTo(0); - var saved2 = watermarkClient.saveWatermark(watermark, auditor); + var saved2 = watermarkClient.saveWatermark(watermark); assertThat(saved2.getOpacity()).isEqualTo(0); @@ -261,7 +261,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark2.setDossierTemplateId(dossierTemplate.getId()); watermark2.setOpacity(-1); - saved2 = watermarkClient.saveWatermark(watermark2, auditor); + saved2 = watermarkClient.saveWatermark(watermark2); assertThat(saved2.getOpacity()).isEqualTo(30); } @@ -283,7 +283,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setOrientation(WatermarkOrientation.DIAGONAL); watermark.setText(watermarkText); - var saved = watermarkClient.saveWatermark(watermark, auditor); + var saved = watermarkClient.saveWatermark(watermark); var loadedWatermarked = watermarkClient.getWatermark(saved.getId()); assertThat(loadedWatermarked).isEqualTo(saved); @@ -310,7 +310,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { watermark.setText(watermarkText); // Act - var saved = watermarkClient.saveWatermark(watermark, auditor); + var saved = watermarkClient.saveWatermark(watermark); var loadedWatermarked = watermarkClient.getWatermark(saved.getId()); // Assert 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 d669c3e2a..84990bb9c 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 @@ -55,25 +55,25 @@ public class EntityPerformanceTest extends AbstractPersistenceServerServiceTest var tenKEntries = generateEntries(10000); long t1 = System.currentTimeMillis(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.ENTRY); long t2 = System.currentTimeMillis(); log.info("Add Time: {}ms counting: {} entries", (t2 - t1), entryRepository.findByTypeIdAndVersionGreaterThan(type.getTypeId(), 0).size()); t1 = System.currentTimeMillis(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), tenKEntries, true, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), tenKEntries, true, null, DictionaryEntryType.ENTRY); t2 = System.currentTimeMillis(); log.info("Add Time: {}ms counting: {} entries", (t2 - t1), entryRepository.findByTypeIdAndVersionGreaterThan(type.getTypeId(), 0).size()); t1 = System.currentTimeMillis(); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.ENTRY, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.ENTRY); t2 = System.currentTimeMillis(); log.info("Update Time: {}ms counting: {} entries", (t2 - t1), entryRepository.findByTypeIdAndVersionGreaterThan(type.getTypeId(), 0).size()); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.FALSE_RECOMMENDATION, auditor); - dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.FALSE_POSITIVE, auditor); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.FALSE_RECOMMENDATION); + dictionaryClient.addEntry(type.getType(), type.getDossierTemplateId(), fiveKEntries, true, null, DictionaryEntryType.FALSE_POSITIVE); t1 = System.currentTimeMillis(); - var cloned = dossierTemplateClient.cloneDossierTemplate(template.getId(), new CloneDossierTemplateRequest(), auditor); + var cloned = dossierTemplateClient.cloneDossierTemplate(template.getId(), new CloneDossierTemplateRequest()); t2 = System.currentTimeMillis(); log.info("Clone Time: {}", (t2 - t1)); -- 2.47.2 From 329672131d441dadea4645828d4ff9d159e60f35 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Tue, 14 Nov 2023 15:19:34 +0200 Subject: [PATCH 08/20] Added temporary auditor:request-scoped dependency to verify functionality --- .../persistence-service-external-api-v1/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-external-api-v1/pom.xml b/persistence-service-v1/persistence-service-external-api-v1/pom.xml index d31054bcc..bb41ba89e 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/pom.xml +++ b/persistence-service-v1/persistence-service-external-api-v1/pom.xml @@ -139,7 +139,7 @@ com.knecon.fforesight auditor - 0.8.0 + request-scoped compile -- 2.47.2 From 04b2e53e9027ba2d932bf0a28cf7619e0b09f1f9 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Tue, 14 Nov 2023 16:15:25 +0200 Subject: [PATCH 09/20] Added skipped changelog reference --- .../src/main/resources/db/changelog/db.changelog-tenant.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml index 18935cdf7..4900695b0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml @@ -160,4 +160,6 @@ databaseChangeLog: - include: file: db/changelog/tenant/109-add-rules-timeout-detected-column.yaml - include: - file: db/changelog/tenant/110-add-rules-file-type.yaml \ No newline at end of file + file: db/changelog/tenant/110-add-rules-file-type.yaml + - include: + file: db/changelog/tenant/111-rename-audit-table.yaml -- 2.47.2 From 82f6fa2c16cc74c3885346ab06a60557bb188030 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Tue, 14 Nov 2023 18:16:30 +0200 Subject: [PATCH 10/20] Renamed 111 changelog to proper yaml extension --- .../{111-rename-audit-table.yml => 111-rename-audit-table.yaml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/{111-rename-audit-table.yml => 111-rename-audit-table.yaml} (83%) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yaml similarity index 83% rename from persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yml rename to persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yaml index af7afa083..93e1d4990 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yaml @@ -5,4 +5,4 @@ databaseChangeLog: changes: - renameTable: newTableName: old_audit - oldTableName: audit \ No newline at end of file + oldTableName: audit -- 2.47.2 From 68afc3e2b4186161e7c475514ff5211c2351cf53 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Tue, 14 Nov 2023 20:37:44 +0200 Subject: [PATCH 11/20] Renamed audit_pkey constraint from old_audit table --- .../src/main/resources/db/changelog/db.changelog-tenant.yaml | 2 ++ .../db/changelog/tenant/112-rename-audit-pkey-constraint.sql | 1 + 2 files changed, 3 insertions(+) create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/112-rename-audit-pkey-constraint.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml index 4900695b0..d8d2df384 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml @@ -163,3 +163,5 @@ databaseChangeLog: file: db/changelog/tenant/110-add-rules-file-type.yaml - include: file: db/changelog/tenant/111-rename-audit-table.yaml + - include: + file: db/changelog/tenant/112-rename-audit-pkey-constraint.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/112-rename-audit-pkey-constraint.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/112-rename-audit-pkey-constraint.sql new file mode 100644 index 000000000..0abd00d7f --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/112-rename-audit-pkey-constraint.sql @@ -0,0 +1 @@ +ALTER TABLE old_audit RENAME CONSTRAINT audit_pkey TO old_audit_pkey; -- 2.47.2 From dc23599ad36d9f9dc9d7a3decc4770b3916fe91b Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Tue, 14 Nov 2023 21:58:03 +0200 Subject: [PATCH 12/20] Renamed old audit record_id sequence so that new audit service can use the same naming instead --- .../src/main/resources/db/changelog/db.changelog-tenant.yaml | 2 ++ .../db/changelog/tenant/113-rename-audit-record-id-sequence.sql | 1 + 2 files changed, 3 insertions(+) create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/113-rename-audit-record-id-sequence.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml index d8d2df384..b0f63e416 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml @@ -165,3 +165,5 @@ databaseChangeLog: file: db/changelog/tenant/111-rename-audit-table.yaml - include: file: db/changelog/tenant/112-rename-audit-pkey-constraint.sql + - include: + file: db/changelog/tenant/113-rename-audit-record-id-sequence.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/113-rename-audit-record-id-sequence.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/113-rename-audit-record-id-sequence.sql new file mode 100644 index 000000000..10caabc42 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/113-rename-audit-record-id-sequence.sql @@ -0,0 +1 @@ +ALTER SEQUENCE audit_record_id_seq RENAME TO old_audit_record_id_seq; -- 2.47.2 From 62b8c0ecc618920f52ea36d9fcdc852ac8c0cf9e Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Thu, 7 Dec 2023 15:37:53 +0200 Subject: [PATCH 13/20] Fixes after merge with master and added audit data migration script --- .../controller/ComponentLogController.java | 60 +++------ .../impl/controller/DictionaryController.java | 3 +- .../DigitalSignatureController.java | 4 +- .../DossierAttributesController.java | 4 +- .../impl/controller/DossierController.java | 74 +++++----- .../controller/DossierTemplateController.java | 49 +++---- .../impl/controller/DownloadController.java | 86 +++++------- .../controller/FileAttributesController.java | 4 +- .../controller/FileManagementController.java | 4 +- .../LegalBasisMappingController.java | 4 +- .../controller/LicenseReportController.java | 4 +- .../controller/ManualRedactionController.java | 54 +++----- .../api/impl/controller/RSSController.java | 35 +++-- .../impl/controller/ReanalysisController.java | 4 +- .../api/impl/controller/RulesController.java | 49 ++++--- .../api/impl/controller/StatusController.java | 4 +- .../api/impl/controller/UploadController.java | 57 ++++---- .../impl/controller/WatermarkController.java | 4 +- .../build.gradle.kts | 1 + .../processor}/model/audit/AuditCategory.java | 2 +- .../processor}/model/audit/AuditDetail.java | 2 +- .../model/audit/AuditDetailAction.java | 2 +- .../v1/processor/service/UploadService.java | 4 +- .../ManualRedactionUndoService.java | 2 +- .../processor/service/users/UserService.java | 4 +- .../db/changelog/db.changelog-tenant.yaml | 2 + ...table.yaml => 116-rename-audit-table.yaml} | 0 ...l => 117-rename-audit-pkey-constraint.sql} | 0 ...> 118-rename-audit-record-id-sequence.sql} | 0 .../tenant/sql/301-migrate-audit-data.sql | 127 ++++++++++++++++++ .../model/audit/AddNotificationRequest.java | 24 ---- 31 files changed, 333 insertions(+), 340 deletions(-) rename persistence-service-v1/{persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared => persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor}/model/audit/AuditCategory.java (69%) rename persistence-service-v1/{persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared => persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor}/model/audit/AuditDetail.java (94%) rename persistence-service-v1/{persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared => persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor}/model/audit/AuditDetailAction.java (71%) rename persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/{111-rename-audit-table.yaml => 116-rename-audit-table.yaml} (100%) rename persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/{112-rename-audit-pkey-constraint.sql => 117-rename-audit-pkey-constraint.sql} (100%) rename persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/{113-rename-audit-record-id-sequence.sql => 118-rename-audit-record-id-sequence.sql} (100%) create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/301-migrate-audit-data.sql delete mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AddNotificationRequest.java 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/ComponentLogController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ComponentLogController.java index ff50b5db4..8060f4db6 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ComponentLogController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ComponentLogController.java @@ -1,12 +1,16 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_RSS; +import static com.knecon.fforesight.auditor.model.Detail.d; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetailAction; +import com.knecon.fforesight.auditor.Auditor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; @@ -15,16 +19,13 @@ import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.service.v1.api.external.resource.ComponentLogResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntryValue; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; @@ -37,8 +38,8 @@ public class ComponentLogController implements ComponentLogResource { ComponentLogService componentLogService; ComponentOverrideService componentOverrideService; - AuditPersistenceService auditPersistenceService; + private final Auditor auditor; @Override public ComponentLog getComponentLog(String dossierId, String fileId, boolean includeOverrides) { @@ -87,28 +88,12 @@ public class ComponentLogController implements ComponentLogResource { private void auditOverride(String dossierId, String fileId, String componentName, String overrideValue, List allComponentLogEntries) { Optional component = allComponentLogEntries.stream().filter(c -> c.getName().equals(componentName)).findFirst(); - String originalValue = getOriginalValue(component); String value = getValue(component); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("The component is overwritten with value") - .details(Map.of(DOSSIER_ID, - dossierId, - FILE_ID, - fileId, - "ComponentName", - componentName, - "Action", - "MODIFY", - "OriginalValue", - originalValue, - "OldValue", - value, - "NewValue", - overrideValue)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "The component is overwritten with value", + d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), + d(AuditDetail.COMPONENT_NAME, componentName), + d(AuditDetail.ACTION, AuditDetailAction.MODIFY.getID()), + d(AuditDetail.VALUE, value)); } @@ -117,26 +102,11 @@ public class ComponentLogController implements ComponentLogResource { Optional component = allComponentLogEntries.stream().filter(c -> c.getName().equals(componentNameToRevert)).findFirst(); String originalValue = getOriginalValue(component); String value = getValue(component); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("The component override for was reverted") - .details(Map.of(DOSSIER_ID, - dossierId, - FILE_ID, - fileId, - "ComponentName", - componentNameToRevert, - "Action", - "REVERT", - "OriginalValue", - originalValue, - "OldValue", - value, - "NewValue", - originalValue)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "The component is overwritten with value", + d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), + d(AuditDetail.COMPONENT_NAME, componentNameToRevert), + d(AuditDetail.ACTION, AuditDetailAction.REVERT.getID()), + d(AuditDetail.VALUE, originalValue)); } 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/DictionaryController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java index d68843a05..1107deaf4 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java @@ -1,13 +1,12 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; + import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryService; import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; import com.iqser.red.service.persistence.management.v1.processor.utils.TypeValueMapper; import com.iqser.red.service.persistence.service.v1.api.external.resource.DictionaryResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.*; - import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; - import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; 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.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type; 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/DigitalSignatureController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DigitalSignatureController.java index 244b9a6d0..35da1719a 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DigitalSignatureController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DigitalSignatureController.java @@ -2,6 +2,8 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DigitalSignatureEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DigitalSignatureKmsEntity; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.DigitalSignatureKmsService; import com.iqser.red.service.persistence.management.v1.processor.service.DigitalSignatureService; import com.iqser.red.service.persistence.management.v1.processor.service.DigitalSignatureTypeService; @@ -9,8 +11,6 @@ import com.iqser.red.service.persistence.service.v1.api.external.resource.Digita import com.iqser.red.service.persistence.service.v1.api.shared.model.DigitalSignatureKms; import com.iqser.red.service.persistence.service.v1.api.shared.model.DigitalSignatureKmsViewModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.DigitalSignatureViewModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; 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.auditor.Auditor; 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/DossierAttributesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierAttributesController.java index ac055b7a6..959f61089 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierAttributesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DossierAttributesController.java @@ -1,14 +1,14 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierAttributesManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; import com.iqser.red.service.persistence.service.v1.api.external.resource.DossierAttributesResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributes; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributesConfig; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; 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.dossier.DossierAttribute; import com.knecon.fforesight.auditor.Auditor; 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 22d0f3254..63d058238 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 @@ -1,23 +1,31 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.ADD_UPDATE_DOSSIER; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.ARCHIVE_DOSSIER; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DELETE_DOSSIER; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOSSIER; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.UNARCHIVE_DOSSIER; - -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.TreeSet; -import java.util.stream.Collectors; - +import com.google.common.collect.Lists; +import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; +import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles; +import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierCreatorService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; +import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; +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.service.v1.api.external.resource.DossierResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierChangeEntry; +import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierInformation; +import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; +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.CreateOrUpdateDossierRequest; +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.notification.NotificationType; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -32,32 +40,11 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.google.common.collect.Lists; -import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.roles.ApplicationRoles; -import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; -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.service.v1.api.external.resource.DossierResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierChangeEntry; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierInformation; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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.CreateOrUpdateDossierRequest; -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.notification.NotificationType; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import java.time.OffsetDateTime; +import java.util.*; +import java.util.stream.Collectors; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; @Slf4j @RestController @@ -65,7 +52,6 @@ import lombok.extern.slf4j.Slf4j; public class DossierController implements DossierResource { private static final Set VALID_MEMBER_ROLES = Set.of(ApplicationRoles.RED_USER_ROLE, ApplicationRoles.RED_MANAGER_ROLE); - private final Auditor auditor; private final DossierManagementService dossierManagementService; private final UserService userService; 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 60fd265c1..8d17d2089 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 @@ -1,56 +1,39 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOSSIER_TEMPLATES; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_DOSSIER_TEMPLATES; -import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RequestPart; -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.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; 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; import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -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.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.*; 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.importexport.ExportDownloadRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ImportDossierTemplateRequest; import com.knecon.fforesight.auditor.Auditor; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; - import feign.FeignException; import io.micrometer.core.annotation.Timed; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOSSIER_TEMPLATES; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_DOSSIER_TEMPLATES; +import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; @Slf4j @RestController 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/DownloadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java index c038a0706..01fcb6b5a 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java @@ -1,49 +1,13 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.PROCESS_DOWNLOAD; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOWNLOAD_STATUS; - -import java.io.BufferedInputStream; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.regex.Pattern; -import java.util.stream.Collectors; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.io.InputStreamResource; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - import com.iqser.red.persistence.service.v1.external.api.impl.service.OneTimeTokenService; 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.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; -import com.iqser.red.service.persistence.management.v1.processor.service.DownloadService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; -import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; +import com.iqser.red.service.persistence.management.v1.processor.service.*; import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; import com.iqser.red.service.persistence.service.v1.api.external.resource.DownloadResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DownloadStatusResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.PrepareDownloadRequest; -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.*; import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; 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.DownloadFileType; @@ -53,14 +17,35 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.download.Do 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.DownloadWithOptionRequest; import com.iqser.red.storage.commons.service.StorageService; +import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.auditor.UserAuditor; +import com.knecon.fforesight.auditor.service.AuditingService; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; import com.knecon.fforesight.tenantcommons.TenantContext; -import com.knecon.fforesight.auditor.Auditor; - import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.InputStreamResource; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import java.io.BufferedInputStream; +import java.util.List; +import java.util.Optional; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.PROCESS_DOWNLOAD; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_DOWNLOAD_STATUS; +import static com.knecon.fforesight.auditor.model.Detail.d; @Slf4j @RestController @@ -69,7 +54,7 @@ public class DownloadController implements DownloadResource { private static final Pattern COLOR_PATTERN = Pattern.compile("^#[\\da-f]{6,6}$"); - private final Auditor auditor; + private final AuditingService auditing; private final DossierManagementService dossierService; private final FileStatusService fileStatusService; private final DownloadService downloadService; @@ -94,8 +79,8 @@ public class DownloadController implements DownloadResource { // check the user is non-member or reviewer accessControlService.verifyUserIsDossierOwnerOrApprover(request.getDossierId()); var response = downloadService.prepareDownload(convert(request)); - auditor.audit(AuditCategory.DOWNLOAD.name(), "Download was prepared", - AuditDetail.OBJECT_ID, response.getValue(), AuditDetail.DOSSIER_ID, request.getDossierId()); + auditing.audit(KeycloakSecurity.getUserId(), AuditCategory.DOWNLOAD.name(), "Download was prepared", + d(AuditDetail.OBJECT_ID, response.getValue()), d(AuditDetail.DOSSIER_ID, request.getDossierId())); return new DownloadResponse(response.getValue()); } @@ -121,8 +106,8 @@ public class DownloadController implements DownloadResource { } var response = downloadService.prepareDownload(convert(request)); - auditor.audit(AuditCategory.DOWNLOAD.name(), "Download was prepared", - AuditDetail.OBJECT_ID, response.getValue(),AuditDetail.DOSSIER_ID, request.getDossierId()); + auditing.audit(KeycloakSecurity.getUserId(), AuditCategory.DOWNLOAD.name(), "Download was prepared", + d(AuditDetail.OBJECT_ID, response.getValue()), d(AuditDetail.DOSSIER_ID, request.getDossierId())); return new DownloadResponse(response.getValue()); } @@ -197,7 +182,8 @@ public class DownloadController implements DownloadResource { fileManagementStorageService.deleteObject(storageIdForAzure); } - auditor.audit(AuditCategory.DOWNLOAD.name(), "Remove Prepared Download", AuditDetail.OBJECT_ID, storageId); + auditing.audit(KeycloakSecurity.getUserId(), AuditCategory.DOWNLOAD.name(), "Remove Prepared Download", + d(AuditDetail.OBJECT_ID, storageId)); }); } @@ -240,11 +226,12 @@ public class DownloadController implements DownloadResource { } - private InputStreamResource getFileForDownload(String storageId) { + private InputStreamResource getFileForDownload(String storageId, String userId) { try { var response = storageService.getObject(TenantContext.getTenantId(), storageId); - auditor.audit(AuditCategory.DOWNLOAD.name(), "File was downloaded.", AuditDetail.OBJECT_ID, storageId); + auditing.audit(userId, AuditCategory.DOWNLOAD.name(), "File was downloaded.", + d(AuditDetail.OBJECT_ID, storageId)); downloadService.setDownloaded(JSONPrimitive.of(storageId)); return new InputStreamResource(new BufferedInputStream(response.getInputStream())); @@ -253,7 +240,6 @@ public class DownloadController implements DownloadResource { } } - @Override @PreAuthorize("hasAuthority('" + PROCESS_DOWNLOAD + "')") public JSONPrimitive generateOneTimeToken(@RequestBody JSONPrimitive storageIdWrapper) { 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/FileAttributesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileAttributesController.java index b5c3c5602..91992117c 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileAttributesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileAttributesController.java @@ -4,15 +4,15 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; import com.iqser.red.service.persistence.management.v1.processor.service.FileAttributesManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; import com.iqser.red.service.persistence.service.v1.api.external.resource.FileAttributesResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributes; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttributesConfig; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.FileAttributesGeneralConfiguration; 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.dossier.file.WorkflowStatus; 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/FileManagementController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java index db563ce96..572494f65 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/FileManagementController.java @@ -5,13 +5,13 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe import com.iqser.red.service.persistence.management.v1.processor.exception.InternalServerErrorException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotAllowedException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.*; import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils; import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; import com.iqser.red.service.persistence.service.v1.api.external.resource.FileManagementResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.RotatePagesRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; 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.dossier.file.FileType; import com.iqser.red.storage.commons.exception.StorageException; 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/LegalBasisMappingController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LegalBasisMappingController.java index 5746a6594..1ac2832ee 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LegalBasisMappingController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LegalBasisMappingController.java @@ -1,9 +1,9 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; import com.iqser.red.service.persistence.service.v1.api.external.resource.LegalBasisMappingResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.legalbasis.LegalBasis; import com.knecon.fforesight.auditor.Auditor; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; 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/LicenseReportController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LicenseReportController.java index cf5deec66..beaba68e1 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LicenseReportController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/LicenseReportController.java @@ -1,9 +1,9 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.LicenseReportService; import com.iqser.red.service.persistence.service.v1.api.external.resource.LicenseReportResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; import com.iqser.red.service.persistence.service.v1.api.shared.model.license.LicenseReport; import com.iqser.red.service.persistence.service.v1.api.shared.model.license.LicenseReportRequest; import com.knecon.fforesight.auditor.Auditor; 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 d0dbb6a2a..ed776a614 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 @@ -1,21 +1,7 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.ADD_COMMENT; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DELETE_COMMENT; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DELETE_MANUAL_REDACTION; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.DO_MANUAL_REDACTION; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_MANUAL_REDACTIONS; - -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; import com.iqser.red.service.persistence.management.v1.processor.service.CommentService; import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; @@ -23,35 +9,27 @@ import com.iqser.red.service.persistence.management.v1.processor.service.FileSta import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionMapper; import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionService; import com.iqser.red.service.persistence.management.v1.processor.service.manualredactions.ManualRedactionUndoService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.CommentResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AddRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationComments; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Comment; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.CommentRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ForceRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.LegalBasisChangeRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualAddResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.RecategorizationRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.RemoveRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ResizeRedactionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.AddCommentRequestModel; -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; -import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RecategorizationRequestModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.RemoveRedactionRequestModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.ResizeRedactionRequestModel; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.*; +import com.iqser.red.service.persistence.service.v1.api.shared.model.manual.*; import com.knecon.fforesight.auditor.Auditor; +import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Set; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; +import static com.knecon.fforesight.auditor.model.Detail.d; @Slf4j @RestController 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/RSSController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java index 5bb5cb9b6..41236ef56 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java @@ -1,10 +1,18 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_RSS; - -import java.util.Map; -import java.util.stream.Collectors; - +import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.RssReportClient; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetailAction; +import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; +import com.iqser.red.service.persistence.service.v1.api.external.resource.RSSResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides; +import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.rss.RSSFileResponse; +import com.iqser.red.service.persistence.service.v1.api.shared.model.rss.RSSResponse; +import com.iqser.red.service.redaction.report.v1.api.model.rss.DetailedRSSResponse; +import com.knecon.fforesight.auditor.Auditor; +import lombok.RequiredArgsConstructor; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; @@ -12,21 +20,10 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.RssReportClient; -import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.external.resource.RSSResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides; -import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.rss.RSSFileResponse; -import com.iqser.red.service.persistence.service.v1.api.shared.model.rss.RSSResponse; -import com.iqser.red.service.redaction.report.v1.api.model.rss.DetailedRSSResponse; -import com.knecon.fforesight.auditor.Auditor; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import java.util.stream.Collectors; -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_RSS; +import static com.knecon.fforesight.auditor.model.Detail.d; @Deprecated(forRemoval = true) @RestController 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/ReanalysisController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReanalysisController.java index b0c272d69..b92267848 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReanalysisController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ReanalysisController.java @@ -3,13 +3,13 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import com.google.common.collect.Sets; 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.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService; import com.iqser.red.service.persistence.service.v1.api.external.resource.ReanalysisResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.PageExclusionRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; import com.knecon.fforesight.auditor.Auditor; import feign.FeignException; 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/RulesController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java index 073f4b421..9d4fdc87a 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RulesController.java @@ -1,13 +1,22 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_RULES; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_RULES; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; - +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.exception.FileUploadException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; +import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; +import com.iqser.red.service.persistence.service.v1.api.external.resource.RulesResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RuleSyntaxErrorMessage; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.Rules; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequestModel; +import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; +import com.knecon.fforesight.auditor.Auditor; +import feign.FeignException; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.InputStreamResource; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -20,25 +29,13 @@ import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.exception.FileUploadException; -import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.external.resource.RulesResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RuleSyntaxErrorMessage; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.Rules; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequestModel; -import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; -import feign.FeignException; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_RULES; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_RULES; @Slf4j @RestController 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/StatusController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java index 91529cacb..f8d76e9a8 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java @@ -4,6 +4,7 @@ import static com.iqser.red.service.persistence.management.v1.processor.roles.Ac import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.SET_REVIEWER; import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.SET_STATUS_APPROVED; import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.SET_STATUS_UNDER_APPROVAL; +import static com.knecon.fforesight.auditor.model.Detail.d; import java.time.OffsetDateTime; import java.util.ArrayList; @@ -14,6 +15,7 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; @@ -29,14 +31,12 @@ import com.iqser.red.service.persistence.management.v1.processor.service.AccessC import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusMapper; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; import com.iqser.red.service.persistence.service.v1.api.external.resource.StatusResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; 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.FileModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.ProcessingStatus; 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/UploadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java index b37365e16..b1b518639 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java @@ -1,18 +1,22 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; - +import com.iqser.red.service.pdftron.redaction.v1.api.model.ByteContentDocument; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; +import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; +import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService; +import com.iqser.red.service.persistence.management.v1.processor.service.UploadService; +import com.iqser.red.service.persistence.management.v1.processor.utils.FileUtils; +import com.iqser.red.service.persistence.service.v1.api.external.resource.UploadResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.FileUploadResult; +import com.knecon.fforesight.auditor.Auditor; +import feign.FeignException; +import io.micrometer.core.annotation.Timed; +import lombok.AccessLevel; +import lombok.RequiredArgsConstructor; +import lombok.experimental.FieldDefaults; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipFile; import org.apache.commons.io.IOUtils; @@ -22,26 +26,13 @@ import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; -import com.iqser.red.service.pdftron.redaction.v1.api.model.ByteContentDocument; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; -import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService; -import com.iqser.red.service.persistence.management.v1.processor.service.UploadService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.utils.FileUtils; -import com.iqser.red.service.persistence.service.v1.api.external.resource.UploadResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.FileUploadResult; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; -import com.knecon.fforesight.auditor.Auditor; -import feign.FeignException; -import io.micrometer.core.annotation.Timed; -import lombok.AccessLevel; -import lombok.RequiredArgsConstructor; -import lombok.experimental.FieldDefaults; -import lombok.extern.slf4j.Slf4j; +import java.io.*; +import java.util.List; +import java.util.Locale; +import java.util.Set; +import java.util.UUID; + +import static com.iqser.red.service.persistence.management.v1.processor.service.FeignExceptionHandler.processFeignException; @RestController @RequiredArgsConstructor 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/WatermarkController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/WatermarkController.java index 4a936f773..a0b8161dc 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/WatermarkController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/WatermarkController.java @@ -1,10 +1,10 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; import com.iqser.red.service.persistence.service.v1.api.external.resource.WatermarkResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; import com.knecon.fforesight.auditor.Auditor; import com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter; diff --git a/persistence-service-v1/persistence-service-external-api-v1/build.gradle.kts b/persistence-service-v1/persistence-service-external-api-v1/build.gradle.kts index 3296df16e..1d340fabb 100644 --- a/persistence-service-v1/persistence-service-external-api-v1/build.gradle.kts +++ b/persistence-service-v1/persistence-service-external-api-v1/build.gradle.kts @@ -13,6 +13,7 @@ dependencies { api("org.springframework.boot:spring-boot-starter-security:3.1.3") api("org.springframework.boot:spring-boot-starter-validation:3.1.3") api("com.iqser.red.commons:jackson-commons:2.1.0") + api("com.knecon.fforesight:auditor:0.9.0") api(project(":persistence-service-shared-api-v1")) testImplementation("com.iqser.red.commons:test-commons:2.1.0") testImplementation("org.springframework.boot:spring-boot-starter-test:3.0.4") diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditCategory.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/audit/AuditCategory.java similarity index 69% rename from persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditCategory.java rename to persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/audit/AuditCategory.java index cca1097de..37ce12841 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditCategory.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/audit/AuditCategory.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; +package com.iqser.red.service.persistence.management.v1.processor.model.audit; public enum AuditCategory { DOSSIER, diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetail.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/audit/AuditDetail.java similarity index 94% rename from persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetail.java rename to persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/audit/AuditDetail.java index 7021653cf..b36ea7b09 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetail.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/audit/AuditDetail.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; +package com.iqser.red.service.persistence.management.v1.processor.model.audit; public final class AuditDetail { diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetailAction.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/audit/AuditDetailAction.java similarity index 71% rename from persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetailAction.java rename to persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/audit/AuditDetailAction.java index 5e50d9445..5f25f0b20 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AuditDetailAction.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/audit/AuditDetailAction.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; +package com.iqser.red.service.persistence.management.v1.processor.model.audit; public enum AuditDetailAction { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java index 76db4e659..9c0921b65 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/UploadService.java @@ -3,10 +3,10 @@ package com.iqser.red.service.persistence.management.v1.processor.service; import com.google.common.collect.Lists; import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.utils.StorageIdUtils; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileUploadResult; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ImportCsvRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ImportCsvResponse; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.AddFileRequest; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java index bc8b54fdb..7c8081405 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java @@ -3,6 +3,7 @@ package com.iqser.red.service.persistence.management.v1.processor.service.manual import static com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource.ANNOTATION_ID; import static com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource.DOSSIER_ID; import static com.iqser.red.service.persistence.service.v1.api.external.resource.ManualRedactionResource.FILE_ID; +import static com.knecon.fforesight.auditor.model.Detail.d; import java.time.OffsetDateTime; import java.util.ArrayList; @@ -24,7 +25,6 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.NotFo import com.iqser.red.service.persistence.management.v1.processor.service.AnalysisFlagsCalculationService; import com.iqser.red.service.persistence.management.v1.processor.service.EntityLogService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService; 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; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java index aeb8a8908..ee7bb1a42 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java @@ -4,14 +4,14 @@ import com.google.common.collect.Lists; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.dossier.DossierACLService; import com.iqser.red.service.persistence.management.v1.processor.acl.custom.service.CustomPermissionService; import com.iqser.red.service.persistence.management.v1.processor.client.tenantusermanagementservice.UsersClient; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.DossierManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.FileStatusManagementService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.users.events.*; import com.iqser.red.service.persistence.management.v1.processor.service.users.model.User; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; 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; import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.NotificationType; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml index e6ae11d56..79c9ecaae 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml @@ -175,3 +175,5 @@ databaseChangeLog: file: db/changelog/tenant/117-rename-audit-pkey-constraint.sql - include: file: db/changelog/tenant/118-rename-audit-record-id-sequence.sql + - include: + file: db/changelog/tenant/sql/301-migrate-audit-data.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/116-rename-audit-table.yaml similarity index 100% rename from persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/111-rename-audit-table.yaml rename to persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/116-rename-audit-table.yaml diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/112-rename-audit-pkey-constraint.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/117-rename-audit-pkey-constraint.sql similarity index 100% rename from persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/112-rename-audit-pkey-constraint.sql rename to persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/117-rename-audit-pkey-constraint.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/113-rename-audit-record-id-sequence.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/118-rename-audit-record-id-sequence.sql similarity index 100% rename from persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/113-rename-audit-record-id-sequence.sql rename to persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/118-rename-audit-record-id-sequence.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/301-migrate-audit-data.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/301-migrate-audit-data.sql new file mode 100644 index 000000000..dbacc5d30 --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/sql/301-migrate-audit-data.sql @@ -0,0 +1,127 @@ +INSERT INTO audit (record_date, message, category, user_id) +SELECT record_date, message, category, user_id from old_audit; + +UPDATE audit +SET + string_prop_value1 = object_id, + string_prop_name1 = 'object_id', + string_prop_value2 = ( + SELECT left(value::text, 1024) +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='string' or json_typeof(value)='array' or json_typeof(value)='object' + LIMIT 1 + ), + string_prop_name2 = ( +SELECT key +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='string' or json_typeof(value)='array' or json_typeof(value)='object' + LIMIT 1 + ), + string_prop_value3 = ( +SELECT left(value::text, 1024) +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='string' or json_typeof(value)='array' or json_typeof(value)='object' +OFFSET 1 + LIMIT 1 + ), + string_prop_name3 = ( +SELECT key +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='string' or json_typeof(value)='array' or json_typeof(value)='object' +OFFSET 1 + LIMIT 1 + ), + string_prop_value4 = ( +SELECT left(value::text, 1024) +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='string' or json_typeof(value)='array' or json_typeof(value)='object' +OFFSET 2 + LIMIT 1 + ), + string_prop_name4 = ( +SELECT key +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='string' or json_typeof(value)='array' or json_typeof(value)='object' +OFFSET 2 + LIMIT 1 + ) +FROM old_audit +WHERE old_audit.record_date = audit.record_date and old_audit.message = audit.message; + + +UPDATE audit +SET + numeric_prop_value1 = ( + SELECT value::text::BIGINT + FROM json_each(old_audit.details::json) + WHERE json_typeof(value)='number' + LIMIT 1 + ), + numeric_prop_name1 = ( +SELECT key +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='number' + LIMIT 1 + ), + numeric_prop_value2 = ( +SELECT value::text::BIGINT +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='number' +OFFSET 1 + LIMIT 1 + ), + numeric_prop_name2 = ( +SELECT key +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='number' +OFFSET 1 + LIMIT 1 + ), + numeric_prop_value3 = ( +SELECT value::text::BIGINT +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='number' +OFFSET 2 + LIMIT 1 + ), + numeric_prop_name3 = ( +SELECT key +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='number' +OFFSET 2 + LIMIT 1 + ) +FROM old_audit +WHERE old_audit.record_date = audit.record_date and old_audit.message = audit.message; + + +UPDATE audit +SET + boolean_prop_value1 = ( + SELECT value::text::boolean + FROM json_each(old_audit.details::json) + WHERE json_typeof(value)='boolean' + LIMIT 1 + ), + boolean_prop_name1 = ( +SELECT key +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='boolean' + LIMIT 1 + ), + boolean_prop_value2 = ( +SELECT value::text::boolean +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='boolean' +OFFSET 1 + LIMIT 1 + ), + boolean_prop_name2 = ( +SELECT key +FROM json_each(old_audit.details::json) +WHERE json_typeof(value)='boolean' +OFFSET 1 + LIMIT 1 + ) +FROM old_audit +WHERE old_audit.record_date = audit.record_date and old_audit.message = audit.message; \ No newline at end of file diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AddNotificationRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AddNotificationRequest.java deleted file mode 100644 index 14507246e..000000000 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/audit/AddNotificationRequest.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.iqser.red.service.persistence.service.v1.api.shared.model.audit; - -import java.util.HashMap; -import java.util.Map; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class AddNotificationRequest { - - private String userId; - private String issuerId; - private String notificationType; - - @Builder.Default - private Map target = new HashMap<>(); - -} -- 2.47.2 From ee0821df27da4e1dfb2ae37fdf9f4b5b4dfad130 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Thu, 7 Dec 2023 15:58:43 +0200 Subject: [PATCH 14/20] Fixes after merge with master --- .../controller/ComponentLogController.java | 34 +++++------ .../controller/RSSComponentLogController.java | 57 +++++-------------- .../api/impl/controller/RSSController.java | 4 +- .../controller/ReportTemplateController.java | 4 +- 4 files changed, 34 insertions(+), 65 deletions(-) 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/ComponentLogController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ComponentLogController.java index 8060f4db6..ed62eb772 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ComponentLogController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ComponentLogController.java @@ -1,22 +1,8 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_RSS; -import static com.knecon.fforesight.auditor.model.Detail.d; - -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; - +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetailAction; -import com.knecon.fforesight.auditor.Auditor; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; import com.iqser.red.service.persistence.service.v1.api.external.resource.ComponentLogResource; @@ -26,10 +12,21 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntryValue; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest; - +import com.knecon.fforesight.auditor.Auditor; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; import lombok.experimental.FieldDefaults; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_RSS; +import static com.knecon.fforesight.auditor.model.Detail.d; @RestController @RequiredArgsConstructor @@ -90,7 +87,7 @@ public class ComponentLogController implements ComponentLogResource { Optional component = allComponentLogEntries.stream().filter(c -> c.getName().equals(componentName)).findFirst(); String value = getValue(component); auditor.audit(AuditCategory.DOCUMENT.name(), "The component is overwritten with value", - d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.COMPONENT_NAME, componentName), d(AuditDetail.ACTION, AuditDetailAction.MODIFY.getID()), d(AuditDetail.VALUE, value)); @@ -101,9 +98,8 @@ public class ComponentLogController implements ComponentLogResource { Optional component = allComponentLogEntries.stream().filter(c -> c.getName().equals(componentNameToRevert)).findFirst(); String originalValue = getOriginalValue(component); - String value = getValue(component); auditor.audit(AuditCategory.DOCUMENT.name(), "The component is overwritten with value", - d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.COMPONENT_NAME, componentNameToRevert), d(AuditDetail.ACTION, AuditDetailAction.REVERT.getID()), d(AuditDetail.VALUE, originalValue)); 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/RSSComponentLogController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSComponentLogController.java index 03d9b4915..e3e4eb8ad 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSComponentLogController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSComponentLogController.java @@ -1,6 +1,7 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.GET_RSS; +import static com.knecon.fforesight.auditor.model.Detail.d; import java.util.LinkedHashMap; import java.util.List; @@ -10,6 +11,9 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetailAction; +import com.knecon.fforesight.auditor.Auditor; import org.apache.commons.lang3.StringUtils; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.security.access.prepost.PreAuthorize; @@ -20,7 +24,6 @@ import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.service.v1.api.external.resource.RSSResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatus; @@ -47,9 +50,9 @@ import lombok.RequiredArgsConstructor; public class RSSComponentLogController implements RSSResource { private final ComponentOverrideService componentOverrideService; - private final AuditPersistenceService auditPersistenceService; private final ComponentLogService componentLogService; private final StatusController statusController; + private final Auditor auditor; @PreAuthorize("hasAuthority('" + GET_RSS + "')") @@ -191,26 +194,11 @@ public class RSSComponentLogController implements RSSResource { Optional component = allComponentLogEntries.stream().filter(c -> c.getName().equals(componentName)).findFirst(); String originalValue = getOriginalValue(component); String value = getValue(component); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("The component is overwritten with value") - .details(Map.of(DOSSIER_ID, - dossierId, - FILE_ID, - fileId, - "ComponentName", - componentName, - "Action", - "MODIFY", - "OriginalValue", - originalValue, - "OldValue", - value, - "NewValue", - overrideValue)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "The component is overwritten with value", + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), + d(AuditDetail.COMPONENT_NAME, componentName), + d(AuditDetail.ACTION, AuditDetailAction.MODIFY.getID()), + d(AuditDetail.VALUE, value)); } @@ -219,26 +207,11 @@ public class RSSComponentLogController implements RSSResource { Optional component = allComponentLogEntries.stream().filter(c -> c.getName().equals(componentNameToRevert)).findFirst(); String originalValue = getOriginalValue(component); String value = getValue(component); - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(fileId) - .category(AuditCategory.DOCUMENT.name()) - .message("The component override for was reverted") - .details(Map.of(DOSSIER_ID, - dossierId, - FILE_ID, - fileId, - "ComponentName", - componentNameToRevert, - "Action", - "REVERT", - "OriginalValue", - originalValue, - "OldValue", - value, - "NewValue", - originalValue)) - .build()); + auditor.audit(AuditCategory.DOCUMENT.name(), "The component is overwritten with value", + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), + d(AuditDetail.COMPONENT_NAME, componentNameToRevert), + d(AuditDetail.ACTION, AuditDetailAction.REVERT.getID()), + d(AuditDetail.VALUE, originalValue)); } 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/RSSController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java index 41236ef56..665c53fb8 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSController.java @@ -72,7 +72,7 @@ public class RSSController implements RSSResource { componentsOverrides.getComponentOverrides() .forEach((key, value) -> auditor.audit(AuditCategory.DOCUMENT.name(), "The component is overwritten with value", - d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.COMPONENT_NAME, key), d(AuditDetail.ACTION, AuditDetailAction.MODIFY.getID()), d(AuditDetail.VALUE, value))); @@ -98,7 +98,7 @@ public class RSSController implements RSSResource { revertOverrideRequest.getComponents() .forEach(component -> auditor.audit(AuditCategory.DOCUMENT.name(), "The component override for was reverted", - d(DOSSIER_ID, dossierId), d(FILE_ID, fileId), + d(AuditDetail.DOSSIER_ID, dossierId), d(AuditDetail.FILE_ID, fileId), d(AuditDetail.COMPONENT_NAME, component), d(AuditDetail.ACTION, AuditDetailAction.REVERT.getID()), d(AuditDetail.VALUE, components.get(component).getOriginalValue()))); 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 e75dfe1bc..934ff0477 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 @@ -4,6 +4,8 @@ import com.iqser.red.service.persistence.management.v1.processor.client.redactio import com.iqser.red.service.persistence.management.v1.processor.client.redactionreportservice.ReportTemplatePlaceholderClient; 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.audit.AuditCategory; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; import com.iqser.red.service.persistence.management.v1.processor.service.ReportTemplateService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; @@ -11,10 +13,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; import com.iqser.red.service.persistence.service.v1.api.external.resource.ReportTemplateResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.PlaceholdersResponse; import com.iqser.red.service.persistence.service.v1.api.shared.model.ReportTemplateUpdateRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditDetail; 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.ReportTemplate; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ReportTemplateUploadRequest; -- 2.47.2 From d1bc294a3ee025015d0bf060717035c8181c53d7 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Thu, 7 Dec 2023 16:06:48 +0200 Subject: [PATCH 15/20] Fixes after merge with master --- .../DossierTemplateControllerV2.java | 78 +++++++++---------- 1 file changed, 35 insertions(+), 43 deletions(-) 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/DossierTemplateControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java index d666b8909..436285d00 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java @@ -1,16 +1,29 @@ package com.iqser.red.persistence.service.v2.external.api.impl.controller; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.EXPERIMENTAL; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_FILE_ATTRIBUTES_CONFIG; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.READ_RULES; -import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.WRITE_RULES; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.Locale; - +import com.iqser.red.persistence.service.v1.external.api.impl.controller.DossierTemplateController; +import com.iqser.red.persistence.service.v1.external.api.impl.controller.FileAttributesController; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; +import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; +import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; +import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequest; +import com.iqser.red.service.persistence.service.v2.api.external.model.FileAttributeDefinition; +import com.iqser.red.service.persistence.service.v2.api.external.model.FileAttributeDefinitionList; +import com.iqser.red.service.persistence.service.v2.api.external.model.RulesValidationMessage; +import com.iqser.red.service.persistence.service.v2.api.external.model.RulesValidationResponse; +import com.iqser.red.service.persistence.service.v2.api.external.resource.DossierTemplateResource; +import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; +import com.knecon.fforesight.auditor.Auditor; +import feign.FeignException; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; import org.springframework.core.io.InputStreamResource; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -23,32 +36,13 @@ import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.iqser.red.persistence.service.v1.external.api.impl.controller.DossierTemplateController; -import com.iqser.red.persistence.service.v1.external.api.impl.controller.FileAttributesController; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequest; -import com.iqser.red.service.persistence.service.v2.api.external.model.FileAttributeDefinition; -import com.iqser.red.service.persistence.service.v2.api.external.model.FileAttributeDefinitionList; -import com.iqser.red.service.persistence.service.v2.api.external.model.RulesValidationMessage; -import com.iqser.red.service.persistence.service.v2.api.external.model.RulesValidationResponse; -import com.iqser.red.service.persistence.service.v2.api.external.resource.DossierTemplateResource; -import com.iqser.red.service.redaction.v1.model.DroolsSyntaxValidation; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Locale; -import feign.FeignException; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; +import static com.iqser.red.service.persistence.management.v1.processor.roles.ActionRoles.*; @RestController @RequiredArgsConstructor @@ -60,9 +54,10 @@ public class DossierTemplateControllerV2 implements DossierTemplateResource { private final DossierTemplateController dossierTemplateController; private final RulesPersistenceService rulesPersistenceService; private final RulesValidationService rulesValidationService; - private final AuditPersistenceService auditPersistenceService; private final FileAttributesController fileAttributesController; + private final Auditor auditor; + public List getAllDossierTemplates() { @@ -187,12 +182,9 @@ public class DossierTemplateControllerV2 implements DossierTemplateResource { rulesPersistenceService.setRules(rulesUploadRequest.getRules(), rulesUploadRequest.getDossierTemplateId(), rulesUploadRequest.getRuleFileType()); } - auditPersistenceService.audit(AuditRequest.builder() - .userId(KeycloakSecurity.getUserId()) - .objectId(rulesUploadRequest.getDossierTemplateId()) - .category(AuditCategory.DOSSIER_TEMPLATE.name()) - .message(String.format("%s rules have been %s", rulesUploadRequest.getRuleFileType(), dryRun ? "validated" : "updated")) - .build()); + auditor.audit(AuditCategory.DOSSIER_TEMPLATE.name(), + String.format("%s rules have been %s", rulesUploadRequest.getRuleFileType(), dryRun ? "validated" : "updated"), + AuditDetail.DOSSIER_TEMPLATE_ID, dossierTemplateId); // TODO Add warning and deprecations to response return new ResponseEntity<>(RulesValidationResponse.builder().build(), HttpStatus.OK); -- 2.47.2 From 37429e7cfcdd7f9fef1048a2e21ddefb9edb88ab Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Thu, 7 Dec 2023 17:08:03 +0200 Subject: [PATCH 16/20] include data migration in next PR/deploy --- .../src/main/resources/db/changelog/db.changelog-tenant.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml index 79c9ecaae..e6ae11d56 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml @@ -175,5 +175,3 @@ databaseChangeLog: file: db/changelog/tenant/117-rename-audit-pkey-constraint.sql - include: file: db/changelog/tenant/118-rename-audit-record-id-sequence.sql - - include: - file: db/changelog/tenant/sql/301-migrate-audit-data.sql -- 2.47.2 From c8c16bbdd71f3743f827a5da96627819aa4ba7a5 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Wed, 3 Jan 2024 19:29:09 +0200 Subject: [PATCH 17/20] Updated db changelog after merge --- .../{116-rename-audit-table.yaml => 117-rename-audit-table.yaml} | 0 ...t-pkey-constraint.sql => 118-rename-audit-pkey-constraint.sql} | 0 ...rd-id-sequence.sql => 119-rename-audit-record-id-sequence.sql} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/{116-rename-audit-table.yaml => 117-rename-audit-table.yaml} (100%) rename persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/{117-rename-audit-pkey-constraint.sql => 118-rename-audit-pkey-constraint.sql} (100%) rename persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/{118-rename-audit-record-id-sequence.sql => 119-rename-audit-record-id-sequence.sql} (100%) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/116-rename-audit-table.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/117-rename-audit-table.yaml similarity index 100% rename from persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/116-rename-audit-table.yaml rename to persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/117-rename-audit-table.yaml diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/117-rename-audit-pkey-constraint.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/118-rename-audit-pkey-constraint.sql similarity index 100% rename from persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/117-rename-audit-pkey-constraint.sql rename to persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/118-rename-audit-pkey-constraint.sql diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/118-rename-audit-record-id-sequence.sql b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/119-rename-audit-record-id-sequence.sql similarity index 100% rename from persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/118-rename-audit-record-id-sequence.sql rename to persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/119-rename-audit-record-id-sequence.sql -- 2.47.2 From 70f08d27cd94d17bf33720f13556309255540a77 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Thu, 4 Jan 2024 12:09:06 +0200 Subject: [PATCH 18/20] Fixes after merge with master --- .../download/DownloadPreparationService.java | 2 +- .../ManualRedactionUndoService.java | 3 +-- .../NotificationPersistenceService.java | 2 +- .../processor/service/users/UserService.java | 2 +- .../shared/model/AddNotificationRequest.java | 25 +++++++++++++++++++ 5 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AddNotificationRequest.java 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 65e583478..ef82b6bb9 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 @@ -22,7 +22,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DownloadRedactionFileStatusRepository; 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; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AddNotificationRequest; 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.FileType; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.WorkflowStatus; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java index db2de7269..678b76e81 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionUndoService.java @@ -15,6 +15,7 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,7 +33,6 @@ 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.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.entitylog.EntityLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.AnnotationStatus; @@ -43,7 +43,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.ManualRecategorization; import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry; 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.audit.AuditRequest; 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.ManualRedactionWrapperModel; import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; 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 e6a4940d8..2ec22b112 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 @@ -4,6 +4,7 @@ import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.List; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AddNotificationRequest; import jakarta.transaction.Transactional; import org.springframework.beans.BeanUtils; @@ -12,7 +13,6 @@ 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.persistence.repository.NotificationRepository; -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; 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/users/UserService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java index ee7bb1a42..b37f49b49 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/users/UserService.java @@ -11,7 +11,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.FileSta import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.users.events.*; import com.iqser.red.service.persistence.management.v1.processor.service.users.model.User; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AddNotificationRequest; 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; import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.NotificationType; diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AddNotificationRequest.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AddNotificationRequest.java new file mode 100644 index 000000000..13c25f0f4 --- /dev/null +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/AddNotificationRequest.java @@ -0,0 +1,25 @@ +package com.iqser.red.service.persistence.service.v1.api.shared.model; + +import java.util.HashMap; +import java.util.Map; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AddNotificationRequest { + + private String userId; + private String issuerId; + private String notificationType; + + @Builder.Default + private Map target = new HashMap<>(); + +} + -- 2.47.2 From cde382171c131566a7b4e6366bd3afbfad965c95 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Thu, 4 Jan 2024 12:17:53 +0200 Subject: [PATCH 19/20] Fixes after merge with master --- .../external/api/impl/controller/ComponentLogController.java | 2 +- .../v1/external/api/impl/controller/DossierController.java | 2 +- .../v1/external/api/impl/controller/DownloadController.java | 2 +- .../api/impl/controller/RSSComponentLogController.java | 4 +--- .../v1/external/api/impl/controller/StatusController.java | 4 ++-- .../v1/external/api/impl/controller/UploadController.java | 2 +- .../v1/server/integration/tests/NotificationTest.java | 2 +- 7 files changed, 8 insertions(+), 10 deletions(-) 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/ComponentLogController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ComponentLogController.java index ed62eb772..a0f5d777b 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ComponentLogController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/ComponentLogController.java @@ -1,12 +1,12 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetailAction; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; import com.iqser.red.service.persistence.service.v1.api.external.resource.ComponentLogResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLog; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntryValue; 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 63d058238..d6f57e43a 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 @@ -14,10 +14,10 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist 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.service.v1.api.external.resource.DossierResource; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AddNotificationRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierChangeEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierInformation; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; 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.CreateOrUpdateDossierRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; 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/DownloadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java index 01fcb6b5a..0d32aceca 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DownloadController.java @@ -3,12 +3,12 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import com.iqser.red.persistence.service.v1.external.api.impl.service.OneTimeTokenService; 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.audit.AuditCategory; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.*; import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; import com.iqser.red.service.persistence.service.v1.api.external.resource.DownloadResource; import com.iqser.red.service.persistence.service.v1.api.shared.model.*; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; 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.DownloadFileType; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; 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/RSSComponentLogController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSComponentLogController.java index e3e4eb8ad..527ee5e44 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSComponentLogController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/RSSComponentLogController.java @@ -11,6 +11,7 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetailAction; import com.knecon.fforesight.auditor.Auditor; @@ -25,12 +26,10 @@ import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentLogService; import com.iqser.red.service.persistence.management.v1.processor.service.ComponentOverrideService; import com.iqser.red.service.persistence.service.v1.api.external.resource.RSSResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatus; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntityReference; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntry; import com.iqser.red.service.persistence.service.v1.api.shared.model.analysislog.componentlog.ComponentLogEntryValue; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AuditRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.ComponentsOverrides; import com.iqser.red.service.persistence.service.v1.api.shared.model.component.RevertOverrideRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.rss.RSSFileResponse; @@ -39,7 +38,6 @@ import com.iqser.red.service.redaction.report.v1.api.model.rss.DetailedRSSFileRe import com.iqser.red.service.redaction.report.v1.api.model.rss.DetailedRSSResponse; import com.iqser.red.service.redaction.report.v1.api.model.rss.SCMComponent; import com.iqser.red.service.redaction.report.v1.api.model.rss.ScmAnnotation; -import com.knecon.fforesight.keycloakcommons.security.KeycloakSecurity; import lombok.RequiredArgsConstructor; 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/StatusController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java index f8d76e9a8..9dd5a3978 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/StatusController.java @@ -15,7 +15,9 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AddNotificationRequest; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.PathVariable; @@ -34,9 +36,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.FileSta import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.users.UserService; import com.iqser.red.service.persistence.service.v1.api.external.resource.StatusResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileStatus; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; 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.FileModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.ProcessingStatus; 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/UploadController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java index b1b518639..4a2be25a5 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/UploadController.java @@ -2,13 +2,13 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import com.iqser.red.service.pdftron.redaction.v1.api.model.ByteContentDocument; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.AccessControlService; import com.iqser.red.service.persistence.management.v1.processor.service.ReanalysisService; import com.iqser.red.service.persistence.management.v1.processor.service.UploadService; import com.iqser.red.service.persistence.management.v1.processor.utils.FileUtils; import com.iqser.red.service.persistence.service.v1.api.external.resource.UploadResource; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.FileUploadResult; import com.knecon.fforesight.auditor.Auditor; 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/NotificationTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationTest.java index 69f35d58f..72b2f95cd 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationTest.java @@ -15,7 +15,7 @@ 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.peristence.v1.server.integration.utils.MultithreadedTestRunner; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.shared.model.audit.AddNotificationRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.AddNotificationRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.Notification; import com.iqser.red.service.persistence.service.v1.api.shared.model.notification.NotificationType; -- 2.47.2 From 2f7146fe84a0bf92e379ec230ca417cf53ceb6e7 Mon Sep 17 00:00:00 2001 From: "Hanelore.Ianoseck" Date: Thu, 4 Jan 2024 12:23:40 +0200 Subject: [PATCH 20/20] Fixes after merge with master --- .../v1/external/api/impl/controller/DictionaryController.java | 1 + .../api/impl/controller/DossierTemplateControllerV2.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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/DictionaryController.java b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java index 1107deaf4..a78375517 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v1/src/main/java/com/iqser/red/persistence/service/v1/external/api/impl/controller/DictionaryController.java @@ -1,6 +1,7 @@ package com.iqser.red.persistence.service.v1.external.api.impl.controller; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; + import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.DictionaryService; import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; 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/DossierTemplateControllerV2.java b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java index 436285d00..78fcab8d9 100644 --- a/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java +++ b/persistence-service-v1/persistence-service-external-api-impl-v2/src/main/java/com/iqser/red/persistence/service/v2/external/api/impl/controller/DossierTemplateControllerV2.java @@ -3,11 +3,11 @@ package com.iqser.red.persistence.service.v2.external.api.impl.controller; import com.iqser.red.persistence.service.v1.external.api.impl.controller.DossierTemplateController; import com.iqser.red.persistence.service.v1.external.api.impl.controller.FileAttributesController; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditCategory; import com.iqser.red.service.persistence.management.v1.processor.model.audit.AuditDetail; import com.iqser.red.service.persistence.management.v1.processor.service.RulesValidationService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.utils.StringEncodingUtils; -import com.iqser.red.service.persistence.service.v1.api.shared.model.AuditCategory; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.RuleFileType; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.rules.RulesUploadRequest; -- 2.47.2