From 6a763e0575587665c7006ae6ace52c99f44fd83d Mon Sep 17 00:00:00 2001 From: Philipp Schramm Date: Mon, 17 Oct 2022 14:27:24 +0200 Subject: [PATCH] RED-5232: Formatted service with latest styleguide --- CHANGELOG.md | 1 + .../src/main/java/buildjob/PlanSpec.java | 116 ++-- .../src/test/java/buildjob/PlanSpecTest.java | 4 +- persistence-service-image-v1/pom.xml | 2 +- .../annotations/AddRedactionRequest.java | 10 +- .../v1/api/model/annotations/Comment.java | 6 +- .../model/annotations/ManualAddResponse.java | 1 + .../model/annotations/ManualRedactions.java | 16 +- .../v1/api/model/annotations/Rectangle.java | 1 - .../annotations/UpdateRedactionRequest.java | 6 +- .../v1/api/model/annotations/ViewedPage.java | 4 +- .../entitymapped/BaseAnnotation.java | 6 +- .../annotations/entitymapped/IdRemoval.java | 19 +- .../entitymapped/ManualForceRedaction.java | 19 +- .../ManualImageRecategorization.java | 19 +- .../entitymapped/ManualLegalBasisChange.java | 23 +- .../entitymapped/ManualRedactionEntry.java | 45 +- .../entitymapped/ManualResizeRedaction.java | 18 +- .../model/audit/AddNotificationRequest.java | 6 +- .../v1/api/model/audit/AuditModel.java | 8 +- .../v1/api/model/audit/AuditRequest.java | 7 +- .../api/model/audit/AuditSearchRequest.java | 4 +- .../v1/api/model/common/JSONPrimitive.java | 2 + .../service/v1/api/model/common/Page.java | 7 +- .../CreateOrUpdateDossierTemplateRequest.java | 9 +- .../DossierAttributeConfig.java | 3 +- .../dossiertemplate/DossierTemplate.java | 13 +- .../DossierTemplateDictionaryStats.java | 7 +- .../dossiertemplate/DossierTemplateStats.java | 8 +- .../DossierTemplateStatus.java | 4 +- .../dossiertemplate/DownloadFileType.java | 7 +- .../FileAttributesGeneralConfiguration.java | 1 - .../dossiertemplate/ImportCsvResponse.java | 6 +- .../model/dossiertemplate/ReportTemplate.java | 4 +- .../ReportTemplateDownload.java | 1 + .../ReportTemplateUpdateRequest.java | 10 +- .../ReportTemplateUploadRequest.java | 8 +- .../configuration/DigitalSignatureType.java | 4 +- .../DigitalSignatureUpdateModel.java | 6 +- .../configuration/WatermarkOrientation.java | 4 +- .../dossier/CreateOrUpdateDossierRequest.java | 13 +- .../CreateOrUpdateDossierStatusRequest.java | 1 + .../dossier/DeletedDossier.java | 4 +- .../dossiertemplate/dossier/Dossier.java | 15 +- .../dossier/DossierAttribute.java | 1 - .../dossier/DossierAttributeType.java | 5 +- .../dossier/DossierChange.java | 9 +- .../dossiertemplate/dossier/DossierStats.java | 16 +- .../dossier/DossierVisibility.java | 3 +- .../dossier/file/AddFileRequest.java | 7 +- .../dossier/file/FileAttributeConfig.java | 1 - .../dossier/file/FileAttributeType.java | 4 +- .../dossier/file/FileModel.java | 7 +- .../dossier/file/ProcessingStatus.java | 20 +- .../dossier/file/WorkflowStatus.java | 5 +- .../importexport/ExportDownloadRequest.java | 8 +- .../importexport/ExportFilename.java | 3 +- .../ImportDossierTemplateRequest.java | 9 +- .../importexport/ImportTemplateResult.java | 19 +- .../legalbasis/LegalBasis.java | 1 - .../legalbasis/LegalBasisMapping.java | 6 +- .../dossiertemplate/type/DictionaryEntry.java | 4 +- .../type/DictionaryEntryType.java | 4 +- .../type/DictionarySummary.java | 2 + .../type/DictionarySummaryResponse.java | 1 + .../api/model/download/DownloadRequest.java | 8 +- .../v1/api/model/download/DownloadStatus.java | 14 +- .../model/download/DownloadStatusValue.java | 5 +- .../model/download/SetDownloadedRequest.java | 7 +- .../v1/api/model/license/LicenseReport.java | 8 +- .../model/license/LicenseReportRequest.java | 14 +- .../v1/api/model/license/ReportData.java | 8 +- .../notification/EmailNotificationType.java | 4 +- .../api/model/notification/Notification.java | 9 +- .../notification/NotificationPreferences.java | 7 +- .../model/notification/NotificationType.java | 18 +- .../FilteredRedactionLogRequest.java | 1 + .../ApplicationConfigurationResource.java | 8 +- .../v1/api/resources/AuditResource.java | 18 +- .../v1/api/resources/DictionaryResource.java | 25 +- .../DossierAttributesConfigResource.java | 19 +- .../resources/DossierAttributesResource.java | 16 +- .../v1/api/resources/DossierResource.java | 14 + .../api/resources/DossierStatsResource.java | 3 + .../api/resources/DossierStatusResource.java | 21 +- .../resources/DossierTemplateResource.java | 38 +- .../DossierTemplateStatsResource.java | 12 +- .../v1/api/resources/DownloadResource.java | 4 + .../FileAttributesConfigResource.java | 29 +- .../api/resources/FileAttributesResource.java | 13 +- .../FileStatusProcessingUpdateResource.java | 6 +- .../resources/LegalBasisMappingResource.java | 18 +- .../api/resources/LicenseReportResource.java | 11 +- .../resources/ManualRedactionResource.java | 25 +- .../NotificationPreferencesResource.java | 13 +- .../api/resources/NotificationResource.java | 34 +- .../v1/api/resources/ReanalysisResource.java | 9 +- .../api/resources/RedactionLogResource.java | 8 +- .../api/resources/ReportTemplateResource.java | 25 +- .../v1/api/resources/RulesResource.java | 13 +- .../resources/SMTPConfigurationResource.java | 12 +- .../v1/api/resources/StatusResource.java | 49 +- .../v1/api/resources/TenantsResource.java | 3 + .../v1/api/resources/UploadResource.java | 23 +- .../api/resources/UserPreferenceResource.java | 12 +- .../v1/api/resources/ViewedPagesResource.java | 18 +- .../v1/api/resources/WatermarkResource.java | 24 +- .../v1/api/utils/SuppressFBWarnings.java | 3 + .../service/v1/api/model/IdentityTest.java | 6 +- ...sistenceServiceProcessorConfiguration.java | 3 + .../client/PDFTronRedactionClient.java | 3 +- .../annotations/AnnotationEntityId.java | 9 +- .../entity/annotations/CommentEntity.java | 14 +- .../entity/annotations/IBaseAnnotation.java | 12 +- .../entity/annotations/IdRemovalEntity.java | 14 +- .../ManualForceRedactionEntity.java | 14 +- .../ManualImageRecategorizationEntity.java | 15 +- .../ManualLegalBasisChangeEntity.java | 14 +- .../ManualRedactionEntryEntity.java | 26 +- .../entity/annotations/RectangleEntity.java | 4 +- .../entity/annotations/ViewedPageEntity.java | 21 +- .../ApplicationConfigurationEntity.java | 10 +- .../configuration/BaseDictionaryEntry.java | 3 + .../entity/configuration/ColorsEntity.java | 10 +- .../configuration/DictionaryEntryEntity.java | 11 +- .../DictionaryFalsePositiveEntryEntity.java | 12 +- ...tionaryFalseRecommendationEntryEntity.java | 10 +- .../configuration/DigitalSignatureEntity.java | 9 +- ...eAttributesGeneralConfigurationEntity.java | 10 +- .../configuration/LegalBasisEntity.java | 6 +- .../LegalBasisMappingEntity.java | 18 +- .../entity/configuration/RuleSetEntity.java | 9 +- .../entity/configuration/TypeEntity.java | 5 +- .../dossier/DossierAttributeConfigEntity.java | 14 +- .../dossier/DossierAttributeEntity.java | 2 +- .../entity/dossier/DossierEntity.java | 40 +- .../entity/dossier/DossierTemplateEntity.java | 13 +- .../dossier/FileAttributeConfigEntity.java | 12 +- .../entity/dossier/FileAttributeEntity.java | 13 +- .../processor/entity/dossier/FileEntity.java | 41 +- .../entity/dossier/ReportTemplateEntity.java | 18 +- .../entity/migration/MigrationEntity.java | 1 + .../notification/NotificationEntity.java | 1 + .../NotificationPreferencesEntity.java | 20 +- .../exception/BadRequestException.java | 3 + .../exception/ConflictException.java | 1 + .../exception/DossierNotFoundException.java | 2 + .../InternalServerErrorException.java | 3 + .../exception/NotFoundException.java | 1 + .../exception/ValidationException.java | 1 + .../model/OCRStatusUpdateResponse.java | 1 - .../multitenancy/entity/TenantEntity.java | 1 + .../service/ApplicationConfigService.java | 12 +- .../v1/processor/service/ColorsService.java | 44 +- .../service/DigitalSignatureKmsService.java | 1 - .../service/DigitalSignatureService.java | 6 +- .../service/DigitalSignatureTypeService.java | 4 +- .../service/DossierTemplateCloneService.java | 30 +- .../v1/processor/service/EmailService.java | 8 +- .../processor/service/WatermarkService.java | 13 +- .../persistence/AuditPersistenceService.java | 35 +- .../DictionaryPersistenceService.java | 34 +- ...sierAttributeConfigPersistenceService.java | 45 +- .../DossierAttributePersistenceService.java | 27 +- .../DossierPersistenceService.java | 23 +- .../DossierStatusPersistenceService.java | 58 +- .../DossierTemplatePersistenceService.java | 3 +- .../DownloadStatusPersistenceService.java | 24 +- .../persistence/EntryPersistenceService.java | 27 +- ...FileAttributeConfigPersistenceService.java | 45 +- .../FileStatusPersistenceService.java | 114 ++-- .../LegalBasisMappingPersistenceService.java | 42 +- .../persistence/NotificationEmailService.java | 15 +- .../NotificationPersistenceService.java | 33 +- .../ReportTemplatePersistenceService.java | 34 +- .../persistence/RulesPersistenceService.java | 21 +- .../persistence/SMTPConfigurationService.java | 15 +- .../AddRedactionPersistenceService.java | 8 +- .../ForceRedactionPersistenceService.java | 15 +- ...ageRecategorizationPersistenceService.java | 15 +- .../LegalBasisChangePersistenceService.java | 15 +- .../RemoveRedactionPersistenceService.java | 17 +- .../CurrentTenantIdentifierResolverImpl.java | 4 + ...rceBasedMultiTenantConnectionProvider.java | 7 +- .../repository/TenantRepository.java | 1 + .../DossierCountByStatusProjection.java | 1 + .../projection/FilePageCountsProjection.java | 2 + .../FileProcessingStatusProjection.java | 1 + .../FileWorkflowStatusProjection.java | 1 + .../ApplicationConfigRepository.java | 4 +- .../repository/AuditRepository.java | 18 +- .../repository/ColorsRepository.java | 4 +- .../repository/CommentRepository.java | 18 +- .../DigitalSignatureRepository.java | 4 +- .../DossierAttributeConfigRepository.java | 3 +- .../DossierAttributeRepository.java | 9 +- .../repository/DossierRepository.java | 35 +- .../repository/DossierStatusRepository.java | 25 +- .../repository/DossierTemplateRepository.java | 11 +- .../repository/DownloadStatusRepository.java | 18 +- .../repository/EntryRepository.java | 16 +- .../FalsePositiveEntryRepository.java | 17 +- .../FalseRecommendationEntryRepository.java | 17 +- .../FileAttributeConfigRepository.java | 11 +- ...ributesGeneralConfigurationRepository.java | 4 +- .../repository/FileAttributesRepository.java | 8 +- .../repository/FileRepository.java | 155 +++--- .../repository/ForceRedactionRepository.java | 8 +- .../ImageRecategorizationRepository.java | 9 +- .../LegalBasisChangeRepository.java | 6 +- .../LegalBasisMappingRepository.java | 4 +- .../repository/ManualRedactionRepository.java | 2 + .../NotificationPreferencesRepository.java | 5 +- .../repository/NotificationRepository.java | 24 +- .../repository/RemoveRedactionRepository.java | 15 +- .../repository/ReportTemplateRepository.java | 11 +- .../repository/ResizeRedactionRepository.java | 8 +- .../repository/RuleSetRepository.java | 3 +- .../repository/SMTPRepository.java | 4 +- .../repository/TypeRepository.java | 18 +- .../repository/ViewedPagesRepository.java | 8 +- .../repository/WatermarkRepository.java | 2 + .../settings/FileUploadSettings.java | 1 + .../utils/JSONDownloadFileTypeConverter.java | 17 +- .../utils/JSONIntegerSetConverter.java | 17 +- .../v1/processor/utils/JSONMapConverter.java | 17 +- .../utils/JSONStringSetConverter.java | 17 +- .../v1/processor/utils/MagicConverter.java | 24 +- .../v1/processor/utils/TypeIdUtils.java | 4 + .../processor/utils/jdbc/JDBCWriteUtils.java | 47 +- .../v1/processor/service/IdentityTest.java | 6 +- .../peristence/v1/server/Application.java | 4 +- .../v1/server/TextNormalizationUtilities.java | 1 + .../v1/server/client/RedactionClient.java | 3 +- .../v1/server/client/SearchClient.java | 2 +- ...CleanupDownloadSchedulerConfiguration.java | 9 +- .../configuration/MessagingConfiguration.java | 7 +- .../ApplicationConfigurationController.java | 3 + .../v1/server/controller/AuditController.java | 21 +- .../server/controller/ControllerAdvice.java | 33 +- .../controller/DictionaryController.java | 37 +- .../DossierAttributesConfigController.java | 38 +- .../server/controller/DossierController.java | 10 +- .../controller/DossierStatsController.java | 19 +- .../controller/DossierStatusController.java | 29 +- .../controller/DossierTemplateController.java | 36 +- .../DossierTemplateStatsController.java | 21 +- .../server/controller/DownloadController.java | 19 +- .../FileAttributesConfigController.java | 41 +- .../controller/FileAttributesController.java | 47 +- .../controller/FileStatusController.java | 15 +- .../FileStatusProcessingUpdateController.java | 9 +- .../LegalBasisMappingController.java | 29 +- .../controller/LicenseReportController.java | 8 +- .../controller/ManualRedactionController.java | 40 +- .../NotificationPreferencesController.java | 15 +- .../controller/ReanalysisController.java | 21 +- .../controller/RedactionLogController.java | 6 +- .../controller/ReportTemplateController.java | 8 +- .../v1/server/controller/RulesController.java | 11 +- .../SMTPConfigurationController.java | 25 +- .../server/controller/TenantsController.java | 6 +- .../server/controller/UploadController.java | 32 +- .../controller/ViewedPagesController.java | 22 +- .../exception/InvalidRulesException.java | 1 + .../internal/AdminInterfaceController.java | 29 +- .../server/jobs/CreateJobsConfiguration.java | 54 +- .../jobs/CustomQuartzConfiguration.java | 69 ++- .../HibernateStatisticsInterceptor.java | 9 + .../server/metrics/MetricsConfiguration.java | 8 +- .../metrics/PersistenceMetricsAspect.java | 25 +- .../v1/server/migration/Migration.java | 11 +- .../server/migration/MigrationController.java | 4 +- .../DictionaryToEntityMigration2.java | 2 - .../EncryptSMTPPasswordsMigration11.java | 7 +- .../migration/migrations/IndexMigration1.java | 1 + .../ManualRedactionTypeMigration9.java | 26 +- .../migrations/MigrateHighlights3.java | 9 +- .../migrations/TypeToEntityMigration5.java | 10 +- .../reducetext/AbstractTextContainer.java | 11 +- .../migrations/model/reducetext/Image.java | 2 +- .../model/reducetext/RedRectangle2D.java | 12 +- .../model/reducetext/RedTextPosition.java | 5 +- .../reducetext/TextPositionSequence.java | 9 +- .../v1/server/model/DownloadJob.java | 6 +- .../persistence/MasterPersistenceConfig.java | 10 +- .../persistence/TenantPersistenceConfig.java | 8 +- .../AnalysisFlagsCalculationService.java | 38 +- .../v1/server/service/DictionaryService.java | 75 ++- .../v1/server/service/DossierService.java | 1 + .../service/DossierTemplateImportService.java | 187 +++++-- .../service/DossierTemplateStatsService.java | 47 +- .../service/ExcludeFromAnalysisService.java | 6 +- .../service/FileManagementStorageService.java | 26 +- .../v1/server/service/FileService.java | 105 ++-- .../FileStatusProcessingUpdateService.java | 27 +- .../v1/server/service/FileStatusService.java | 100 ++-- .../server/service/ImageMessageReceiver.java | 16 +- .../v1/server/service/IndexingService.java | 19 +- .../server/service/LicenseReportService.java | 1 + .../ManualRedactionProviderService.java | 10 +- .../service/ManualRedactionService.java | 86 ++- .../service/OCRProcessingMessageReceiver.java | 8 +- .../ReanalysisRequiredStatusService.java | 47 +- .../server/service/RedactionLogService.java | 18 +- .../server/service/ReportTemplateService.java | 52 +- .../v1/server/service/StopwordService.java | 10 +- .../service/TenantManagementService.java | 12 +- .../download/DownloadDLQMessageReceiver.java | 23 +- .../download/DownloadMessageReceiver.java | 3 +- .../download/DownloadPreparationService.java | 14 +- .../download/DownloadProcessorService.java | 19 +- .../DownloadReportCleanupService.java | 2 + .../DownloadReportMessageReceiver.java | 8 +- .../RedactionResultMessageReceiver.java | 5 +- .../export/DossierTemplateExportService.java | 110 ++-- .../export/ExportDownloadMessageReceiver.java | 10 +- .../service/job/AutomaticAnalysisJob.java | 8 +- .../service/job/DeletedFilesCleanupJob.java | 6 +- .../service/job/DownloadCleanupJob.java | 15 +- .../v1/server/utils/DossierMapper.java | 8 +- .../v1/server/utils/FileModelMapper.java | 9 +- .../utils/FileSystemBackedArchiver.java | 18 +- .../ManualImageRecategorizationMapper.java | 5 +- .../server/utils/ManualRedactionMapper.java | 9 +- .../utils/ManualResizeRedactionMapper.java | 2 +- .../v1/server/utils/StorageIdUtils.java | 6 +- .../validation/DictionaryValidator.java | 10 +- .../src/main/resources/log4j.properties | 1 - .../client/ApplicationConfigClient.java | 4 +- .../integration/client/AuditClient.java | 4 +- .../integration/client/DictionaryClient.java | 4 +- .../client/DigitalSignatureClient.java | 4 +- .../client/DossierAttributeClient.java | 4 +- .../client/DossierAttributeConfigClient.java | 4 +- .../integration/client/DossierClient.java | 4 +- .../client/DossierStatsClient.java | 4 +- .../client/DossierStatusClient.java | 4 +- .../client/DossierTemplateClient.java | 4 +- .../client/DossierTemplateStatsClient.java | 4 +- .../integration/client/DownloadClient.java | 4 +- .../client/FileAttributeClient.java | 4 +- .../client/FileAttributeConfigClient.java | 4 +- .../server/integration/client/FileClient.java | 4 +- .../client/FileProcessingClient.java | 4 +- .../integration/client/LegalBasisClient.java | 3 +- .../client/LicenseReportClient.java | 4 +- .../client/ManualRedactionClient.java | 3 +- .../client/NotificationClient.java | 4 +- .../client/NotificationPreferencesClient.java | 4 +- .../integration/client/ReanalysisClient.java | 4 +- .../client/RedactionLogClient.java | 3 +- .../client/ReportTemplateClient.java | 3 +- .../integration/client/RulesClient.java | 4 +- .../server/integration/client/SMTPClient.java | 3 +- .../integration/client/TenantsClient.java | 1 - .../integration/client/UploadClient.java | 4 +- .../integration/client/ViewedPagesClient.java | 4 +- .../integration/client/WatermarkClient.java | 4 +- .../DossierTemplateTesterAndProvider.java | 23 +- .../service/DossierTesterAndProvider.java | 27 +- .../service/FileTesterAndProvider.java | 29 +- .../integration/service/TypeProvider.java | 4 +- .../tests/ApplicationConfigTest.java | 17 +- .../server/integration/tests/AuditTest.java | 17 +- .../integration/tests/DictionaryTest.java | 47 +- .../tests/DossierAttributeTest.java | 30 +- .../integration/tests/DossierStatsTest.java | 8 +- .../integration/tests/DossierStatusTest.java | 18 +- .../tests/DossierTemplateStatsTest.java | 43 +- .../tests/DossierTemplateTest.java | 270 ++++++---- .../server/integration/tests/DossierTest.java | 17 +- .../tests/DownloadPreparationTest.java | 18 +- .../integration/tests/DownloadTest.java | 35 +- .../EncryptSMTPPasswordsMigrationTest.java | 11 +- .../integration/tests/FileAttributeTest.java | 63 +-- .../integration/tests/FileProcessingTest.java | 71 +-- .../v1/server/integration/tests/FileTest.java | 122 +++-- .../integration/tests/LegalBasisTest.java | 29 +- .../integration/tests/LicenseReportTest.java | 1 + .../tests/ManualRedactionTest.java | 506 +++++++++--------- .../tests/NotificationPreferencesTest.java | 23 +- .../integration/tests/NotificationTest.java | 45 +- .../integration/tests/ReanalysisTest.java | 9 +- .../integration/tests/RedactionLogTest.java | 14 +- .../integration/tests/ReportTemplateTest.java | 53 +- .../server/integration/tests/RulesTest.java | 13 +- .../v1/server/integration/tests/SMTPTest.java | 13 +- .../v1/server/integration/tests/TypeTest.java | 8 +- .../integration/tests/ViewedPagesTest.java | 10 +- .../integration/tests/WatermarkTest.java | 14 +- .../performance/EntityPerformanceTest.java | 34 +- .../performance/FilePerformanceTest.java | 55 +- .../AbstractPersistenceServerServiceTest.java | 26 +- .../utils/FileSystemBackedStorageService.java | 20 + .../utils/SpringPostgreSQLTestContainer.java | 4 + .../utils/FileSystemBackArchiverTest.java | 12 +- .../server/utils/MetricsPrinterService.java | 36 +- 398 files changed, 4491 insertions(+), 2705 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c28d4d9d..38b5906ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ # Changelog + All notable changes to this project will be documented in this file. ## [Unreleased] diff --git a/bamboo-specs/src/main/java/buildjob/PlanSpec.java b/bamboo-specs/src/main/java/buildjob/PlanSpec.java index f0213143b..62a0490e9 100644 --- a/bamboo-specs/src/main/java/buildjob/PlanSpec.java +++ b/bamboo-specs/src/main/java/buildjob/PlanSpec.java @@ -40,6 +40,7 @@ public class PlanSpec { private static final String SERVICE_KEY = SERVICE_NAME.toUpperCase().replaceAll("-", ""); + /** * Run main to publish plan on Bamboo */ @@ -58,10 +59,15 @@ public class PlanSpec { bambooServer.publish(secPlanPermission); } + private PlanPermissions createPlanPermission(PlanIdentifier planIdentifier) { - Permissions permission = new Permissions() - .userPermissions("atlbamboo", PermissionType.EDIT, PermissionType.VIEW, PermissionType.ADMIN, PermissionType.CLONE, PermissionType.BUILD) + Permissions permission = new Permissions().userPermissions("atlbamboo", + PermissionType.EDIT, + PermissionType.VIEW, + PermissionType.ADMIN, + PermissionType.CLONE, + PermissionType.BUILD) .groupPermissions("development", PermissionType.EDIT, PermissionType.VIEW, PermissionType.CLONE, PermissionType.BUILD) .groupPermissions("devplant", PermissionType.EDIT, PermissionType.VIEW, PermissionType.CLONE, PermissionType.BUILD) .loggedInUserPermissions(PermissionType.VIEW) @@ -69,90 +75,52 @@ public class PlanSpec { return new PlanPermissions(planIdentifier.getProjectKey(), planIdentifier.getPlanKey()).permissions(permission); } + private Project project() { - return new Project() - .name("RED") - .key(new BambooKey("RED")); + return new Project().name("RED").key(new BambooKey("RED")); } + public Plan createPlanBuild() { - return new Plan(project(), SERVICE_NAME, new BambooKey(SERVICE_KEY)).description("Build Plan for Persitence Service").variables(new Variable("maven_add_param", "")) - .stages(new Stage("Default Stage") - .jobs(new Job("Default Job", - new BambooKey("JOB1")) - .tasks( - new ScriptTask() - .description("Clean") - .inlineBody("#!/bin/bash\n" + - "set -e\n" + - "rm -rf ./*"), new VcsCheckoutTask().description("Checkout Default Repository").cleanCheckout(true) - .checkoutItems(new CheckoutItem().defaultRepository()), - new ScriptTask() - .description("Build") - .location(Location.FILE) - .fileFromPath("bamboo-specs/src/main/resources/scripts/build-java.sh") - .argument(SERVICE_NAME), - createJUnitParserTask() - .description("Resultparser") - .resultDirectories("**/test-reports/*.xml, **/target/surefire-reports/*.xml, **/target/failsafe-reports/*.xml") - .enabled(true), - new InjectVariablesTask() - .description("Inject git Tag") - .path("git.tag") - .namespace("g") - .scope(InjectVariablesScope.LOCAL), - new VcsTagTask() - .description("${bamboo.g.gitTag}") - .tagName("${bamboo.g.gitTag}") - .defaultRepository()) - .dockerConfiguration(new DockerConfiguration().image("nexus.iqser.com:5001/infra/maven:3.8.4-openjdk-17-slim") - .dockerRunArguments("--net=host") - .volume("/etc/maven/settings.xml", "/usr/share/maven/ref/settings.xml") - .volume("/var/run/docker.sock", "/var/run/docker.sock") - ) - ) - ) + + return new Plan(project(), SERVICE_NAME, new BambooKey(SERVICE_KEY)).description("Build Plan for Persitence Service") + .variables(new Variable("maven_add_param", "")) + .stages(new Stage("Default Stage").jobs(new Job("Default Job", new BambooKey("JOB1")).tasks(new ScriptTask().description("Clean") + .inlineBody("#!/bin/bash\n" + "set -e\n" + "rm -rf ./*"), + new VcsCheckoutTask().description("Checkout Default Repository").cleanCheckout(true).checkoutItems(new CheckoutItem().defaultRepository()), + new ScriptTask().description("Build").location(Location.FILE).fileFromPath("bamboo-specs/src/main/resources/scripts/build-java.sh").argument(SERVICE_NAME), + createJUnitParserTask().description("Resultparser") + .resultDirectories("**/test-reports/*.xml, **/target/surefire-reports/*.xml, **/target/failsafe-reports/*.xml") + .enabled(true), + new InjectVariablesTask().description("Inject git Tag").path("git.tag").namespace("g").scope(InjectVariablesScope.LOCAL), + new VcsTagTask().description("${bamboo.g.gitTag}").tagName("${bamboo.g.gitTag}").defaultRepository()) + .dockerConfiguration(new DockerConfiguration().image("nexus.iqser.com:5001/infra/maven:3.8.4-openjdk-17-slim") + .dockerRunArguments("--net=host") + .volume("/etc/maven/settings.xml", "/usr/share/maven/ref/settings.xml") + .volume("/var/run/docker.sock", "/var/run/docker.sock")))) .linkedRepositories("RED / " + SERVICE_NAME) .triggers(new BitbucketServerTrigger()) - .planBranchManagement(new PlanBranchManagement() - .createForVcsBranch() - .delete(new BranchCleanup() - .whenInactiveInRepositoryAfterDays(14)) + .planBranchManagement(new PlanBranchManagement().createForVcsBranch() + .delete(new BranchCleanup().whenInactiveInRepositoryAfterDays(14)) .notificationForCommitters()); } + public Plan createSecBuild() { - return new Plan( - project(), - SERVICE_NAME + "-Sec", new BambooKey(SERVICE_KEY + "SEC")) - .description("Security Analysis Plan") - .stages(new Stage("Default Stage") - .jobs(new Job("Default Job", - new BambooKey("JOB1")) - .tasks( - new ScriptTask() - .description("Clean") - .inlineBody("#!/bin/bash\n" + - "set -e\n" + - "rm -rf ./*"), new VcsCheckoutTask().description("Checkout Default Repository").cleanCheckout(true) - .checkoutItems(new CheckoutItem().defaultRepository()), - new ScriptTask() - .description("Sonar") - .location(Location.FILE) - .fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-java.sh") - .argument(SERVICE_NAME)) - .dockerConfiguration(new DockerConfiguration().image("nexus.iqser.com:5001/infra/maven:3.8.4-openjdk-17-slim") - .dockerRunArguments("--net=host") - .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml") - .volume("/var/run/docker.sock", "/var/run/docker.sock") - ) - ) - ) + + return new Plan(project(), SERVICE_NAME + "-Sec", new BambooKey(SERVICE_KEY + "SEC")).description("Security Analysis Plan") + .stages(new Stage("Default Stage").jobs(new Job("Default Job", new BambooKey("JOB1")).tasks(new ScriptTask().description("Clean") + .inlineBody("#!/bin/bash\n" + "set -e\n" + "rm -rf ./*"), + new VcsCheckoutTask().description("Checkout Default Repository").cleanCheckout(true).checkoutItems(new CheckoutItem().defaultRepository()), + new ScriptTask().description("Sonar").location(Location.FILE).fileFromPath("bamboo-specs/src/main/resources/scripts/sonar-java.sh").argument(SERVICE_NAME)) + .dockerConfiguration(new DockerConfiguration().image("nexus.iqser.com:5001/infra/maven:3.8.4-openjdk-17-slim") + .dockerRunArguments("--net=host") + .volume("/etc/maven/settings.xml", "/usr/share/maven/conf/settings.xml") + .volume("/var/run/docker.sock", "/var/run/docker.sock")))) .linkedRepositories("RED / " + SERVICE_NAME) .triggers(new ScheduledTrigger().scheduleOnceDaily(LocalTime.of(23, 00))) - .planBranchManagement(new PlanBranchManagement() - .createForVcsBranchMatching("release.*") - .notificationForCommitters()); + .planBranchManagement(new PlanBranchManagement().createForVcsBranchMatching("release.*").notificationForCommitters()); } + } diff --git a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java b/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java index d0a1f2059..3d4e892fe 100644 --- a/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java +++ b/bamboo-specs/src/test/java/buildjob/PlanSpecTest.java @@ -1,6 +1,5 @@ package buildjob; - import org.junit.Test; import com.atlassian.bamboo.specs.api.builders.plan.Plan; @@ -8,12 +7,15 @@ import com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException; import com.atlassian.bamboo.specs.api.util.EntityPropertiesBuilders; public class PlanSpecTest { + @Test public void checkYourPlanOffline() throws PropertiesValidationException { + Plan buildPlan = new PlanSpec().createPlanBuild(); EntityPropertiesBuilders.build(buildPlan); Plan secPlan = new PlanSpec().createSecBuild(); EntityPropertiesBuilders.build(secPlan); } + } \ No newline at end of file diff --git a/persistence-service-image-v1/pom.xml b/persistence-service-image-v1/pom.xml index 060cb4098..33eb413d3 100644 --- a/persistence-service-image-v1/pom.xml +++ b/persistence-service-image-v1/pom.xml @@ -6,7 +6,7 @@ com.iqser.red platform-docker-dependency 1.2.0 - + 4.0.0 diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/AddRedactionRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/AddRedactionRequest.java index 85ba46dae..3c9e78859 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/AddRedactionRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/AddRedactionRequest.java @@ -1,15 +1,15 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - import java.util.ArrayList; import java.util.List; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/Comment.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/Comment.java index c8d12ebf9..004735e80 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/Comment.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/Comment.java @@ -1,13 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations; +import java.time.OffsetDateTime; + import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; - @Data @Builder @AllArgsConstructor @@ -22,4 +23,5 @@ public class Comment { private String user; private OffsetDateTime softDeletedTime; private FileModel fileStatus; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ManualAddResponse.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ManualAddResponse.java index 160eecd28..f21359da6 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ManualAddResponse.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ManualAddResponse.java @@ -13,4 +13,5 @@ public class ManualAddResponse { private String annotationId; private Long commentId; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ManualRedactions.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ManualRedactions.java index 7a78cf928..19d79d9f8 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ManualRedactions.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ManualRedactions.java @@ -1,13 +1,23 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.IdRemoval; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualForceRedaction; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualImageRecategorization; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualLegalBasisChange; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualRedactionEntry; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualResizeRedaction; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.*; - @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/Rectangle.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/Rectangle.java index 7bd332d87..4efd7896f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/Rectangle.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/Rectangle.java @@ -11,7 +11,6 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class Rectangle { - private float topLeftX; private float topLeftY; diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/UpdateRedactionRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/UpdateRedactionRequest.java index 329abfe46..25c61ae15 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/UpdateRedactionRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/UpdateRedactionRequest.java @@ -1,17 +1,19 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations; +import java.util.List; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.List; - @Data @Builder @AllArgsConstructor @NoArgsConstructor public class UpdateRedactionRequest { + private List annotationIds; private AnnotationStatus annotationStatus; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ViewedPage.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ViewedPage.java index 73202f13b..52ab65f5a 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ViewedPage.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/ViewedPage.java @@ -1,11 +1,11 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations; +import java.time.OffsetDateTime; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; - @Data @AllArgsConstructor @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/BaseAnnotation.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/BaseAnnotation.java index 697c3b1eb..d673f8562 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/BaseAnnotation.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/BaseAnnotation.java @@ -1,13 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped; +import java.time.OffsetDateTime; + import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; - @Data @NoArgsConstructor @AllArgsConstructor @@ -21,4 +22,5 @@ public class BaseAnnotation { private OffsetDateTime requestDate; private OffsetDateTime processedDate; private OffsetDateTime softDeletedTime; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/IdRemoval.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/IdRemoval.java index 461d3a2ce..f029398fa 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/IdRemoval.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/IdRemoval.java @@ -1,13 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped; +import java.time.OffsetDateTime; + import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; - @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @@ -15,11 +16,17 @@ public class IdRemoval extends BaseAnnotation { private boolean removeFromDictionary; + @Builder - public IdRemoval(String annotationId, String fileId, - String user, AnnotationStatus status, - OffsetDateTime requestDate, OffsetDateTime processedDate, - OffsetDateTime softDeletedTime, boolean removeFromDictionary) { + public IdRemoval(String annotationId, + String fileId, + String user, + AnnotationStatus status, + OffsetDateTime requestDate, + OffsetDateTime processedDate, + OffsetDateTime softDeletedTime, + boolean removeFromDictionary) { + super(annotationId, fileId, user, status, requestDate, processedDate, softDeletedTime); this.removeFromDictionary = removeFromDictionary; } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualForceRedaction.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualForceRedaction.java index b5b650ee2..abf99e810 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualForceRedaction.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualForceRedaction.java @@ -1,13 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped; +import java.time.OffsetDateTime; + import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; - @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @@ -15,11 +16,17 @@ public class ManualForceRedaction extends BaseAnnotation { private String legalBasis; + @Builder - public ManualForceRedaction(String annotationId, String fileId, - String user, AnnotationStatus status, - OffsetDateTime requestDate, OffsetDateTime processedDate, - OffsetDateTime softDeletedTime, String legalBasis) { + public ManualForceRedaction(String annotationId, + String fileId, + String user, + AnnotationStatus status, + OffsetDateTime requestDate, + OffsetDateTime processedDate, + OffsetDateTime softDeletedTime, + String legalBasis) { + super(annotationId, fileId, user, status, requestDate, processedDate, softDeletedTime); this.legalBasis = legalBasis; } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualImageRecategorization.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualImageRecategorization.java index 4e68b985e..f38ab6074 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualImageRecategorization.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualImageRecategorization.java @@ -1,13 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped; +import java.time.OffsetDateTime; + import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; - @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @@ -15,11 +16,17 @@ public class ManualImageRecategorization extends BaseAnnotation { private String type; + @Builder - public ManualImageRecategorization(String annotationId, String fileId, - String user, AnnotationStatus status, - OffsetDateTime requestDate, OffsetDateTime processedDate, - OffsetDateTime softDeletedTime, String type) { + public ManualImageRecategorization(String annotationId, + String fileId, + String user, + AnnotationStatus status, + OffsetDateTime requestDate, + OffsetDateTime processedDate, + OffsetDateTime softDeletedTime, + String type) { + super(annotationId, fileId, user, status, requestDate, processedDate, softDeletedTime); this.type = type; } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualLegalBasisChange.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualLegalBasisChange.java index e4dbe80d4..7d3457069 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualLegalBasisChange.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualLegalBasisChange.java @@ -1,13 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped; +import java.time.OffsetDateTime; + import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; - @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @@ -17,15 +18,23 @@ public class ManualLegalBasisChange extends BaseAnnotation { private String value; private String legalBasis; + @Builder - public ManualLegalBasisChange(String annotationId, String fileId, - String user, AnnotationStatus status, - OffsetDateTime requestDate, OffsetDateTime processedDate, - OffsetDateTime softDeletedTime, String legalBasis, - String section, String value) { + public ManualLegalBasisChange(String annotationId, + String fileId, + String user, + AnnotationStatus status, + OffsetDateTime requestDate, + OffsetDateTime processedDate, + OffsetDateTime softDeletedTime, + String legalBasis, + String section, + String value) { + super(annotationId, fileId, user, status, requestDate, processedDate, softDeletedTime); this.legalBasis = legalBasis; this.section = section; this.value = value; } + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualRedactionEntry.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualRedactionEntry.java index 612700066..e60645e7e 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualRedactionEntry.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualRedactionEntry.java @@ -1,16 +1,17 @@ package com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.Rectangle; -import lombok.Builder; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; - import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.List; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.Rectangle; + +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + @Data @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @@ -29,16 +30,28 @@ public class ManualRedactionEntry extends BaseAnnotation { private String textAfter; private String sourceId; + @Builder - public ManualRedactionEntry(String annotationId, String fileId, - String user, AnnotationStatus status, - OffsetDateTime requestDate, OffsetDateTime processedDate, - OffsetDateTime softDeletedTime, String value, - String textBefore, String textAfter, - boolean rectangle, boolean addToDictionary, - boolean addToDossierDictionary, String legalBasis, - String section, String reason, String type, - List positions, String sourceId) { + public ManualRedactionEntry(String annotationId, + String fileId, + String user, + AnnotationStatus status, + OffsetDateTime requestDate, + OffsetDateTime processedDate, + OffsetDateTime softDeletedTime, + String value, + String textBefore, + String textAfter, + boolean rectangle, + boolean addToDictionary, + boolean addToDossierDictionary, + String legalBasis, + String section, + String reason, + String type, + List positions, + String sourceId) { + super(annotationId, fileId, user, status, requestDate, processedDate, softDeletedTime); this.textBefore = textBefore; this.textAfter = textAfter; diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualResizeRedaction.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualResizeRedaction.java index 7e60e1e69..d51b0b7e1 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualResizeRedaction.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/annotations/entitymapped/ManualResizeRedaction.java @@ -23,17 +23,25 @@ public class ManualResizeRedaction extends BaseAnnotation { private String textAfter; private Boolean updateDictionary; + @Builder - public ManualResizeRedaction(String annotationId, String fileId, - String user, AnnotationStatus status, - OffsetDateTime requestDate, OffsetDateTime processedDate, - OffsetDateTime softDeletedTime, String value, - String textBefore, String textAfter, + public ManualResizeRedaction(String annotationId, + String fileId, + String user, + AnnotationStatus status, + OffsetDateTime requestDate, + OffsetDateTime processedDate, + OffsetDateTime softDeletedTime, + String value, + String textBefore, + String textAfter, List positions) { + super(annotationId, fileId, user, status, requestDate, processedDate, softDeletedTime); this.textBefore = textBefore; this.textAfter = textAfter; this.value = value; this.positions = positions != null ? positions : new ArrayList<>(); } + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AddNotificationRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AddNotificationRequest.java index 28d6f607f..78d04dd17 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AddNotificationRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AddNotificationRequest.java @@ -1,13 +1,13 @@ package com.iqser.red.service.persistence.service.v1.api.model.audit; +import java.util.HashMap; +import java.util.Map; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.HashMap; -import java.util.Map; - @Data @Builder @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditModel.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditModel.java index 19c14e11b..8bff13bfd 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditModel.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditModel.java @@ -1,14 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.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; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - @Data @Builder @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditRequest.java index 648959759..cc08b080a 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditRequest.java @@ -1,13 +1,13 @@ package com.iqser.red.service.persistence.service.v1.api.model.audit; +import java.util.HashMap; +import java.util.Map; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.HashMap; -import java.util.Map; - @Data @NoArgsConstructor @AllArgsConstructor @@ -23,5 +23,4 @@ public class AuditRequest { @Builder.Default private Map details = new HashMap<>(); - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditSearchRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditSearchRequest.java index 18dae1942..486839b9e 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditSearchRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/audit/AuditSearchRequest.java @@ -1,12 +1,12 @@ package com.iqser.red.service.persistence.service.v1.api.model.audit; +import java.time.OffsetDateTime; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; - @Data @Builder @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/common/JSONPrimitive.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/common/JSONPrimitive.java index 16c6cd023..54214bab2 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/common/JSONPrimitive.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/common/JSONPrimitive.java @@ -11,7 +11,9 @@ public class JSONPrimitive { private final T value; + public static JSONPrimitive of(T value) { + return new JSONPrimitive<>(value); } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/common/Page.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/common/Page.java index e82fd7c53..5224752f5 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/common/Page.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/common/Page.java @@ -1,13 +1,13 @@ package com.iqser.red.service.persistence.service.v1.api.model.common; +import java.util.ArrayList; +import java.util.List; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.ArrayList; -import java.util.List; - @AllArgsConstructor @NoArgsConstructor @Data @@ -19,4 +19,5 @@ public class Page { private long totalHits; private int page; private int pageSize; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/CreateOrUpdateDossierTemplateRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/CreateOrUpdateDossierTemplateRequest.java index 487604081..c374d6966 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/CreateOrUpdateDossierTemplateRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/CreateOrUpdateDossierTemplateRequest.java @@ -1,14 +1,13 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - import java.time.OffsetDateTime; import java.util.HashSet; import java.util.Set; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; @Data @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierAttributeConfig.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierAttributeConfig.java index 810a6c1f1..5c63ad07c 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierAttributeConfig.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierAttributeConfig.java @@ -1,12 +1,12 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; - @Data @Builder @NoArgsConstructor @@ -20,5 +20,4 @@ public class DossierAttributeConfig { private DossierAttributeType type = DossierAttributeType.TEXT; private String dossierTemplateId; - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplate.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplate.java index 80dae4b9a..91eb6874d 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplate.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplate.java @@ -1,15 +1,15 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - import java.time.OffsetDateTime; import java.util.HashSet; import java.util.Set; +import com.fasterxml.jackson.annotation.JsonProperty; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder @@ -30,4 +30,5 @@ public class DossierTemplate { private boolean deleted; private Set downloadFileTypes = new HashSet<>(); private DossierTemplateStatus dossierTemplateStatus; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateDictionaryStats.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateDictionaryStats.java index ed9186690..702b6fa40 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateDictionaryStats.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateDictionaryStats.java @@ -1,14 +1,15 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; +import java.util.ArrayList; +import java.util.List; + import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionarySummary; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.ArrayList; -import java.util.List; - @Data @Builder @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateStats.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateStats.java index cff73c573..d05716ade 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateStats.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateStats.java @@ -1,15 +1,16 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; +import java.util.ArrayList; +import java.util.List; + import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.ArrayList; -import java.util.List; - @Data @Builder @NoArgsConstructor @@ -63,4 +64,5 @@ public class DossierTemplateStats { private int count; } + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateStatus.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateStatus.java index 488f41075..aee28ae3b 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateStatus.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DossierTemplateStatus.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; public enum DossierTemplateStatus { - INCOMPLETE, INACTIVE, ACTIVE + INCOMPLETE, + INACTIVE, + ACTIVE } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DownloadFileType.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DownloadFileType.java index dd69bcd37..25f578994 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DownloadFileType.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/DownloadFileType.java @@ -1,5 +1,10 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; public enum DownloadFileType { - ORIGINAL, PREVIEW, REDACTED, ANNOTATED, FLATTEN, DELTA_PREVIEW + ORIGINAL, + PREVIEW, + REDACTED, + ANNOTATED, + FLATTEN, + DELTA_PREVIEW } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/FileAttributesGeneralConfiguration.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/FileAttributesGeneralConfiguration.java index 1e3f1d12f..61641330f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/FileAttributesGeneralConfiguration.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/FileAttributesGeneralConfiguration.java @@ -15,5 +15,4 @@ public class FileAttributesGeneralConfiguration { private String filenameMappingColumnHeaderName; private String delimiter; - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ImportCsvResponse.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ImportCsvResponse.java index c45af1b14..f845832ca 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ImportCsvResponse.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ImportCsvResponse.java @@ -1,13 +1,13 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; +import java.util.HashSet; +import java.util.Set; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.HashSet; -import java.util.Set; - @Data @Builder @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplate.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplate.java index 9a1a700ca..72a18683f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplate.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplate.java @@ -1,12 +1,12 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; +import java.time.OffsetDateTime; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; - @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateDownload.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateDownload.java index 95449c089..6d555ec4b 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateDownload.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateDownload.java @@ -12,4 +12,5 @@ import lombok.NoArgsConstructor; public class ReportTemplateDownload { private byte[] file; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateUpdateRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateUpdateRequest.java index d9efaaa72..d4f764ecb 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateUpdateRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateUpdateRequest.java @@ -1,16 +1,22 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; -import lombok.*; - +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.NonNull; @Data @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PRIVATE) public class ReportTemplateUpdateRequest { + @NonNull private String fileName; private boolean multiFileReport; private boolean activeByDefault; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateUploadRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateUploadRequest.java index ea1dabbf1..a68d15b05 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateUploadRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/ReportTemplateUploadRequest.java @@ -1,6 +1,11 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate; -import lombok.*; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.NonNull; @Data @Builder @@ -17,4 +22,5 @@ public class ReportTemplateUploadRequest { private boolean multiFileReport; private boolean activeByDefault; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/DigitalSignatureType.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/DigitalSignatureType.java index 8972765b7..48e90baa8 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/DigitalSignatureType.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/DigitalSignatureType.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration; public enum DigitalSignatureType { - CERTIFICATE, KMS, HSM; + CERTIFICATE, + KMS, + HSM; } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/DigitalSignatureUpdateModel.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/DigitalSignatureUpdateModel.java index 6915076d2..8272a8f6c 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/DigitalSignatureUpdateModel.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/DigitalSignatureUpdateModel.java @@ -1,6 +1,10 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration; -import lombok.*; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; @Data @NoArgsConstructor(access = AccessLevel.PRIVATE) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/WatermarkOrientation.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/WatermarkOrientation.java index 59d79a209..b95b3de64 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/WatermarkOrientation.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/configuration/WatermarkOrientation.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration; public enum WatermarkOrientation { - VERTICAL, HORIZONTAL, DIAGONAL + VERTICAL, + HORIZONTAL, + DIAGONAL } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/CreateOrUpdateDossierRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/CreateOrUpdateDossierRequest.java index 7d3d0a567..f69164d1a 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/CreateOrUpdateDossierRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/CreateOrUpdateDossierRequest.java @@ -1,17 +1,18 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @NoArgsConstructor @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/CreateOrUpdateDossierStatusRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/CreateOrUpdateDossierStatusRequest.java index 1dd2c103b..70ae80a00 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/CreateOrUpdateDossierStatusRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/CreateOrUpdateDossierStatusRequest.java @@ -22,4 +22,5 @@ public class CreateOrUpdateDossierStatusRequest { private int rank; private String dossierTemplateId; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DeletedDossier.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DeletedDossier.java index ed9b4dcc3..cc2323abc 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DeletedDossier.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DeletedDossier.java @@ -1,10 +1,10 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier; +import java.time.OffsetDateTime; + import lombok.Builder; import lombok.Data; -import java.time.OffsetDateTime; - @Data @Builder public class DeletedDossier { diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/Dossier.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/Dossier.java index 245f6af44..62dfc7c76 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/Dossier.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/Dossier.java @@ -1,16 +1,17 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - import java.time.OffsetDateTime; import java.util.HashSet; import java.util.Set; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @Builder @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierAttribute.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierAttribute.java index a00b0c68b..2a411212a 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierAttribute.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierAttribute.java @@ -5,7 +5,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; - @Data @AllArgsConstructor @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierAttributeType.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierAttributeType.java index aca46c8e9..bd1b877aa 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierAttributeType.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierAttributeType.java @@ -1,5 +1,8 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier; public enum DossierAttributeType { - TEXT, NUMBER, DATE, IMAGE + TEXT, + NUMBER, + DATE, + IMAGE } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierChange.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierChange.java index 8d05eb136..9112aad66 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierChange.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierChange.java @@ -1,10 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; @Data @Builder -@EqualsAndHashCode(of="dossierId") +@EqualsAndHashCode(of = "dossierId") @NoArgsConstructor @AllArgsConstructor public class DossierChange { @@ -12,4 +16,5 @@ public class DossierChange { private String dossierId; private boolean dossierChanges; private boolean fileChanges; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java index 2dfa2888b..341eea58f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierStats.java @@ -1,17 +1,22 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; -import lombok.*; - import java.time.OffsetDateTime; import java.util.Map; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + @Data @Builder @NoArgsConstructor @AllArgsConstructor -@EqualsAndHashCode(of ={ "dossierId"}) +@EqualsAndHashCode(of = {"dossierId"}) public class DossierStats { private String dossierId; @@ -28,4 +33,5 @@ public class DossierStats { private Map fileCountPerWorkflowStatus; private OffsetDateTime lastFileUpdateDate; private OffsetDateTime fileManipulationDate; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierVisibility.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierVisibility.java index cbe81b2a3..14100676f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierVisibility.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/DossierVisibility.java @@ -2,5 +2,6 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.d public enum DossierVisibility { - PRIVATE, PUBLIC; + PRIVATE, + PUBLIC; } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/AddFileRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/AddFileRequest.java index 811211772..226d9e530 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/AddFileRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/AddFileRequest.java @@ -1,6 +1,11 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file; -import lombok.*; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.NonNull; @Data @Builder diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileAttributeConfig.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileAttributeConfig.java index cdac75ffe..408c250ec 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileAttributeConfig.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileAttributeConfig.java @@ -22,5 +22,4 @@ public class FileAttributeConfig { private FileAttributeType type = FileAttributeType.TEXT; private String dossierTemplateId; - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileAttributeType.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileAttributeType.java index 15ae6db0c..c76c291e7 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileAttributeType.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileAttributeType.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file; public enum FileAttributeType { - TEXT, NUMBER, DATE + TEXT, + NUMBER, + DATE } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileModel.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileModel.java index 80effc5ae..47e2bd34f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileModel.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/FileModel.java @@ -71,11 +71,16 @@ public class FileModel { private OffsetDateTime fileManipulationDate; private boolean hasHighlights; - public boolean isAnalysisRequired(){ + + public boolean isAnalysisRequired() { + return this.fullAnalysisRequired || this.reanalysisRequired; } + public boolean isSoftOrHardDeleted() { + return deleted != null || hardDeletedTime != null; } + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/ProcessingStatus.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/ProcessingStatus.java index 2c6121367..2b867f97b 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/ProcessingStatus.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/ProcessingStatus.java @@ -1,6 +1,24 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file; public enum ProcessingStatus { - ANALYSE, ERROR, FULLREPROCESS, IMAGE_ANALYZING, INDEXING, NER_ANALYZING, OCR_PROCESSING_QUEUED, OCR_PROCESSING, PROCESSED, PROCESSING, REPROCESS, SURROUNDING_TEXT_PROCESSING, UNPROCESSED, FULL_PROCESSING, PRE_PROCESSING_QUEUED, PRE_PROCESSING, PRE_PROCESSED, FIGURE_DETECTION_ANALYZING, TABLE_PARSING_ANALYZING + ANALYSE, + ERROR, + FULLREPROCESS, + IMAGE_ANALYZING, + INDEXING, + NER_ANALYZING, + OCR_PROCESSING_QUEUED, + OCR_PROCESSING, + PROCESSED, + PROCESSING, + REPROCESS, + SURROUNDING_TEXT_PROCESSING, + UNPROCESSED, + FULL_PROCESSING, + PRE_PROCESSING_QUEUED, + PRE_PROCESSING, + PRE_PROCESSED, + FIGURE_DETECTION_ANALYZING, + TABLE_PARSING_ANALYZING } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/WorkflowStatus.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/WorkflowStatus.java index 5d5f325d8..e0b6465fd 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/WorkflowStatus.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/dossier/file/WorkflowStatus.java @@ -1,5 +1,8 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file; public enum WorkflowStatus { - NEW, UNDER_REVIEW, UNDER_APPROVAL, APPROVED + NEW, + UNDER_REVIEW, + UNDER_APPROVAL, + APPROVED } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ExportDownloadRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ExportDownloadRequest.java index 8613d179d..c1367e0df 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ExportDownloadRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ExportDownloadRequest.java @@ -1,12 +1,18 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.importexport; -import lombok.*; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PRIVATE) public class ExportDownloadRequest { + private String userId; private String dossierTemplateId; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ExportFilename.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ExportFilename.java index f81702413..6c81961d8 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ExportFilename.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ExportFilename.java @@ -20,11 +20,12 @@ public enum ExportFilename { FALSE_POSITIVES("falsePositives"), FALSE_RECOMMENDATION("falseRecommendations"); - @Getter private final String filename; + ExportFilename(String filename) { + this.filename = filename; } } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ImportDossierTemplateRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ImportDossierTemplateRequest.java index ce8355e8d..31faf94d3 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ImportDossierTemplateRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ImportDossierTemplateRequest.java @@ -1,12 +1,18 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.importexport; -import lombok.*; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.NonNull; @Data @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PRIVATE) public class ImportDossierTemplateRequest { + @NonNull private byte[] archive; @@ -15,4 +21,5 @@ public class ImportDossierTemplateRequest { private String userId; private boolean updateExistingDossierTemplate; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ImportTemplateResult.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ImportTemplateResult.java index 01b571a7a..59410be92 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ImportTemplateResult.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/importexport/ImportTemplateResult.java @@ -1,5 +1,10 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.importexport; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplate; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.FileAttributesGeneralConfiguration; @@ -10,16 +15,12 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - @Data @Builder @NoArgsConstructor @@ -42,9 +43,9 @@ public class ImportTemplateResult { public List dossierStatusInfos = new ArrayList<>(); @Builder.Default - public List dossierAttributesConfigs = new ArrayList<>(); + public List dossierAttributesConfigs = new ArrayList<>(); - public FileAttributesGeneralConfiguration fileAttributesGeneralConfiguration; + public FileAttributesGeneralConfiguration fileAttributesGeneralConfiguration; @Builder.Default public List fileAttributesConfigs = new ArrayList<>(); @@ -55,10 +56,10 @@ public class ImportTemplateResult { public String ruleSet; @Builder.Default - public List reportTemplateUploadRequests = new ArrayList<>(); + public List reportTemplateUploadRequests = new ArrayList<>(); @Builder.Default - public List types= new ArrayList<>(); + public List types = new ArrayList<>(); @Builder.Default public Map> entries = new HashMap<>(); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasis.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasis.java index 81e8f256f..f31726c54 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasis.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasis.java @@ -15,5 +15,4 @@ public class LegalBasis { private String description; private String reason; - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasisMapping.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasisMapping.java index f72e0eea2..17d6f5266 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasisMapping.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/legalbasis/LegalBasisMapping.java @@ -1,11 +1,11 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis; -import lombok.Data; -import lombok.NoArgsConstructor; - import java.util.ArrayList; import java.util.List; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @NoArgsConstructor public class LegalBasisMapping { diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionaryEntry.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionaryEntry.java index f0c508f89..ee19c64e5 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionaryEntry.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionaryEntry.java @@ -1,12 +1,12 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type; +import java.io.Serializable; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.io.Serializable; - @Data @Builder @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionaryEntryType.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionaryEntryType.java index 6a54dce2f..e6686ff68 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionaryEntryType.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionaryEntryType.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type; public enum DictionaryEntryType { - ENTRY, FALSE_POSITIVE, FALSE_RECOMMENDATION + ENTRY, + FALSE_POSITIVE, + FALSE_RECOMMENDATION } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionarySummary.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionarySummary.java index b951bc4b8..cbbc4fc49 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionarySummary.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionarySummary.java @@ -10,8 +10,10 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class DictionarySummary { + private String id; // type id private String type; // type private String name; // label private long entriesCount; // entries size + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionarySummaryResponse.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionarySummaryResponse.java index 67accf8e7..e6554fcd9 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionarySummaryResponse.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/dossiertemplate/type/DictionarySummaryResponse.java @@ -10,6 +10,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class DictionarySummaryResponse { + private String dossierTemplateId; private String id; // type id private String type; // type diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadRequest.java index ec0227423..07060ed5f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadRequest.java @@ -1,10 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.download; -import lombok.*; - import java.util.ArrayList; import java.util.List; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadStatus.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadStatus.java index bc171efc6..941fe89ea 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadStatus.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadStatus.java @@ -1,15 +1,16 @@ package com.iqser.red.service.persistence.service.v1.api.model.download; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.List; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @Builder @AllArgsConstructor @@ -28,5 +29,4 @@ public class DownloadStatus { private List fileIds = new ArrayList<>(); private List downloadFileTypes = new ArrayList<>(); - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadStatusValue.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadStatusValue.java index a71ca8d98..d7569d8b4 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadStatusValue.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/DownloadStatusValue.java @@ -1,5 +1,8 @@ package com.iqser.red.service.persistence.service.v1.api.model.download; public enum DownloadStatusValue { - QUEUED, GENERATING, READY, FAILED + QUEUED, + GENERATING, + READY, + FAILED } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/SetDownloadedRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/SetDownloadedRequest.java index d99baedd2..0a0e36226 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/SetDownloadedRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/download/SetDownloadedRequest.java @@ -1,6 +1,10 @@ package com.iqser.red.service.persistence.service.v1.api.model.download; -import lombok.*; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder @@ -10,4 +14,5 @@ public class SetDownloadedRequest { private String userId; private String storageId; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/LicenseReport.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/LicenseReport.java index 547f09af6..3ff6f2e3f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/LicenseReport.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/LicenseReport.java @@ -1,14 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.license; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.Instant; -import java.util.ArrayList; -import java.util.List; - @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/LicenseReportRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/LicenseReportRequest.java index 6c7bd557f..311ae964b 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/LicenseReportRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/LicenseReportRequest.java @@ -1,13 +1,17 @@ package com.iqser.red.service.persistence.service.v1.api.model.license; -import lombok.*; - import java.time.Instant; import java.time.Year; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + @Data @Builder @AllArgsConstructor @@ -27,11 +31,7 @@ public class LicenseReportRequest { public Instant getStartDate() { if (startDate == null) { - startDate = Year.of(getEndDate().atOffset(ZoneOffset.UTC).getYear()) - .atMonth(1) - .atDay(1) - .atStartOfDay() - .toInstant(ZoneOffset.UTC); + startDate = Year.of(getEndDate().atOffset(ZoneOffset.UTC).getYear()).atMonth(1).atDay(1).atStartOfDay().toInstant(ZoneOffset.UTC); } return startDate; } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/ReportData.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/ReportData.java index db697af60..ff46bdd5d 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/ReportData.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/license/ReportData.java @@ -1,14 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.license; +import java.time.Instant; + +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.Instant; - -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; - @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/EmailNotificationType.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/EmailNotificationType.java index 7875f1b2e..3a9348665 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/EmailNotificationType.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/EmailNotificationType.java @@ -1,5 +1,7 @@ package com.iqser.red.service.persistence.service.v1.api.model.notification; public enum EmailNotificationType { - DAILY, DAILY_SUMMARY, WEEKLY_SUMMARY + DAILY, + DAILY_SUMMARY, + WEEKLY_SUMMARY } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/Notification.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/Notification.java index 0220c2dd9..7b31c36bc 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/Notification.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/Notification.java @@ -1,14 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.model.notification; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.time.OffsetDateTime; -import java.util.HashMap; -import java.util.Map; - @Data @Builder @AllArgsConstructor @@ -25,4 +25,5 @@ public class Notification { private OffsetDateTime softDeleted; private String notificationDetails; private Map target = new HashMap<>(); + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/NotificationPreferences.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/NotificationPreferences.java index 7410df918..78a7ca4ef 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/NotificationPreferences.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/NotificationPreferences.java @@ -1,13 +1,13 @@ package com.iqser.red.service.persistence.service.v1.api.model.notification; +import java.util.ArrayList; +import java.util.List; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.ArrayList; -import java.util.List; - @Data @Builder @NoArgsConstructor @@ -21,4 +21,5 @@ public class NotificationPreferences { private List emailNotifications = new ArrayList<>(); @Builder.Default private List inAppNotifications = new ArrayList<>(); + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/NotificationType.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/NotificationType.java index 3c44bb8c1..dd0171682 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/NotificationType.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/notification/NotificationType.java @@ -2,10 +2,18 @@ package com.iqser.red.service.persistence.service.v1.api.model.notification; public enum NotificationType { - ASSIGN_REVIEWER, ASSIGN_APPROVER, UNASSIGNED_FROM_FILE, - DOCUMENT_APPROVED, DOSSIER_OWNER_SET, DOSSIER_OWNER_REMOVED, - USER_BECOMES_DOSSIER_MEMBER, USER_REMOVED_AS_DOSSIER_MEMBER, - USER_PROMOTED_TO_APPROVER, USER_DEGRADED_TO_REVIEWER, - DOSSIER_OWNER_DELETED, DOWNLOAD_READY, DOSSIER_DELETED + ASSIGN_REVIEWER, + ASSIGN_APPROVER, + UNASSIGNED_FROM_FILE, + DOCUMENT_APPROVED, + DOSSIER_OWNER_SET, + DOSSIER_OWNER_REMOVED, + USER_BECOMES_DOSSIER_MEMBER, + USER_REMOVED_AS_DOSSIER_MEMBER, + USER_PROMOTED_TO_APPROVER, + USER_DEGRADED_TO_REVIEWER, + DOSSIER_OWNER_DELETED, + DOWNLOAD_READY, + DOSSIER_DELETED } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/redactionlog/FilteredRedactionLogRequest.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/redactionlog/FilteredRedactionLogRequest.java index 10ecabfe8..01bf8fde8 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/redactionlog/FilteredRedactionLogRequest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/model/redactionlog/FilteredRedactionLogRequest.java @@ -18,4 +18,5 @@ public class FilteredRedactionLogRequest { private boolean withManualRedactions; private boolean includeFalsePositives; private OffsetDateTime specifiedDate; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ApplicationConfigurationResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ApplicationConfigurationResource.java index 97d662042..a046e8029 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ApplicationConfigurationResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ApplicationConfigurationResource.java @@ -1,6 +1,5 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.ApplicationConfig; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -8,16 +7,21 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.ApplicationConfig; + @ResponseStatus(value = HttpStatus.OK) public interface ApplicationConfigurationResource { String APPLICATION_CONFIG_PATH = "/app-config"; + @ResponseStatus(value = HttpStatus.CREATED) - @PostMapping(value = APPLICATION_CONFIG_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = APPLICATION_CONFIG_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) ApplicationConfig createOrUpdateAppConfig(@RequestBody ApplicationConfig appConfig); + @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = APPLICATION_CONFIG_PATH, produces = MediaType.APPLICATION_JSON_VALUE) ApplicationConfig getCurrentApplicationConfig(); + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/AuditResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/AuditResource.java index c4e129696..8f2508c5e 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/AuditResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/AuditResource.java @@ -1,20 +1,26 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +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.model.audit.AuditModel; import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditRequest; import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditSearchRequest; import com.iqser.red.service.persistence.service.v1.api.model.audit.CategoryModel; import com.iqser.red.service.persistence.service.v1.api.model.common.Page; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - -import java.util.List; public interface AuditResource { String PATH = "/audit"; + /** * @param auditRequest - details to audit * @throws org.springframework.web.server.ResponseStatusException - 404 - Not Found in case the object doesn't exist @@ -24,11 +30,13 @@ public interface AuditResource { @PostMapping(value = PATH, consumes = MediaType.APPLICATION_JSON_VALUE) void audit(@RequestBody AuditRequest auditRequest); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @PostMapping(value = PATH + "/search", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) Page search(@RequestBody AuditSearchRequest auditSearchRequest); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = PATH + "/categories", produces = MediaType.APPLICATION_JSON_VALUE) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DictionaryResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DictionaryResource.java index 3b7537029..2e4fae6c9 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DictionaryResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DictionaryResource.java @@ -1,14 +1,22 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +import java.util.List; + +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntry; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - -import java.util.List; @ResponseStatus(value = HttpStatus.OK) public interface DictionaryResource { @@ -52,8 +60,7 @@ public interface DictionaryResource { @ResponseStatus(HttpStatus.NO_CONTENT) @PostMapping(value = TYPE_PATH + TYPE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void updateTypeValue(@PathVariable(TYPE_PARAMETER_NAME) String typeId, - @RequestBody Type typeValue); + void updateTypeValue(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestBody Type typeValue); @ResponseStatus(HttpStatus.CREATED) @@ -70,13 +77,16 @@ public interface DictionaryResource { List getAllTypesForDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestParam(value = INCLUDE_DELETED_PARAMETER_NAME, required = false, defaultValue = "false") boolean includeDeleted); + @GetMapping(value = TYPE_PATH + DOSSIER_PATH + DOSSIER_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) List getAllTypesForDossier(@PathVariable(DOSSIER_ID_PARAMETER_NAME) String dossierId, @RequestParam(value = INCLUDE_DELETED_PARAMETER_NAME, required = false, defaultValue = "false") boolean includeDeleted); + @GetMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) Type getDictionaryForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestParam(value = FROM_VERSION_PARAM, required = false) Long fromVersion); + @GetMapping(value = DICTIONARY_PATH + TYPE_PATH_VARIABLE + ENTRIES_PATH, produces = MediaType.APPLICATION_JSON_VALUE) List getEntriesForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestParam(value = FROM_VERSION_PARAM, required = false) Long fromVersion, @@ -86,6 +96,7 @@ public interface DictionaryResource { @GetMapping(value = VERSION_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE) long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); + @GetMapping(value = VERSION_PATH + DOSSIER_PATH + DOSSIER_ID_PATH_VARIABLE) long getVersionForDossier(@PathVariable(DOSSIER_ID_PARAMETER_NAME) String dossierId); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesConfigResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesConfigResource.java index c7b27a1f3..7a2e4a225 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesConfigResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesConfigResource.java @@ -1,11 +1,19 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig; +import java.util.List; + import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; -import java.util.List; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig; public interface DossierAttributesConfigResource { @@ -17,11 +25,12 @@ public interface DossierAttributesConfigResource { String DOSSIER_ATTRIBUTE_ID = "dossierAttributeId"; String DOSSIER_ATTRIBUTE_ID_PATH_VARIABLE = "/{" + DOSSIER_ATTRIBUTE_ID + "}"; + @ResponseBody @ResponseStatus(HttpStatus.OK) @PostMapping(value = DOSSIER_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - DossierAttributeConfig addOrUpdateDossierAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @RequestBody DossierAttributeConfig dossierAttributeConfig); + DossierAttributeConfig addOrUpdateDossierAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributeConfig dossierAttributeConfig); + @ResponseBody @ResponseStatus(HttpStatus.OK) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesResource.java index 9bc8cd486..24b8a5b76 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierAttributesResource.java @@ -1,11 +1,16 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - import java.util.List; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute; + public interface DossierAttributesResource { String REST_PATH = "/dossierAttributes"; @@ -22,12 +27,15 @@ public interface DossierAttributesResource { @PostMapping(value = REST_PATH + SET_PATH + DOSSIER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) List setDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody List dossierAttributes); + @PostMapping(value = REST_PATH + UPDATE_PATH + DOSSIER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) DossierAttribute addOrUpdateDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody DossierAttribute dossierAttribute); + @GetMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) List getDossierAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId); + @DeleteMapping(value = REST_PATH + SET_PATH + DOSSIER_ID_PATH_PARAM + DOSSIER_ATTRIBUTE_ID_PATH_PARAM) void deleteDossierAttribute(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(DOSSIER_ATTRIBUTE_ID_PARAM) String dossierAttributeId); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java index 3590b74a9..8eaa94c3c 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierResource.java @@ -45,24 +45,30 @@ public interface DossierResource { String CHANGES_PATH = "/changes"; + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @PostMapping(value = REST_PATH + CHANGES_PATH, produces = MediaType.APPLICATION_JSON_VALUE) Set changesSince(@RequestBody JSONPrimitive since); + @PostMapping(value = REST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) Dossier addDossier(@RequestBody CreateOrUpdateDossierRequest dossierRequest); + @PostMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) Dossier updateDossier(@RequestBody CreateOrUpdateDossierRequest dossierRequest, @PathVariable(DOSSIER_ID_PARAM) String dossierId); + @DeleteMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM) void delete(@PathVariable(DOSSIER_ID_PARAM) String dossierId); + @GetMapping(value = REST_PATH, produces = MediaType.APPLICATION_JSON_VALUE) List getAllDossiers(@RequestParam(name = INCLUDE_ARCHIVED_PARAM, defaultValue = "false", required = false) boolean includeArchived, @RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted); + @GetMapping(value = REST_PATH + DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) List getAllDossiersForDossierTemplateId(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId, @RequestParam(name = INCLUDE_ARCHIVED_PARAM, defaultValue = "false", required = false) boolean includeArchived, @@ -72,29 +78,37 @@ public interface DossierResource { @GetMapping(value = REST_PATH + INFO_PATH, produces = MediaType.APPLICATION_JSON_VALUE) DossierInformation getDossierInformation(@RequestBody List filteredDossierIds); + @GetMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) Dossier getDossierById(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestParam(name = INCLUDE_ARCHIVED_PARAM, defaultValue = "false", required = false) boolean includeArchived, @RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted); + @GetMapping(value = ARCHIVE_DOSSIERS_PATH, produces = MediaType.APPLICATION_JSON_VALUE) List getArchivedDossiers(); + @GetMapping(value = ARCHIVE_DOSSIERS_PATH + DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) List getArchivedDossiersForDossierTemplateId(@PathVariable(DOSSIER_TEMPLATE_ID_PARAM) String dossierTemplateId); + @GetMapping(value = DELETED_DOSSIERS_PATH, produces = MediaType.APPLICATION_JSON_VALUE) List getSoftDeletedDossiers(); + @DeleteMapping(value = DELETED_DOSSIERS_PATH + HARD_DELETE_PATH) void hardDeleteDossiers(@RequestBody Set dossierIds); + @PostMapping(value = DELETED_DOSSIERS_PATH + UNDELETE_PATH) void undeleteDossiers(@RequestBody Set dossierIds); + @PostMapping(value = ARCHIVE_DOSSIERS_PATH + ARCHIVE_PATH) void archiveDossiers(@RequestBody Set dossierIds); + @PostMapping(value = ARCHIVE_DOSSIERS_PATH + UNARCHIVE_PATH) void unarchiveDossiers(@RequestBody Set dossierIds); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatsResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatsResource.java index 5ef900fa8..ab4d3de93 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatsResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatsResource.java @@ -18,11 +18,14 @@ public interface DossierStatsResource { String DOSSIER_ID_PARAM = "dossierId"; String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}"; + @Deprecated @GetMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) DossierStats getDossierStats(@PathVariable(DOSSIER_ID_PARAM) String dossierId); + @Deprecated @PostMapping(value = REST_PATH, produces = MediaType.APPLICATION_JSON_VALUE) List getDossierStats(@RequestBody Set dossierIds); + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatusResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatusResource.java index 249e48e2d..2f5d94c7b 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatusResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierStatusResource.java @@ -1,12 +1,20 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +import java.util.List; + +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - -import java.util.List; public interface DossierStatusResource { @@ -27,6 +35,7 @@ public interface DossierStatusResource { @PostMapping(value = DOSSIER_STATUS_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) DossierStatusInfo createOrUpdateDossierStatus(@RequestBody CreateOrUpdateDossierStatusRequest dossierStatusRequest); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = DOSSIER_STATUS_PATH + DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) @@ -38,11 +47,13 @@ public interface DossierStatusResource { @PostMapping(value = DOSSIER_STATUS_PATH + DOSSIER_TEMPLATE_PATH, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) List getAllDossierStatuses(@RequestBody List dossierTemplateId); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = DOSSIER_STATUS_PATH + DOSSIER_STATUS_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) DossierStatusInfo getDossierStatus(@PathVariable(DOSSIER_STATUS_ID) String dossierStatusId); + @ResponseBody @ResponseStatus(value = HttpStatus.NO_CONTENT) @DeleteMapping(value = DOSSIER_STATUS_PATH + DOSSIER_STATUS_ID_PATH_VARIABLE) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierTemplateResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierTemplateResource.java index 7852a5cd0..0c587ef70 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierTemplateResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierTemplateResource.java @@ -1,17 +1,24 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +import java.util.List; + +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CloneDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplate; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.importexport.ExportDownloadRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.importexport.ImportDossierTemplateRequest; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.importexport.ImportTemplateResult; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - -import java.util.List; public interface DossierTemplateResource { @@ -22,42 +29,49 @@ public interface DossierTemplateResource { String USER_ID_PARAM = "userId"; - String CLONE_PATH = "/clone"; - String EXPORT_PATH = "/export"; - String IMPORT_PATH = "/import"; + String CLONE_PATH = "/clone"; + String EXPORT_PATH = "/export"; + String IMPORT_PATH = "/import"; + @ResponseBody @ResponseStatus(HttpStatus.ACCEPTED) @PostMapping(value = DOSSIER_TEMPLATE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) DossierTemplate createOrUpdateDossierTemplate(@RequestBody CreateOrUpdateDossierTemplateRequest dossierTemplate); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = DOSSIER_TEMPLATE_PATH, produces = MediaType.APPLICATION_JSON_VALUE) List getAllDossierTemplates(); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) DossierTemplate getDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); + @ResponseBody @ResponseStatus(value = HttpStatus.NO_CONTENT) @DeleteMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE) void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(USER_ID_PARAM) String deletingUserId); + @ResponseBody @ResponseStatus(HttpStatus.OK) - @PostMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE+CLONE_PATH, produces = MediaType.APPLICATION_JSON_VALUE) - DossierTemplate cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest); + @PostMapping(value = DOSSIER_TEMPLATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + CLONE_PATH, produces = MediaType.APPLICATION_JSON_VALUE) + DossierTemplate cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest); + @PostMapping(value = DOSSIER_TEMPLATE_PATH + EXPORT_PATH + "/prepare", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) JSONPrimitive prepareExportDownload(@RequestBody ExportDownloadRequest request); + @PostMapping(value = DOSSIER_TEMPLATE_PATH + EXPORT_PATH + "/create", consumes = MediaType.APPLICATION_JSON_VALUE) void createExportDownload(@RequestParam String userId, @RequestParam String storageId); + @ResponseBody @PostMapping(value = DOSSIER_TEMPLATE_PATH + IMPORT_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) DossierTemplate importDossierTemplate(@RequestBody ImportDossierTemplateRequest request); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierTemplateStatsResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierTemplateStatsResource.java index 81642b6ac..760eca233 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierTemplateStatsResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DossierTemplateStatsResource.java @@ -1,14 +1,15 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateDictionaryStats; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStats; +import java.util.List; +import java.util.Set; + import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import java.util.List; -import java.util.Set; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateDictionaryStats; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStats; public interface DossierTemplateStatsResource { @@ -19,12 +20,15 @@ public interface DossierTemplateStatsResource { String DOSSIER_TEMPLATE_ID = "dossierTemplateId"; String DOSSIER_TEMPLATE_ID_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_ID + "}"; + @PostMapping(value = REST_PATH + DICTIONARY_PATH, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) List getDossierTemplateDictionaryStats(@RequestBody Set dossierTemplateIds); + @PostMapping(value = REST_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) DossierTemplateStats getDossierTemplateStats(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); + @PostMapping(value = REST_PATH, produces = MediaType.APPLICATION_JSON_VALUE) List getDossierTemplateStats(); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DownloadResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DownloadResource.java index 4d308ee51..3821282e4 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DownloadResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/DownloadResource.java @@ -24,12 +24,16 @@ public interface DownloadResource { @PostMapping(value = REST_PATH + "/prepare", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) JSONPrimitive prepareDownload(@RequestBody DownloadRequest request); + @GetMapping(value = REST_PATH + "/status/{" + USER_ID + "}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) List getDownloadStatus(@PathVariable(USER_ID) String userId); + @PostMapping(value = REST_PATH + "/setDownloaded", consumes = MediaType.APPLICATION_JSON_VALUE) void setDownloaded(@RequestBody JSONPrimitive setDownloadedRequest); + @PostMapping(value = REST_PATH + "/delete", consumes = MediaType.APPLICATION_JSON_VALUE) void deleteDownloadStatus(@RequestBody JSONPrimitive setDownloadedRequest); + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileAttributesConfigResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileAttributesConfigResource.java index 4e8adbf92..43566d9e6 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileAttributesConfigResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileAttributesConfigResource.java @@ -1,12 +1,20 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +import java.util.List; + +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +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.model.dossiertemplate.FileAttributesGeneralConfiguration; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeConfig; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - -import java.util.List; public interface FileAttributesConfigResource { @@ -22,28 +30,30 @@ public interface FileAttributesConfigResource { String FILE_ATTRIBUTE_ID = "fileAttributeId"; String FILE_ATTRIBUTE_ID_PATH_VARIABLE = "/{" + FILE_ATTRIBUTE_ID + "}"; + @ResponseBody @ResponseStatus(HttpStatus.OK) @PutMapping(value = FILE_ATTRIBUTES_PATH + BASE_CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) FileAttributesGeneralConfiguration setFileAttributesGeneralConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributesGeneralConfiguration fileAttributesConfig); + @ResponseBody @ResponseStatus(HttpStatus.OK) @GetMapping(value = FILE_ATTRIBUTES_PATH + BASE_CONFIG_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) FileAttributesGeneralConfiguration getFileAttributesGeneralConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); + @ResponseBody @ResponseStatus(HttpStatus.OK) @PostMapping(value = FILE_ATTRIBUTES_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - FileAttributeConfig addOrUpdateFileAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @RequestBody FileAttributeConfig fileAttributeConfig); + FileAttributeConfig addOrUpdateFileAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttributeConfig); + @ResponseBody @ResponseStatus(HttpStatus.OK) @PutMapping(value = FILE_ATTRIBUTES_PATH + FILE_ATTRIBUTE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - List setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @RequestBody List fileAttributesConfig); + List setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributesConfig); @ResponseStatus(HttpStatus.NO_CONTENT) @@ -61,5 +71,4 @@ public interface FileAttributesConfigResource { @GetMapping(value = FILE_ATTRIBUTES_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) List getFileAttributeConfigs(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileAttributesResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileAttributesResource.java index 57d2e967b..d2d04ed38 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileAttributesResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileAttributesResource.java @@ -1,13 +1,14 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvRequest; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvResponse; +import java.util.Map; + import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import java.util.Map; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvRequest; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvResponse; public interface FileAttributesResource { @@ -23,12 +24,10 @@ public interface FileAttributesResource { @PostMapping(value = REST_PATH + CSV_IMPORT_PATH + DOSSIER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - ImportCsvResponse importCsv(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @RequestBody ImportCsvRequest importCsvRequest); + ImportCsvResponse importCsv(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody ImportCsvRequest importCsvRequest); @PostMapping(value = REST_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 Map fileAttributes); + void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Map fileAttributes); } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileStatusProcessingUpdateResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileStatusProcessingUpdateResource.java index cbe0ec966..fd02c144b 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileStatusProcessingUpdateResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/FileStatusProcessingUpdateResource.java @@ -22,7 +22,8 @@ public interface FileStatusProcessingUpdateResource { @ResponseStatus(value = HttpStatus.OK) @PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/preprocessing-successful", consumes = MediaType.APPLICATION_JSON_VALUE) - void preprocessingSuccessful(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + void preprocessingSuccessful(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody UntouchedDocumentResponse untouchedDocumentResponse); @@ -45,14 +46,17 @@ public interface FileStatusProcessingUpdateResource { @PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/analysis-failed") void analysisFailed(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId); + @ResponseStatus(value = HttpStatus.OK) @PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/pre-processing") void preProcessing(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId); + @ResponseStatus(value = HttpStatus.OK) @PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/ocr-processing") void ocrProcessing(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId); + @ResponseStatus(value = HttpStatus.OK) @PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/ocr-failed") void ocrFailed(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LegalBasisMappingResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LegalBasisMappingResource.java index 2bd36c7f4..a2474e074 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LegalBasisMappingResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LegalBasisMappingResource.java @@ -1,11 +1,18 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; +import java.util.List; + import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; -import java.util.List; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; public interface LegalBasisMappingResource { @@ -19,21 +26,24 @@ public interface LegalBasisMappingResource { @PostMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + DELETE_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames); + @PutMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) 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) void setLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisMapping); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) List getLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); + @ResponseStatus(HttpStatus.OK) @GetMapping(value = LEGAL_BASIS_PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + VERSION_PATH) long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LicenseReportResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LicenseReportResource.java index ee488194b..c3b19a6b7 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LicenseReportResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/LicenseReportResource.java @@ -1,10 +1,15 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReport; import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReportRequest; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; public interface LicenseReportResource { diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ManualRedactionResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ManualRedactionResource.java index d330a8315..a25f4af13 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ManualRedactionResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ManualRedactionResource.java @@ -49,37 +49,45 @@ public interface ManualRedactionResource { @PostMapping(value = MANUAL_REDACTION_REST_PATH + "/add" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - List addAddRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + List addAddRedaction(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List addRedactionRequests); @PostMapping(value = MANUAL_REDACTION_REST_PATH + "/remove" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - List addRemoveRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + List addRemoveRedaction(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List removeRedactionRequest); @PostMapping(value = MANUAL_REDACTION_REST_PATH + "/force" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - List addForceRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + List addForceRedaction(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List forceRedactionRequests); @PostMapping(value = MANUAL_REDACTION_REST_PATH + "/legalBasis" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - List addLegalBasisChange(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + List addLegalBasisChange(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List legalBasisChangeRequests); @PostMapping(value = MANUAL_REDACTION_REST_PATH + "/recategorize" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - List addImageRecategorization(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + List addImageRecategorization(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List imageRecategorizationRequests); @PostMapping(value = MANUAL_REDACTION_REST_PATH + "/comment" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + ANNOTATION_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - Comment addComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, + Comment addComment(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, + @PathVariable(ANNOTATION_ID) String annotationId, @RequestBody CommentRequest comment); @PostMapping(value = MANUAL_REDACTION_REST_PATH + "/resize" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) - List addResizeRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + List addResizeRedaction(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List resizeRedactionRequests); @@ -156,7 +164,8 @@ public interface ManualRedactionResource { @PostMapping(value = MANUAL_REDACTION_REST_PATH + "/status/recategorize" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void updateImageRecategorizationStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + void updateImageRecategorizationStatus(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody UpdateRedactionRequest updateStatusRequest); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/NotificationPreferencesResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/NotificationPreferencesResource.java index 44831c77f..06491fcf1 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/NotificationPreferencesResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/NotificationPreferencesResource.java @@ -1,9 +1,15 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.notification.NotificationPreferences; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +import com.iqser.red.service.persistence.service.v1.api.model.notification.NotificationPreferences; public interface NotificationPreferencesResource { @@ -16,10 +22,13 @@ public interface NotificationPreferencesResource { @PostMapping(value = REST_PATH + USER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE) void setNotificationPreferences(@PathVariable(USER_ID_PARAM) String userId, @RequestBody NotificationPreferences notificationRequest); + @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = REST_PATH + USER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) NotificationPreferences getNotificationPreferences(@PathVariable(USER_ID_PARAM) String userId); + @DeleteMapping(value = REST_PATH + USER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE) void deleteNotificationPreferences(@PathVariable(USER_ID_PARAM) String userId); + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/NotificationResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/NotificationResource.java index defeb7730..8908cf013 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/NotificationResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/NotificationResource.java @@ -1,14 +1,22 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +import java.time.OffsetDateTime; +import java.util.List; + +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + import com.iqser.red.service.persistence.service.v1.api.model.audit.AddNotificationRequest; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.notification.Notification; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - -import java.time.OffsetDateTime; -import java.util.List; @ResponseStatus(value = HttpStatus.OK) public interface NotificationResource { @@ -25,24 +33,23 @@ public interface NotificationResource { String SET_SEEN_PARAM = "setSeen"; String SET_READ_PARAM = "setRead"; + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @PostMapping(value = NOTIFICATION_PATH + CHANGES_PATH + USER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) - JSONPrimitive hasNewNotificationsSince(@PathVariable(USER_ID_PARAM) String userId, - @RequestBody JSONPrimitive since); + JSONPrimitive hasNewNotificationsSince(@PathVariable(USER_ID_PARAM) String userId, @RequestBody JSONPrimitive since); + @PostMapping(value = NOTIFICATION_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) void addNotification(@RequestBody AddNotificationRequest addNotificationRequest); @PostMapping(value = NOTIFICATION_PATH + TOGGLE_SEEN_PATH + USER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE) - void toggleSeen(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List notificationIds, - @RequestParam(SET_SEEN_PARAM) boolean setSeen); + void toggleSeen(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List notificationIds, @RequestParam(SET_SEEN_PARAM) boolean setSeen); @PostMapping(value = NOTIFICATION_PATH + TOGGLE_READ_PATH + USER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE) - void toggleRead(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List notificationIds, - @RequestParam(SET_READ_PARAM) boolean setRead); + void toggleRead(@PathVariable(USER_ID_PARAM) String userId, @RequestBody List notificationIds, @RequestParam(SET_READ_PARAM) boolean setRead); @DeleteMapping(value = NOTIFICATION_PATH + USER_ID_PATH_PARAM, consumes = MediaType.APPLICATION_JSON_VALUE) @@ -52,7 +59,6 @@ public interface NotificationResource { @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = NOTIFICATION_PATH + USER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) - List getNotifications(@PathVariable(USER_ID_PARAM) String userId, - @RequestParam(INCLUDE_SEEN_PARAM) boolean includeSeen); + List getNotifications(@PathVariable(USER_ID_PARAM) String userId, @RequestParam(INCLUDE_SEEN_PARAM) boolean includeSeen); } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ReanalysisResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ReanalysisResource.java index 92ef04941..8e8c3a188 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ReanalysisResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ReanalysisResource.java @@ -35,7 +35,8 @@ public interface ReanalysisResource { @PostMapping(value = REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + BULK_REST_PATH) - void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody Set fileIds, + void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @RequestBody Set fileIds, @RequestParam(value = "force", required = false, defaultValue = FALSE) boolean force); @@ -44,7 +45,8 @@ public interface ReanalysisResource { @PostMapping(value = OCR_REANALYZE_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_PARAM) - void ocrFile(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID_PARAM) String fileId, + void ocrFile(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID_PARAM) String fileId, @RequestParam(value = "force", required = false, defaultValue = FALSE) boolean force); @@ -54,7 +56,8 @@ public interface ReanalysisResource { @PostMapping(value = REINDEX_PATH) void reindex(@RequestParam(value = DOSSIER_ID_PARAM, required = false) String dossierId, - @RequestParam(value = "dropIndex", required = false, defaultValue = FALSE) boolean dropIndex, @RequestBody Set fileIds); + @RequestParam(value = "dropIndex", required = false, defaultValue = FALSE) boolean dropIndex, + @RequestBody Set fileIds); @PostMapping(value = IMPORT_REDACTIONS_PATH, consumes = MediaType.APPLICATION_JSON_VALUE) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/RedactionLogResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/RedactionLogResource.java index d82ec5cab..14b2b350a 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/RedactionLogResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/RedactionLogResource.java @@ -29,16 +29,20 @@ public interface RedactionLogResource { @GetMapping(value = REDACTION_LOG_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) - RedactionLog getRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + RedactionLog getRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestParam(value = "excludedType", required = false) List excludedTypes, @RequestParam(value = "withManualRedactions", required = false, defaultValue = "true") boolean withManualRedactions, @RequestParam(value = "includeFalsePositives", required = false, defaultValue = "false") boolean includeFalsePositives); + @GetMapping(value = SECTION_GRID_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) SectionGrid getSectionGrid(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId); + @PostMapping(value = REDACTION_LOG_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE + "/filtered", produces = MediaType.APPLICATION_JSON_VALUE) - RedactionLog getFilteredRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + RedactionLog getFilteredRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody FilteredRedactionLogRequest filteredRedactionLogRequest); } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ReportTemplateResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ReportTemplateResource.java index de357551a..8a0401e47 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ReportTemplateResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ReportTemplateResource.java @@ -1,13 +1,19 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +import java.util.List; + +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; + import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateDownload; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - -import java.util.List; public interface ReportTemplateResource { @@ -23,24 +29,29 @@ public interface ReportTemplateResource { String UPDATE_PATH = "update"; - @PostMapping(value = REPORT_TEMPLATE_UPLOAD_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = - MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = REPORT_TEMPLATE_UPLOAD_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) ReportTemplate uploadTemplate(@RequestBody ReportTemplateUploadRequest reportTemplateUploadRequest); + @GetMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) List getAvailableReportTemplates(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId); + @GetMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) ReportTemplate getReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId); + @GetMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOWNLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) ReportTemplateDownload downloadReportTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId); + @DeleteMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE) void deleteTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId); + @PutMapping(value = REPORT_TEMPLATE_UPLOAD_PATH + UPDATE_PATH + DOSSIER_TEMPLATE_ID_PATH_VARIABLE + TEMPLATE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId, + void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, + @PathVariable(TEMPLATE_ID) String templateId, @RequestBody ReportTemplateUpdateRequest reportTemplateUpdateRequest); } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/RulesResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/RulesResource.java index 790fc80f5..b45f7d0ec 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/RulesResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/RulesResource.java @@ -1,9 +1,15 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +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.model.common.JSONPrimitive; public interface RulesResource { @@ -13,15 +19,18 @@ public interface RulesResource { String DOSSIER_TEMPLATE_PATH_VARIABLE = "/{" + DOSSIER_TEMPLATE_PARAMETER_NAME + "}"; String VERSION_PATH = "/version"; + @ResponseStatus(HttpStatus.NO_CONTENT) @PostMapping(value = PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) void setRules(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody JSONPrimitive rules); + @ResponseBody @ResponseStatus(HttpStatus.OK) @GetMapping(value = PATH + DOSSIER_TEMPLATE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) JSONPrimitive getRules(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); + @ResponseStatus(HttpStatus.OK) @GetMapping(value = PATH + DOSSIER_TEMPLATE_PATH_VARIABLE + VERSION_PATH) long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/SMTPConfigurationResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/SMTPConfigurationResource.java index 9839a0f59..842602eb9 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/SMTPConfigurationResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/SMTPConfigurationResource.java @@ -1,10 +1,16 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.SMTPConfiguration; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +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.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.SMTPConfiguration; public interface SMTPConfigurationResource { @@ -16,6 +22,7 @@ public interface SMTPConfigurationResource { String MASK_PASSWORD = "maskPassword"; + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = SMTP_PATH, produces = MediaType.APPLICATION_JSON_VALUE) @@ -36,5 +43,4 @@ public interface SMTPConfigurationResource { @DeleteMapping(value = SMTP_PATH) void clearSMTPConfiguration(); - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java index 6f0fa341f..205a9485e 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/StatusResource.java @@ -1,15 +1,22 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - import java.time.OffsetDateTime; import java.util.List; import java.util.Set; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; + public interface StatusResource { String STATUS_PATH = "/status"; @@ -36,6 +43,7 @@ public interface StatusResource { @PostMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + CHANGES_PATH, produces = MediaType.APPLICATION_JSON_VALUE) JSONPrimitive hasChangesSince(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody JSONPrimitive since); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) @@ -47,16 +55,19 @@ public interface StatusResource { @GetMapping(value = STATUS_PATH + DELETED_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) List getSoftDeletedDossierStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = STATUS_PATH + DELETED_PATH, produces = MediaType.APPLICATION_JSON_VALUE) List getSoftDeletedForDossierList(@RequestBody List dossierIds); + @ResponseBody @ResponseStatus(value = HttpStatus.OK) @GetMapping(value = STATUS_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) FileModel getFileStatus(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId); + @ResponseBody @ResponseStatus(value = HttpStatus.ACCEPTED) @PostMapping(value = STATUS_PATH + "/update-modification-date" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) @@ -64,32 +75,48 @@ public interface StatusResource { @PostMapping(value = STATUS_PATH + "/assignee" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId); @PostMapping(value = STATUS_PATH + "/underreview" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) - void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = USER_ID_REQUEST_PARAM, required = false) String userId); + void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, + @RequestParam(value = USER_ID_REQUEST_PARAM, required = false) String userId); + @PostMapping(value = STATUS_PATH + "/underapproval" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) - void setStatusUnderApproval(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId); + void setStatusUnderApproval(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, + @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId); @PostMapping(value = STATUS_PATH + "/approved" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) - void setStatusApproved(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId); + void setStatusApproved(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, + @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId); + @PostMapping(value = STATUS_PATH + "/new" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) void setStatusNew(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId); + @PostMapping(value = STATUS_PATH + "/toggle-analysis" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) void toggleExclusion(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excluded); + @PostMapping(value = STATUS_PATH + "/toggle-automatic-analysis" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) - void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis); + void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, + @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis); + @PostMapping(value = STATUS_PATH + "/exclude-pages" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) void excludePages(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Set pages); + @PostMapping(value = STATUS_PATH + "/include-pages" + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) void includePages(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Set pages); + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/TenantsResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/TenantsResource.java index ac1853dfe..39d18772d 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/TenantsResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/TenantsResource.java @@ -20,6 +20,7 @@ public interface TenantsResource { String TENANT_ID_PARAM = "tenantId"; String TENANT_ID_PATH_PARAM = "/{" + TENANT_ID_PARAM + "}"; + @PostMapping(value = "/tenants", consumes = MediaType.APPLICATION_JSON_VALUE) void createTenant(@RequestBody TenantRequest tenantRequest); @@ -27,6 +28,8 @@ public interface TenantsResource { @GetMapping(value = "/tenants", produces = MediaType.APPLICATION_JSON_VALUE) List getTenants(); + @GetMapping(value = "/deploymentKey" + TENANT_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE) JSONPrimitive getDeploymentKey(@PathVariable(TENANT_ID_PARAM) String tenantId); + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/UploadResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/UploadResource.java index 756c49cfb..9cb12d85f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/UploadResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/UploadResource.java @@ -1,12 +1,18 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +import java.util.Set; + +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseStatus; + import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.AddFileRequest; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - -import java.util.Set; @ResponseStatus(value = HttpStatus.OK) public interface UploadResource { @@ -25,9 +31,9 @@ public interface UploadResource { String DOSSIER_ID_PATH_PARAM = "/{" + DOSSIER_ID_PARAM + "}"; - @PostMapping(value = UPLOAD_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = - MediaType.APPLICATION_JSON_VALUE) - JSONPrimitive upload(@RequestBody AddFileRequest request, @RequestParam(value = "keepManualRedactions", required = false, defaultValue = "false") boolean keepManualRedactions); + @PostMapping(value = UPLOAD_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + JSONPrimitive upload(@RequestBody AddFileRequest request, + @RequestParam(value = "keepManualRedactions", required = false, defaultValue = "false") boolean keepManualRedactions); @DeleteMapping(value = DELETE_PATH + DOSSIER_ID_PATH_PARAM + FILE_ID_PATH_VARIABLE) @@ -41,5 +47,4 @@ public interface UploadResource { @PostMapping(value = UNDELETE_PATH + DOSSIER_ID_PATH_PARAM) void undeleteFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody Set fileIds); - } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/UserPreferenceResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/UserPreferenceResource.java index 5534c7c48..153a8332f 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/UserPreferenceResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/UserPreferenceResource.java @@ -1,9 +1,16 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.fasterxml.jackson.databind.JsonNode; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +import com.fasterxml.jackson.databind.JsonNode; public interface UserPreferenceResource { @@ -15,6 +22,7 @@ public interface UserPreferenceResource { String USER_ID_PARAMETER_NAME = "userId"; String USER_ID_PATH_VARIABLE = "/{" + USER_ID_PARAMETER_NAME + "}"; + @ResponseStatus(HttpStatus.NO_CONTENT) @PutMapping(value = PREFERENCES_PATH + USER_ID_PATH_VARIABLE + KEY_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) void savePreferences(@PathVariable(USER_ID_PARAMETER_NAME) String userId, @PathVariable(KEY_PARAMETER_NAME) String key, @RequestBody JsonNode jsonNode); diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ViewedPagesResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ViewedPagesResource.java index d769cfad9..14aa70e50 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ViewedPagesResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/ViewedPagesResource.java @@ -1,11 +1,17 @@ package com.iqser.red.service.persistence.service.v1.api.resources; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.ViewedPage; +import java.util.List; + import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseStatus; -import java.util.List; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.ViewedPage; @ResponseStatus(value = HttpStatus.OK) public interface ViewedPagesResource { @@ -20,13 +26,11 @@ public interface ViewedPagesResource { @PostMapping(value = REST_PATH + FILE_ID_PATH_VARIABLE + ROLE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void addPage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role, - @RequestBody Integer page); + void addPage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role, @RequestBody Integer page); @DeleteMapping(value = REST_PATH + FILE_ID_PATH_VARIABLE + ROLE_PATH_VARIABLE, consumes = MediaType.APPLICATION_JSON_VALUE) - void removePage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role, - @RequestBody Integer page); + void removePage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role, @RequestBody Integer page); @GetMapping(value = REST_PATH + FILE_ID_PATH_VARIABLE + ROLE_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/WatermarkResource.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/WatermarkResource.java index 19f78b844..378bd0791 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/WatermarkResource.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/resources/WatermarkResource.java @@ -1,12 +1,19 @@ package com.iqser.red.service.persistence.service.v1.api.resources; +import java.util.List; + +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseStatus; + import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.web.bind.annotation.*; - -import java.util.List; @ResponseStatus(value = HttpStatus.OK) public interface WatermarkResource { @@ -18,22 +25,27 @@ public interface WatermarkResource { String DOSSIER_TEMPLATE_ID_PARAMETER_NAME = "dossierTemplateId"; + @ResponseStatus(HttpStatus.OK) @PostMapping(value = WATERMARK_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) Watermark createOrUpdateWatermark(@RequestBody Watermark watermark); + @GetMapping(value = WATERMARK_PATH + WATERMARK_ID_PATH_VARIABLE, produces = MediaType.APPLICATION_JSON_VALUE) Watermark getWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId); + @GetMapping(value = WATERMARK_PATH, produces = MediaType.APPLICATION_JSON_VALUE) List getWatermarksForDossierTemplateId(@RequestParam(DOSSIER_TEMPLATE_ID_PARAMETER_NAME) String dossierTemplateId); + @ResponseStatus(HttpStatus.NO_CONTENT) @DeleteMapping(value = WATERMARK_PATH + WATERMARK_ID_PATH_VARIABLE) void deleteWatermark(@PathVariable(WATERMARK_ID_PARAMETER_NAME) long watermarkId); + @ResponseStatus(value = HttpStatus.OK) - @GetMapping(value = WATERMARK_PATH + CHECK_USED_REST_PATH , produces = MediaType.APPLICATION_JSON_VALUE) + @GetMapping(value = WATERMARK_PATH + CHECK_USED_REST_PATH, produces = MediaType.APPLICATION_JSON_VALUE) JSONPrimitive isWatermarkUsed(@RequestParam(WATERMARK_ID_PARAMETER_NAME) long watermarkId); } diff --git a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/utils/SuppressFBWarnings.java b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/utils/SuppressFBWarnings.java index 5a7a529f5..2bd7904e5 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/utils/SuppressFBWarnings.java +++ b/persistence-service-v1/persistence-service-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/utils/SuppressFBWarnings.java @@ -5,14 +5,17 @@ import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.CLASS) public @interface SuppressFBWarnings { + /** * The set of FindBugs warnings that are to be suppressed in * annotated element. The value can be a bug category, kind or pattern. */ String[] value() default {}; + /** * Optional documentation of the reason why the warning is suppressed. */ String justification() default ""; + } diff --git a/persistence-service-v1/persistence-service-api-v1/src/test/java/com/iqser/red/service/persistence/service/v1/api/model/IdentityTest.java b/persistence-service-v1/persistence-service-api-v1/src/test/java/com/iqser/red/service/persistence/service/v1/api/model/IdentityTest.java index 8a77f5461..588933c14 100644 --- a/persistence-service-v1/persistence-service-api-v1/src/test/java/com/iqser/red/service/persistence/service/v1/api/model/IdentityTest.java +++ b/persistence-service-v1/persistence-service-api-v1/src/test/java/com/iqser/red/service/persistence/service/v1/api/model/IdentityTest.java @@ -1,14 +1,16 @@ package com.iqser.red.service.persistence.service.v1.api.model; -import org.junit.Test; - import static org.assertj.core.api.Assertions.assertThat; +import org.junit.Test; + public class IdentityTest { @Test public void mockTest() { + int i = 1; assertThat(i).isEqualTo(1); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/PersistenceServiceProcessorConfiguration.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/PersistenceServiceProcessorConfiguration.java index d3f74bcff..aa4a381c0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/PersistenceServiceProcessorConfiguration.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/PersistenceServiceProcessorConfiguration.java @@ -16,11 +16,14 @@ public class PersistenceServiceProcessorConfiguration { @Bean public PageJacksonModule pageJacksonModule() { + return new PageJacksonModule(); } + @Bean public SortJacksonModule sortJacksonModule() { + return new SortJacksonModule(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/client/PDFTronRedactionClient.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/client/PDFTronRedactionClient.java index 2c10e56c6..f4bab0073 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/client/PDFTronRedactionClient.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/client/PDFTronRedactionClient.java @@ -1,8 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.client; -import com.iqser.red.service.pdftron.redaction.v1.api.resources.PDFTronRedactionResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.pdftron.redaction.v1.api.resources.PDFTronRedactionResource; + @FeignClient(name = "PDFTronRedactionClient", url = "${pdftron-redaction-service.url}") public interface PDFTronRedactionClient extends PDFTronRedactionResource { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/AnnotationEntityId.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/AnnotationEntityId.java index e565f13be..beffc1083 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/AnnotationEntityId.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/AnnotationEntityId.java @@ -1,14 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; +import java.io.Serializable; + +import javax.persistence.Column; +import javax.persistence.Embeddable; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.Column; -import javax.persistence.Embeddable; -import java.io.Serializable; - @Embeddable @Data @Builder diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/CommentEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/CommentEntity.java index 3a1df8529..46f710767 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/CommentEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/CommentEntity.java @@ -1,14 +1,21 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; +import java.time.OffsetDateTime; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import java.time.OffsetDateTime; - @Data @Builder @Entity @@ -39,4 +46,5 @@ public class CommentEntity { @ManyToOne private FileEntity fileStatus; + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/IBaseAnnotation.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/IBaseAnnotation.java index 303a193af..10bd620b5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/IBaseAnnotation.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/IBaseAnnotation.java @@ -1,24 +1,32 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; - import java.time.OffsetDateTime; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + public interface IBaseAnnotation { AnnotationEntityId getId(); + AnnotationStatus getStatus(); + OffsetDateTime getRequestDate(); + void setRequestDate(OffsetDateTime requestedDate); + OffsetDateTime getProcessedDate(); + void setProcessedDate(OffsetDateTime processedDate); + OffsetDateTime getSoftDeletedTime(); + void setSoftDeletedTime(OffsetDateTime softDeletedTime); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/IdRemovalEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/IdRemovalEntity.java index 0663e223b..639fe738f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/IdRemovalEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/IdRemovalEntity.java @@ -1,15 +1,23 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; +import java.time.OffsetDateTime; + +import javax.persistence.Column; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import java.time.OffsetDateTime; - @Entity @Table(name = "id_removal") @Data diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualForceRedactionEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualForceRedactionEntity.java index 5114b59a9..fcd174b4b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualForceRedactionEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualForceRedactionEntity.java @@ -1,15 +1,23 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; +import java.time.OffsetDateTime; + +import javax.persistence.Column; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import java.time.OffsetDateTime; - @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualImageRecategorizationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualImageRecategorizationEntity.java index d5a75faef..e2481fb37 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualImageRecategorizationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualImageRecategorizationEntity.java @@ -1,15 +1,23 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; +import java.time.OffsetDateTime; + +import javax.persistence.Column; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import java.time.OffsetDateTime; - @Data @Builder @AllArgsConstructor @@ -38,4 +46,5 @@ public class ManualImageRecategorizationEntity implements IBaseAnnotation { @ManyToOne private FileEntity fileStatus; + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualLegalBasisChangeEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualLegalBasisChangeEntity.java index b5b319f10..d4f16ad5e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualLegalBasisChangeEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualLegalBasisChangeEntity.java @@ -1,15 +1,23 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; +import java.time.OffsetDateTime; + +import javax.persistence.Column; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import java.time.OffsetDateTime; - @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualRedactionEntryEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualRedactionEntryEntity.java index f9f5b6bbc..b7dd941f0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualRedactionEntryEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ManualRedactionEntryEntity.java @@ -1,5 +1,22 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.ElementCollection; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.FetchType; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; @@ -8,14 +25,6 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.annotations.BatchSize; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; - -import javax.persistence.*; -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.List; @Data @Entity @@ -73,5 +82,4 @@ public class ManualRedactionEntryEntity implements IBaseAnnotation { @Column private String sourceId; - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/RectangleEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/RectangleEntity.java index 5180c429a..6ad0ffcf1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/RectangleEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/RectangleEntity.java @@ -1,12 +1,12 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; +import javax.persistence.Embeddable; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.Embeddable; - @Data @Builder @Embeddable diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ViewedPageEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ViewedPageEntity.java index 54c09f95d..be19f82fe 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ViewedPageEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/annotations/ViewedPageEntity.java @@ -1,15 +1,24 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.annotations; +import java.io.Serializable; +import java.time.OffsetDateTime; + +import javax.persistence.Column; +import javax.persistence.Embeddable; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.ManyToOne; +import javax.persistence.MapsId; +import javax.persistence.Table; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import java.io.Serializable; -import java.time.OffsetDateTime; - @Data @Entity @AllArgsConstructor @@ -26,10 +35,13 @@ public class ViewedPageEntity { @MapsId("fileId") private FileEntity file; + public int getPage() { + return this.id.page; } + @Data @Builder @Embeddable @@ -43,6 +55,7 @@ public class ViewedPageEntity { private int page; @Column(name = "user_id") private String userId; + } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java index 96497806e..21a7db40f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ApplicationConfigurationEntity.java @@ -1,15 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @Entity @Builder diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/BaseDictionaryEntry.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/BaseDictionaryEntry.java index e61260539..995dbfd18 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/BaseDictionaryEntry.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/BaseDictionaryEntry.java @@ -4,10 +4,13 @@ public interface BaseDictionaryEntry { String getValue(); + long getVersion(); + boolean isDeleted(); + String getTypeId(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java index 971c90447..1dec5346b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/ColorsEntity.java @@ -1,15 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @Builder @NoArgsConstructor diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryEntryEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryEntryEntity.java index 92c5d1d26..0a254059a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryEntryEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryEntryEntity.java @@ -1,13 +1,17 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; -import com.fasterxml.jackson.annotation.JsonIgnore; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; - @Data @Builder @Entity @@ -28,5 +32,4 @@ public class DictionaryEntryEntity implements BaseDictionaryEntry { @Column(name = "type_id") private String typeId; - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalsePositiveEntryEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalsePositiveEntryEntity.java index 8d3b626b7..608f0803f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalsePositiveEntryEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalsePositiveEntryEntity.java @@ -1,8 +1,11 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; -import javax.persistence.*; - -import com.fasterxml.jackson.annotation.JsonIgnore; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; import lombok.AllArgsConstructor; import lombok.Builder; @@ -26,8 +29,7 @@ public class DictionaryFalsePositiveEntryEntity implements BaseDictionaryEntry { private long version; @Column private boolean deleted; - @Column( name = "type_id") + @Column(name = "type_id") private String typeId; - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalseRecommendationEntryEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalseRecommendationEntryEntity.java index d5020f428..122fb842c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalseRecommendationEntryEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DictionaryFalseRecommendationEntryEntity.java @@ -1,12 +1,17 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; - @Data @Builder @Entity @@ -27,5 +32,4 @@ public class DictionaryFalseRecommendationEntryEntity implements BaseDictionaryE @Column(name = "type_id") private String typeId; - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureEntity.java index 4b63a0540..4690af7e0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/DigitalSignatureEntity.java @@ -1,13 +1,18 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Lob; +import javax.persistence.Table; + import com.iqser.red.service.persistence.service.v1.api.utils.SuppressFBWarnings; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; - @Data @Entity @Builder diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/FileAttributesGeneralConfigurationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/FileAttributesGeneralConfigurationEntity.java index 18bdbf036..40fba428a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/FileAttributesGeneralConfigurationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/FileAttributesGeneralConfigurationEntity.java @@ -1,14 +1,20 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.MapsId; +import javax.persistence.OneToOne; +import javax.persistence.Table; + import com.fasterxml.jackson.annotation.JsonIgnore; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; - @Data @Entity @Table(name = "file_attribute_general_configuration") diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java index 6fa0b5c9e..171ddc270 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisEntity.java @@ -1,12 +1,13 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import javax.persistence.Column; +import javax.persistence.Embeddable; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; - @Data @Builder @Embeddable @@ -20,5 +21,4 @@ public class LegalBasisEntity { @Column(length = 4000) private String reason; - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java index 8e4941da9..27b17760b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/LegalBasisMappingEntity.java @@ -1,15 +1,21 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.ElementCollection; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; @Data @Builder diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/RuleSetEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/RuleSetEntity.java index 0a7fe668c..cf95ce0e8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/RuleSetEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/RuleSetEntity.java @@ -1,11 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.configuration; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Lob; +import javax.persistence.Table; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; - @Data @NoArgsConstructor @AllArgsConstructor @@ -23,4 +27,5 @@ public class RuleSetEntity { @Lob @Column(name = "value", columnDefinition = "TEXT") private String value; + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/TypeEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/TypeEntity.java index 8951e22c9..01dd990c6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/TypeEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/configuration/TypeEntity.java @@ -75,7 +75,10 @@ public class TypeEntity { @Column(updatable = false, insertable = false, name = "dossier_id") private String dossierId; + public boolean isDeleted() { - return this.softDeletedTime !=null; + + return this.softDeletedTime != null; } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeConfigEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeConfigEntity.java index c64ab6a4a..2a78b923b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeConfigEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeConfigEntity.java @@ -1,14 +1,20 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; - - @Data @Entity @Builder @@ -30,9 +36,7 @@ public class DossierAttributeConfigEntity { @Enumerated(EnumType.STRING) private DossierAttributeType type = DossierAttributeType.TEXT; - @ManyToOne private DossierTemplateEntity dossierTemplate; - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeEntity.java index 5b698b327..26e8a2700 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierAttributeEntity.java @@ -13,7 +13,6 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; - @Data @Table(name = "dossier_attribute") @Entity @@ -40,6 +39,7 @@ public class DossierAttributeEntity { @Column(name = "dossier_attribute_config_id") private String dossierAttributeConfigId; + } } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierEntity.java index 7b58fd913..496d6ea99 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierEntity.java @@ -1,5 +1,28 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Convert; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToMany; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + import com.fasterxml.jackson.annotation.JsonIgnore; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity; @@ -7,16 +30,12 @@ import com.iqser.red.service.persistence.management.v1.processor.utils.JSONDownl import com.iqser.red.service.persistence.management.v1.processor.utils.JSONStringSetConverter; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierVisibility; -import lombok.*; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; -import javax.persistence.*; -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; @Data @Entity @@ -120,7 +139,10 @@ public class DossierEntity { @ManyToOne(fetch = FetchType.LAZY) private WatermarkEntity previewWatermark; + public boolean isDeleted() { + return softDeletedTime != null || hardDeletedTime != null; } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierTemplateEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierTemplateEntity.java index 87709f955..8762f1d80 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierTemplateEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/DossierTemplateEntity.java @@ -6,7 +6,16 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import javax.persistence.*; +import javax.persistence.Column; +import javax.persistence.Convert; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import javax.persistence.Transient; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity; @@ -18,8 +27,6 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; @Data @Entity diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java index 5d9113454..f3d537f9c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java @@ -1,14 +1,21 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + import com.fasterxml.jackson.annotation.JsonIgnore; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeType; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; - @Data @Entity @NoArgsConstructor @@ -41,5 +48,4 @@ public class FileAttributeConfigEntity { @JsonIgnore private DossierTemplateEntity dossierTemplate; - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeEntity.java index a9e9743e6..848643d08 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeEntity.java @@ -1,10 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier; -import lombok.Data; - -import javax.persistence.*; import java.io.Serializable; +import javax.persistence.Column; +import javax.persistence.Embeddable; +import javax.persistence.EmbeddedId; +import javax.persistence.Entity; +import javax.persistence.Table; + +import lombok.Data; + @Data @Entity @Table(name = "file_attribute") @@ -25,7 +30,9 @@ public class FileAttributeEntity { @Column(name = "file_attribute_config_id") private String fileAttributeConfigId; + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileEntity.java index 489d3b33d..29dec7114 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileEntity.java @@ -1,22 +1,35 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier; -import com.iqser.red.service.persistence.management.v1.processor.utils.JSONIntegerSetConverter; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; - -import javax.persistence.*; import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Convert; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + +import com.iqser.red.service.persistence.management.v1.processor.utils.JSONIntegerSetConverter; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + @Data @Builder @AllArgsConstructor @@ -168,15 +181,21 @@ public class FileEntity { @Column private Integer processingErrorCounter; + public OffsetDateTime getLastOCRTime() { + return this.ocrStartTime; } + public boolean isSoftDeleted() { + return deleted != null; } + public boolean isSoftOrHardDeleted() { + return deleted != null || hardDeletedTime != null; } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ReportTemplateEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ReportTemplateEntity.java index c8536fd6a..487fb0cc0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ReportTemplateEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/ReportTemplateEntity.java @@ -1,16 +1,24 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.dossier; +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.ManyToMany; +import javax.persistence.ManyToOne; +import javax.persistence.Table; + import com.fasterxml.jackson.annotation.JsonIgnore; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.List; - @Data @Builder @AllArgsConstructor diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/MigrationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/MigrationEntity.java index f82bf9844..94669aff2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/MigrationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/migration/MigrationEntity.java @@ -28,4 +28,5 @@ public class MigrationEntity { @Column private long version; + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationEntity.java index 7ea42582c..8ff18f92b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationEntity.java @@ -60,4 +60,5 @@ public class NotificationEntity { @Column(columnDefinition = "text") @Convert(converter = JSONMapConverter.class) private Map target = new HashMap<>(); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationPreferencesEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationPreferencesEntity.java index d2c8ec47a..799dfdafc 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationPreferencesEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/notification/NotificationPreferencesEntity.java @@ -1,16 +1,23 @@ package com.iqser.red.service.persistence.management.v1.processor.entity.notification; +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.ElementCollection; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + import com.iqser.red.service.persistence.service.v1.api.model.notification.EmailNotificationType; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; - -import javax.persistence.*; -import java.util.ArrayList; -import java.util.List; @Data @Builder @@ -39,4 +46,5 @@ public class NotificationPreferencesEntity { @ElementCollection @Fetch(FetchMode.SUBSELECT) private List inAppNotifications = new ArrayList<>(); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/BadRequestException.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/BadRequestException.java index 172267e67..04a5ec883 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/BadRequestException.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/BadRequestException.java @@ -3,10 +3,13 @@ package com.iqser.red.service.persistence.management.v1.processor.exception; public class BadRequestException extends RuntimeException { public BadRequestException(String message) { + super(message); } + public BadRequestException(String message, Throwable t) { + super(message, t); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/ConflictException.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/ConflictException.java index ff1eebe3f..f47430f66 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/ConflictException.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/ConflictException.java @@ -3,6 +3,7 @@ package com.iqser.red.service.persistence.management.v1.processor.exception; public class ConflictException extends RuntimeException { public ConflictException(String message) { + super(message); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/DossierNotFoundException.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/DossierNotFoundException.java index cb961bed7..264a03278 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/DossierNotFoundException.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/DossierNotFoundException.java @@ -4,7 +4,9 @@ public class DossierNotFoundException extends RuntimeException { public static final String DOSSIER_NOT_FOUND_MESSAGE = "Dossier with DossierId %s not found in the database."; + public DossierNotFoundException(String message) { + super(message); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/InternalServerErrorException.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/InternalServerErrorException.java index 3f8bfe827..c261e7e30 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/InternalServerErrorException.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/InternalServerErrorException.java @@ -3,10 +3,13 @@ package com.iqser.red.service.persistence.management.v1.processor.exception; public class InternalServerErrorException extends RuntimeException { public InternalServerErrorException(String message) { + super(message); } + public InternalServerErrorException(String message, Throwable t) { + super(message, t); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/NotFoundException.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/NotFoundException.java index bfa84359c..f82dc0198 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/NotFoundException.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/NotFoundException.java @@ -3,6 +3,7 @@ package com.iqser.red.service.persistence.management.v1.processor.exception; public class NotFoundException extends RuntimeException { public NotFoundException(String message) { + super(message); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/ValidationException.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/ValidationException.java index d6d0545f0..86978b4f7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/ValidationException.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/exception/ValidationException.java @@ -3,6 +3,7 @@ package com.iqser.red.service.persistence.management.v1.processor.exception; public class ValidationException extends RuntimeException { public ValidationException(String message) { + super(message); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/OCRStatusUpdateResponse.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/OCRStatusUpdateResponse.java index 50e94a415..b874938c5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/OCRStatusUpdateResponse.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/model/OCRStatusUpdateResponse.java @@ -1,6 +1,5 @@ package com.iqser.red.service.persistence.management.v1.processor.model; - import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/entity/TenantEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/entity/TenantEntity.java index a32db923e..8c71c923f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/entity/TenantEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/multitenancy/entity/TenantEntity.java @@ -30,4 +30,5 @@ public class TenantEntity { private String username; @Column private String password; + } \ No newline at end of file diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ApplicationConfigService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ApplicationConfigService.java index cb00df398..096018d1f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ApplicationConfigService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ApplicationConfigService.java @@ -1,11 +1,13 @@ package com.iqser.red.service.persistence.management.v1.processor.service; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ApplicationConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ApplicationConfigRepository; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; @Slf4j @Service @@ -14,12 +16,16 @@ public class ApplicationConfigService { private final ApplicationConfigRepository applicationConfigRepository; + public ApplicationConfigurationEntity getApplicationConfig() { - return applicationConfigRepository.findById(ApplicationConfigurationEntity.ID) - .orElseThrow(() -> new NotFoundException("Application Configuration not found")); + + return applicationConfigRepository.findById(ApplicationConfigurationEntity.ID).orElseThrow(() -> new NotFoundException("Application Configuration not found")); } + public ApplicationConfigurationEntity saveApplicationConfiguration(ApplicationConfigurationEntity appConfig) { + return applicationConfigRepository.save(appConfig); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ColorsService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ColorsService.java index a11ceed35..f1a7d2763 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ColorsService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ColorsService.java @@ -1,10 +1,12 @@ package com.iqser.red.service.persistence.management.v1.processor.service; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ColorsRepository; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; @Slf4j @Service @@ -13,32 +15,38 @@ public class ColorsService { private final ColorsRepository colorsRepository; + public void deleteColors(String dossierTemplateId) { + colorsRepository.deleteById(dossierTemplateId); } + public ColorsEntity getColors(String dossierTemplateId) { + return colorsRepository.findById(dossierTemplateId).orElseGet(() -> { - String defaultColor = "#aaaaaa"; - var entity = new ColorsEntity(); - entity.setDossierTemplateId(dossierTemplateId); - entity.setRequestAddColor(defaultColor); - entity.setRequestRemoveColor(defaultColor); - entity.setDictionaryRequestColor(defaultColor); - entity.setPreviewColor(defaultColor); - entity.setAnalysisColor(defaultColor); - entity.setUpdatedColor(defaultColor); - entity.setRecommendationColor(defaultColor); - entity.setHintColor(defaultColor); - entity.setRedactionColor(defaultColor); - entity.setIgnoredHintColor(defaultColor); - entity.setSkippedColor(defaultColor); - return colorsRepository.save(entity); - } - ); + String defaultColor = "#aaaaaa"; + var entity = new ColorsEntity(); + entity.setDossierTemplateId(dossierTemplateId); + entity.setRequestAddColor(defaultColor); + entity.setRequestRemoveColor(defaultColor); + entity.setDictionaryRequestColor(defaultColor); + entity.setPreviewColor(defaultColor); + entity.setAnalysisColor(defaultColor); + entity.setUpdatedColor(defaultColor); + entity.setRecommendationColor(defaultColor); + entity.setHintColor(defaultColor); + entity.setRedactionColor(defaultColor); + entity.setIgnoredHintColor(defaultColor); + entity.setSkippedColor(defaultColor); + return colorsRepository.save(entity); + }); } + public ColorsEntity saveColors(ColorsEntity colors) { + return colorsRepository.save(colors); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureKmsService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureKmsService.java index 4f5098da2..1ad7320b7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureKmsService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureKmsService.java @@ -10,7 +10,6 @@ import com.iqser.red.service.persistence.management.v1.processor.client.PDFTronR 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.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.exception.InternalServerErrorException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DigitalSignatureKmsRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.DigitalSignatureKms; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java index a935027c5..d40308cf9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureService.java @@ -68,7 +68,11 @@ public class DigitalSignatureService { @Transactional public void updateDigitalSignature(DigitalSignatureEntity digitalSignatureModel) { - int updateCount = digitalSignatureRepository.updateDigitalSignature(DigitalSignatureEntity.ID, digitalSignatureModel.getReason(), digitalSignatureModel.getLocation(), digitalSignatureModel.getContactInfo(), digitalSignatureModel.getCertificateName()); + int updateCount = digitalSignatureRepository.updateDigitalSignature(DigitalSignatureEntity.ID, + digitalSignatureModel.getReason(), + digitalSignatureModel.getLocation(), + digitalSignatureModel.getContactInfo(), + digitalSignatureModel.getCertificateName()); if (updateCount == 0) { throw new NotFoundException("Digital Signature Not found"); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureTypeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureTypeService.java index 43eb20180..595b7447d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureTypeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DigitalSignatureTypeService.java @@ -28,9 +28,7 @@ public class DigitalSignatureTypeService { public void setActiveDigitalSignatureType(DigitalSignatureType digitalSignatureType) { - digitalSignatureTypeRepository.save(DigitalSignatureTypeEntity.builder() - .digitalSignatureType(digitalSignatureType) - .build()); + digitalSignatureTypeRepository.save(DigitalSignatureTypeEntity.builder().digitalSignatureType(digitalSignatureType).build()); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java index ecc895f3e..5b90501ea 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateCloneService.java @@ -72,7 +72,8 @@ public class DossierTemplateCloneService { OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); clonedDossierTemplate.setId(UUID.randomUUID().toString()); clonedDossierTemplate.setName(cloneDossierTemplateRequest.getName()); - clonedDossierTemplate.setDescription(cloneDossierTemplateRequest.getDescription() == null || cloneDossierTemplateRequest.getDescription().isEmpty() ? dossierTemplate.getDescription() : cloneDossierTemplateRequest.getDescription()); + clonedDossierTemplate.setDescription(cloneDossierTemplateRequest.getDescription() == null || cloneDossierTemplateRequest.getDescription() + .isEmpty() ? dossierTemplate.getDescription() : cloneDossierTemplateRequest.getDescription()); clonedDossierTemplate.setDateAdded(now); clonedDossierTemplate.setDateModified(now); clonedDossierTemplate.setCreatedBy(cloneDossierTemplateRequest.getCloningUserId()); @@ -80,7 +81,8 @@ public class DossierTemplateCloneService { clonedDossierTemplate.setValidFrom(cloneDossierTemplateRequest.getValidFrom() == null ? dossierTemplate.getValidFrom() : cloneDossierTemplateRequest.getValidFrom()); clonedDossierTemplate.setValidTo(cloneDossierTemplateRequest.getValidTo() == null ? dossierTemplate.getValidTo() : cloneDossierTemplateRequest.getValidTo()); clonedDossierTemplate.setSoftDeleteTime(dossierTemplate.getSoftDeleteTime()); - clonedDossierTemplate.setDownloadFileTypes(cloneDossierTemplateRequest.getDownloadFileTypes() == null || cloneDossierTemplateRequest.getDownloadFileTypes().isEmpty() ? dossierTemplate.getDownloadFileTypes() : cloneDossierTemplateRequest.getDownloadFileTypes()); + clonedDossierTemplate.setDownloadFileTypes(cloneDossierTemplateRequest.getDownloadFileTypes() == null || cloneDossierTemplateRequest.getDownloadFileTypes() + .isEmpty() ? dossierTemplate.getDownloadFileTypes() : cloneDossierTemplateRequest.getDownloadFileTypes()); //set rules cloneRules(dossierTemplate.getId(), clonedDossierTemplate.getId()); //set legal basis @@ -128,14 +130,31 @@ public class DossierTemplateCloneService { private void cloneLegalBasisMapping(String dossierTemplateId, String clonedDossierTemplateId) { - legalBasisMappingPersistenceService.setLegalBasisMapping(clonedDossierTemplateId, convert(legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplateId), LegalBasis.class)); + legalBasisMappingPersistenceService.setLegalBasisMapping(clonedDossierTemplateId, + convert(legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplateId), LegalBasis.class)); } private void cloneDictionariesWithEntries(String dossierTemplateId, String clonedDossierTemplateId) { + var types = dictionaryPersistenceService.getAllTypesForDossierTemplate(dossierTemplateId, false); for (TypeEntity t : types) { - var type = dictionaryPersistenceService.addType(t.getType(), clonedDossierTemplateId, t.getHexColor(), t.getRecommendationHexColor(), t.getSkippedHexColor(), t.getRank(), t.isHint(), t.isCaseInsensitive(), t.isRecommendation(), t.getDescription(), t.isAddToDictionaryAction(), t.getLabel(), null, t.isHasDictionary(), t.isSystemManaged(), t.isAutoHideSkipped()); + var type = dictionaryPersistenceService.addType(t.getType(), + clonedDossierTemplateId, + t.getHexColor(), + t.getRecommendationHexColor(), + t.getSkippedHexColor(), + t.getRank(), + t.isHint(), + t.isCaseInsensitive(), + t.isRecommendation(), + t.getDescription(), + t.isAddToDictionaryAction(), + t.getLabel(), + null, + t.isHasDictionary(), + t.isSystemManaged(), + t.isAutoHideSkipped()); entryPersistenceService.cloneEntries(t.getId(), type.getId()); } } @@ -215,6 +234,7 @@ public class DossierTemplateCloneService { } } + private void cloneColors(String dossierTemplateId, String clonedDossierTemplateId) { var colors = colorsService.getColors(dossierTemplateId); @@ -240,7 +260,9 @@ public class DossierTemplateCloneService { } } + private void cloneWatermarks(String dossierTemplateId, String clonedDossierTemplateId) { + var watermarkList = watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId); for (var watermark : watermarkList) { var clonedWatermark = new Watermark(); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EmailService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EmailService.java index 830067c98..4980fd4e3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EmailService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EmailService.java @@ -28,8 +28,8 @@ import lombok.extern.slf4j.Slf4j; @Service public class EmailService { - public void send(SMTPConfiguration smtpConfiguration, String toAddress, String subject, String textBody) { + try { var sender = getJavaMailSender(smtpConfiguration); @@ -49,7 +49,6 @@ public class EmailService { multipart.addBodyPart(textPart); } - msg.setFrom(toInternetAddress(from, fromDisplayName)); msg.setReplyTo(new Address[]{toInternetAddress(from, fromDisplayName)}); @@ -70,7 +69,9 @@ public class EmailService { } } + protected InternetAddress toInternetAddress(String email, String displayName) throws UnsupportedEncodingException, AddressException { + if (email == null || "".equals(email.trim())) { throw new BadRequestException("Please provide a valid address"); } @@ -80,7 +81,9 @@ public class EmailService { return new InternetAddress(email, displayName, "utf-8"); } + public JavaMailSender getJavaMailSender(SMTPConfiguration smtpConfiguration) { + JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setHost(smtpConfiguration.getHost()); mailSender.setPort(smtpConfiguration.getPort()); @@ -107,5 +110,4 @@ public class EmailService { return mailSender; } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java index 0e728663e..3116d3b31 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/WatermarkService.java @@ -35,6 +35,7 @@ public class WatermarkService { @Transactional public void deleteWatermark(long watermarkId) { + watermarkRepository.findById(watermarkId).ifPresentOrElse(loadedWatermark -> { dossierRepository.countDeleteWatermark(watermarkId); dossierRepository.countDeletePreviewWatermark(watermarkId); @@ -45,8 +46,7 @@ public class WatermarkService { public WatermarkEntity getWatermark(long watermarkId) { - return watermarkRepository.findById(watermarkId) - .orElseThrow(() -> new NotFoundException("Watermark Configuration not found")); + return watermarkRepository.findById(watermarkId).orElseThrow(() -> new NotFoundException("Watermark Configuration not found")); } @@ -98,7 +98,9 @@ public class WatermarkService { } + private void validateDossierTemplateId(String newDossierTemplateId, String existingDossierTemplateId) { + if (newDossierTemplateId == null && existingDossierTemplateId == null) { throw new BadRequestException("The dossier template id is not provided"); } @@ -106,7 +108,10 @@ public class WatermarkService { throw new ConflictException("The watermark dossier template id does not match"); } } + + private void validateWatermarkNameIsUnique(String watermarkName, String dossierTemplateId, long watermarkId) { + getWatermarksForDossierTemplateId(dossierTemplateId).forEach(existing -> { if (existing.getName().equals(watermarkName) && existing.getId() != watermarkId) { throw new ConflictException("Watermark name must be unique within the same dossier template"); @@ -114,11 +119,15 @@ public class WatermarkService { }); } + public List getWatermarksForDossierTemplateId(String dossierTemplateId) { + return watermarkRepository.findByDossierTemplateId(dossierTemplateId); } + public boolean isWatermarkUsed(long watermarkId) { + watermarkRepository.findById(watermarkId); //check if watermark exists int count = dossierRepository.countDossiersWithWatermarkInUse(watermarkId); return count != 0; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java index ea70dca5f..f4cccaa3c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/AuditPersistenceService.java @@ -1,36 +1,39 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; -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.model.audit.AuditRequest; -import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditSearchRequest; -import com.iqser.red.service.persistence.service.v1.api.model.audit.CategoryModel; -import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; +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 org.springframework.beans.BeanUtils; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.List; - -import static com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository.*; +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.model.audit.AuditRequest; +import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditSearchRequest; +import com.iqser.red.service.persistence.service.v1.api.model.audit.CategoryModel; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; @Service @RequiredArgsConstructor public class AuditPersistenceService { - private final AuditRepository auditRepository; + @SneakyThrows public void insertRecord(AuditRequest auditRequest) { - var auditModel = new AuditEntity(); BeanUtils.copyProperties(auditRequest, auditModel); auditModel.setRecordDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); @@ -39,11 +42,14 @@ public class AuditPersistenceService { } + public List getCategories() { + return auditRepository.findCategories(); } + public Page search(AuditSearchRequest auditRequest) { if (auditRequest.getPageSize() == 0) { @@ -71,5 +77,4 @@ public class AuditPersistenceService { return auditRepository.findAll(spec, PageRequest.of(auditRequest.getPage(), auditRequest.getPageSize())); } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java index f8aa0863e..ce1191195 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DictionaryPersistenceService.java @@ -36,9 +36,22 @@ public class DictionaryPersistenceService { private final EntryRepository entryRepository; - public TypeEntity addType(String type, String dossierTemplateId, String hexColor, String recommendationHexColor, String skippedHexColor, int rank, boolean isHint, - boolean caseInsensitive, boolean isRecommendation, String description, boolean addToDictionaryAction, String label, String dossierId, - boolean hasDictionary, boolean systemManaged, boolean autoHideSkipped) { + public TypeEntity addType(String type, + String dossierTemplateId, + String hexColor, + String recommendationHexColor, + String skippedHexColor, + int rank, + boolean isHint, + boolean caseInsensitive, + boolean isRecommendation, + String description, + boolean addToDictionaryAction, + String label, + String dossierId, + boolean hasDictionary, + boolean systemManaged, + boolean autoHideSkipped) { checkRankAlreadyExists(type, dossierTemplateId, rank, dossierId); @@ -86,7 +99,18 @@ public class DictionaryPersistenceService { type.setLabel(typeValueRequest.getLabel()); type.setAddToDictionaryAction(typeValueRequest.isAddToDictionaryAction()); } else { - BeanUtils.copyProperties(typeValueRequest, type, "type", "dossierTemplateId", "dossierId", "entries", "falsePositiveEntries", "falseRecommendationEntries", "dossierTemplate", "dossier", "id", "version"); + BeanUtils.copyProperties(typeValueRequest, + type, + "type", + "dossierTemplateId", + "dossierId", + "entries", + "falsePositiveEntries", + "falseRecommendationEntries", + "dossierTemplate", + "dossier", + "id", + "version"); } typeRepository.save(type); }); @@ -223,8 +247,10 @@ public class DictionaryPersistenceService { typeRepository.saveAll(types); } + @Transactional public int undeleteType(String typeId) { + return typeRepository.unSoftDeleteTypeById(typeId); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java index b0951ef44..6854618bc 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributeConfigPersistenceService.java @@ -1,19 +1,25 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.text.WordUtils; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; 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; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.text.WordUtils; -import org.springframework.stereotype.Service; -import javax.transaction.Transactional; -import java.util.*; -import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor @@ -23,7 +29,9 @@ public class DossierAttributeConfigPersistenceService { private final DossierAttributeRepository dossierAttributeRepository; private final DossierTemplateRepository dossierTemplateRepository; + public DossierAttributeConfigEntity addOrUpdateDossierAttribute(String dossierTemplateId, DossierAttributeConfigEntity dossierAttributeConfig) { + var dossierTemplate = dossierTemplateRepository.getOne(dossierTemplateId); dossierAttributeConfig.setDossierTemplate(dossierTemplate); if (dossierAttributeConfig.getId() == null) { @@ -53,15 +61,14 @@ public class DossierAttributeConfigPersistenceService { } } + @Transactional public List setDossierAttributesConfig(String dossierTemplateId, List dossierAttributesConfig) { - Set toSetIds = dossierAttributesConfig.stream().map(DossierAttributeConfigEntity::getId).filter(Objects::nonNull).collect(Collectors.toSet()); var currentConfigs = dossierAttributeConfigRepository.findAllByDossierTemplateId(dossierTemplateId); Set configsToRemove = currentConfigs.stream().filter(c -> !toSetIds.contains(c.getId())).collect(Collectors.toSet()); - dossierAttributesConfig.forEach(fac -> addOrUpdateDossierAttribute(dossierTemplateId, fac)); configsToRemove.forEach(ctr -> { @@ -71,47 +78,57 @@ public class DossierAttributeConfigPersistenceService { return getDossierAttributes(dossierTemplateId); - } + @Transactional public void deleteDossierAttribute(String dossierAttributeId) { + dossierAttributeRepository.deleteByDossierAttributeConfigId(dossierAttributeId); dossierAttributeConfigRepository.deleteById(dossierAttributeId); } + @Transactional public void deleteDossierAttributes(List dossierAttributeIds) { + dossierAttributeIds.forEach(this::deleteDossierAttribute); } + public List getDossierAttributes(String dossierTemplateId) { + return dossierAttributeConfigRepository.findAllByDossierTemplateId(dossierTemplateId); } + public String getDossierAttributeByIdOrName(String dossierTemplateId, String dossierAttributeId, String label) { Optional result = dossierAttributeConfigRepository.findAttributeByIdOrDossierTemplateIdAndLabel(dossierTemplateId, dossierAttributeId, label); return result.isPresent() ? result.get().getId() : null; } + private void setPlaceholder(DossierAttributeConfigEntity dossierAttributeConfig) { + if (dossierAttributeConfig.getPlaceholder() == null || dossierAttributeConfig.getPlaceholder().isEmpty()) { String placeholder = "{{dossier.attribute." + StringUtils.remove(WordUtils.capitalizeFully(dossierAttributeConfig.getLabel(), ' '), " ") + "}}"; dossierAttributeConfig.setPlaceholder(placeholder); } } + private void uniqueLabelAndPlaceholder(DossierAttributeConfigEntity dossierAttributesConfig) { - getDossierAttributes(dossierAttributesConfig.getDossierTemplate().getId()).stream().filter( - d -> !d.getId().equals(dossierAttributesConfig.getId())).forEach(other -> { + + getDossierAttributes(dossierAttributesConfig.getDossierTemplate().getId()).stream().filter(d -> !d.getId().equals(dossierAttributesConfig.getId())).forEach(other -> { if (other.getLabel().equalsIgnoreCase(dossierAttributesConfig.getLabel())) { throw new ConflictException("Label already exists."); } if (other.getPlaceholder().equalsIgnoreCase(dossierAttributesConfig.getPlaceholder())) { - throw new ConflictException("Placeholder already exists. " + dossierAttributesConfig.getPlaceholder() ); + throw new ConflictException("Placeholder already exists. " + dossierAttributesConfig.getPlaceholder()); } }); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributePersistenceService.java index 00bf4de80..0a213cc7e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierAttributePersistenceService.java @@ -1,16 +1,19 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.util.List; + +import javax.transaction.Transactional; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; 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; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.apache.commons.lang3.StringUtils; -import javax.transaction.Transactional; -import java.util.List; +import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor @@ -21,41 +24,49 @@ public class DossierAttributePersistenceService { private final DossierAttributeRepository dossierAttributeRepository; private final DossierRepository dossierRepository; + @Transactional public void insertDossierAttribute(String dossierId, String dossierAttributeId, String dossierAttributeValue) { DossierAttributeEntity dossierAttribute = new DossierAttributeEntity(); dossierAttribute.setId(new DossierAttributeEntity.DossierAttributeEntityId(dossierId, dossierAttributeId)); - dossierAttribute.setValue(StringUtils.isBlank(dossierAttributeValue)? null: dossierAttributeValue); + dossierAttribute.setValue(StringUtils.isBlank(dossierAttributeValue) ? null : dossierAttributeValue); dossierAttributeRepository.saveAndFlush(dossierAttribute); } + @Transactional public void updateDossierAttribute(String dossierId, String dossierAttributeId, String dossierAttributeValue) { dossierAttributeRepository.updateDossierAttribute(new DossierAttributeEntity.DossierAttributeEntityId(dossierId, dossierAttributeId), - StringUtils.isBlank(dossierAttributeValue) ? null: dossierAttributeValue); + StringUtils.isBlank(dossierAttributeValue) ? null : dossierAttributeValue); } @Transactional public void deleteDossierAttribute(String dossierId) { + dossierAttributeRepository.deleteByDossierId(dossierId); } + @Transactional public void deleteDossierAttribute(String dossierId, String dossierAttributeId) { + dossierAttributeRepository.deleteById(new DossierAttributeEntity.DossierAttributeEntityId(dossierId, dossierAttributeId)); } + public List getDossierAttributes(String dossierId) { + return dossierAttributeRepository.findByIdDossierId(dossierId); } + public DossierAttributeEntity findOne(String dossierId, String dossierAttributeId) { + return dossierAttributeRepository.findById(new DossierAttributeEntity.DossierAttributeEntityId(dossierId, dossierAttributeId)) .orElseThrow(() -> new NotFoundException("Dossier Attribute not set")); } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java index 805f19058..950e4883f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierPersistenceService.java @@ -12,14 +12,13 @@ import java.util.stream.Collectors; import javax.transaction.Transactional; -import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; -import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; +import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; @@ -28,13 +27,13 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierChange; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; @Service @RequiredArgsConstructor @Slf4j public class DossierPersistenceService { - private final DossierRepository dossierRepository; private final FileRepository fileRepository; private final DossierTemplateRepository dossierTemplateRepository; @@ -58,7 +57,6 @@ public class DossierPersistenceService { this.handleWatermark(createOrUpdateDossierRequest, dossier); return dossierRepository.save(dossier); - } @@ -70,7 +68,8 @@ public class DossierPersistenceService { dossier.setDossierTemplate(dossierTemplateRepository.getOne(createOrUpdateDossierRequest.getDossierTemplateId())); dossier.setLastUpdated(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - dossier.getReportTemplates().forEach(t -> t.getDossiers().removeIf(d -> d.getId().equals(dossierId) && !createOrUpdateDossierRequest.getReportTemplateIds().contains(t.getTemplateId()))); + dossier.getReportTemplates() + .forEach(t -> t.getDossiers().removeIf(d -> d.getId().equals(dossierId) && !createOrUpdateDossierRequest.getReportTemplateIds().contains(t.getTemplateId()))); var reportTemplates = reportTemplateRepository.findAllById(createOrUpdateDossierRequest.getReportTemplateIds()); reportTemplates.forEach(r -> { if (!r.getDossiers().stream().map(DossierEntity::getId).collect(Collectors.toSet()).contains(dossierId)) { @@ -84,7 +83,9 @@ public class DossierPersistenceService { } + private void handleDossierStatus(CreateOrUpdateDossierRequest createOrUpdateDossierRequest, DossierEntity dossier) { + if (createOrUpdateDossierRequest.getDossierStatusId() != null) { var dossierStatus = dossierStatusPersistenceService.getDossierStatus(createOrUpdateDossierRequest.getDossierStatusId()); if (dossierStatus.getDossierTemplateId().equals(createOrUpdateDossierRequest.getDossierTemplateId())) { @@ -97,7 +98,9 @@ public class DossierPersistenceService { } } + private void handleWatermark(CreateOrUpdateDossierRequest createOrUpdateDossierRequest, DossierEntity dossier) { + if (createOrUpdateDossierRequest.getWatermarkId() != null) { if (!createOrUpdateDossierRequest.getWatermarkId().equals(dossier.getWatermarkId())) { var watermarkEntity = watermarkService.getWatermark(createOrUpdateDossierRequest.getWatermarkId()); @@ -157,27 +160,33 @@ public class DossierPersistenceService { public DossierEntity findByDossierId(String dossierId) { + return dossierRepository.findById(dossierId).orElseThrow(() -> new DossierNotFoundException(String.format(DOSSIER_NOT_FOUND_MESSAGE, dossierId))); } public List findAllDossiers() { + return dossierRepository.findAll(); } + public List findAllDossiersForDossierTemplateId(String dossierTemplateId) { + return dossierRepository.findByDossierTemplateId(dossierTemplateId); } @Transactional public void hardDelete(String dossierId) { + dossierRepository.hardDelete(dossierId, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } @Transactional public void undelete(String dossierId) { + int updateCount = dossierRepository.undelete(dossierId, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); if (updateCount == 0) { throw new BadRequestException("Cannot undelete a hard-deleted dossier!"); @@ -187,9 +196,11 @@ public class DossierPersistenceService { @Transactional public void markDossierAsDeleted(String dossierId, OffsetDateTime softDeletedTime) { + dossierRepository.markDossierAsDeleted(dossierId, softDeletedTime, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } + public Set hasChangesSince(OffsetDateTime since) { var dossiersWithChanges = dossierRepository.findDossierChangeByLastUpdatedIsAfter(since.truncatedTo(ChronoUnit.MILLIS)); @@ -210,12 +221,14 @@ public class DossierPersistenceService { return dossierChanges; } + @Transactional public void archiveDossier(String dossierId) { dossierRepository.archiveDossier(dossierId, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } + @Transactional public void unarchiveDossier(String dossierId) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java index bf9ae9def..cb8f9eefd 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierStatusPersistenceService.java @@ -1,5 +1,16 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.util.Collections; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +import javax.transaction.Transactional; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; @@ -7,16 +18,8 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.NotFo import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierStatusRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; -import lombok.RequiredArgsConstructor; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import javax.transaction.Transactional; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.UUID; +import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor @@ -27,8 +30,10 @@ public class DossierStatusPersistenceService { private final DossierStatusRepository dossierStatusRepository; private final DossierTemplatePersistenceService dossierTemplatePersistenceService; + @Transactional public DossierStatusEntity createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest createOrUpdateDossierStatusRequest) { + if (StringUtils.isBlank(createOrUpdateDossierStatusRequest.getName())) { throw new BadRequestException("Dossier Status Name cannot be empty"); } @@ -36,14 +41,13 @@ public class DossierStatusPersistenceService { if (createOrUpdateDossierStatusRequest.getDossierStatusId() != null) { //update Optional dossierStatus = dossierStatusRepository.findById(createOrUpdateDossierStatusRequest.getDossierStatusId()); if (dossierStatus.isPresent()) { - validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), createOrUpdateDossierStatusRequest.getDossierTemplateId(), + validateDossierTemplateNameIsUnique(createOrUpdateDossierStatusRequest.getName(), + createOrUpdateDossierStatusRequest.getDossierTemplateId(), createOrUpdateDossierStatusRequest.getDossierStatusId()); - if (createOrUpdateDossierStatusRequest.getRank() != dossierStatus.get().getRank() - && dossierStatusRepository.getDuplicateRanks(dossierStatus.get().getDossierTemplateId(), - createOrUpdateDossierStatusRequest.getRank()) > 0) { + if (createOrUpdateDossierStatusRequest.getRank() != dossierStatus.get().getRank() && dossierStatusRepository.getDuplicateRanks(dossierStatus.get() + .getDossierTemplateId(), createOrUpdateDossierStatusRequest.getRank()) > 0) { // in case of duplicate ranks, increase the ranks - dossierStatusRepository.adjustRanksForDossierTemplate(dossierStatus.get().getDossierTemplateId(), - createOrUpdateDossierStatusRequest.getRank()); + dossierStatusRepository.adjustRanksForDossierTemplate(dossierStatus.get().getDossierTemplateId(), createOrUpdateDossierStatusRequest.getRank()); } BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus.get()); return dossierStatus.get(); @@ -57,10 +61,8 @@ public class DossierStatusPersistenceService { BeanUtils.copyProperties(createOrUpdateDossierStatusRequest, dossierStatus); var dossierTemplate = dossierTemplatePersistenceService.getDossierTemplate(createOrUpdateDossierStatusRequest.getDossierTemplateId()); // in case of duplicate ranks, increase the ranks - if (dossierStatusRepository.getDuplicateRanks(createOrUpdateDossierStatusRequest.getDossierTemplateId(), - createOrUpdateDossierStatusRequest.getRank()) > 0) { - dossierStatusRepository.adjustRanksForDossierTemplate(createOrUpdateDossierStatusRequest.getDossierTemplateId(), - createOrUpdateDossierStatusRequest.getRank()); + if (dossierStatusRepository.getDuplicateRanks(createOrUpdateDossierStatusRequest.getDossierTemplateId(), createOrUpdateDossierStatusRequest.getRank()) > 0) { + dossierStatusRepository.adjustRanksForDossierTemplate(createOrUpdateDossierStatusRequest.getDossierTemplateId(), createOrUpdateDossierStatusRequest.getRank()); } var loadedDossierStatus = dossierStatusRepository.save(dossierStatus); loadedDossierStatus.setDossierTemplate(dossierTemplate); @@ -69,22 +71,32 @@ public class DossierStatusPersistenceService { } } + public List getAllDossierStatusForTemplate(String dossierTemplateId) { + return dossierStatusRepository.getAllDossierStatusForDossierTemplate(Collections.singletonList(dossierTemplateId)); } + public List getAllDossierStatuses(List dossierTemplateIds) { + return dossierStatusRepository.getAllDossierStatusForDossierTemplate(dossierTemplateIds); } + public DossierStatusInfo getDossierStatusInfo(String dossierStatusId) { - return dossierStatusRepository.findProjectionById(dossierStatusId).orElseThrow(() -> new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, dossierStatusId))); + + return dossierStatusRepository.findProjectionById(dossierStatusId) + .orElseThrow(() -> new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, dossierStatusId))); } + public DossierStatusEntity getDossierStatus(String dossierStatusId) { + return dossierStatusRepository.findById(dossierStatusId).orElseThrow(() -> new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, dossierStatusId))); } + @Transactional public void deleteDossierStatus(String dossierStatusId, String replaceDossierStatusId) { @@ -96,7 +108,8 @@ public class DossierStatusPersistenceService { DossierStatusEntity replaceDossierStatusEntity = null; if (replaceDossierStatusId != null) { - replaceDossierStatusEntity = dossierStatusRepository.findById(replaceDossierStatusId).orElseThrow(() -> new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, replaceDossierStatusId))); + replaceDossierStatusEntity = dossierStatusRepository.findById(replaceDossierStatusId) + .orElseThrow(() -> new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, replaceDossierStatusId))); } if (replaceDossierStatusEntity != null && !replaceDossierStatusEntity.getDossierTemplateId().equals(toDeleteDossierStatus.getDossierTemplateId())) { @@ -114,11 +127,14 @@ public class DossierStatusPersistenceService { } + private void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId, String dossierStatusId) { + getAllDossierStatusForTemplate(dossierTemplateId).forEach(existing -> { if (existing.getName().equals(dossierStatusName) && !existing.getId().equals(dossierStatusId)) { throw new ConflictException("DossierStatus name must be unique within the same dossier template"); } }); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java index 43fd142ad..bdd62b1b9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DossierTemplatePersistenceService.java @@ -54,7 +54,7 @@ public class DossierTemplatePersistenceService { throw new NotFoundException(String.format(DOSSIER_TEMPLATE_NOT_FOUND_MESSAGE, createOrUpdateDossierRequest.getDossierTemplateId())); } } else { - if(StringUtils.isEmpty(createOrUpdateDossierRequest.getName())) { + if (StringUtils.isEmpty(createOrUpdateDossierRequest.getName())) { throw new ConflictException("DossierTemplate name must be set"); } validateDossierTemplateNameIsUnique(createOrUpdateDossierRequest.getName()); @@ -144,5 +144,4 @@ public class DossierTemplatePersistenceService { } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java index 8fd378010..2771403c3 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java @@ -28,9 +28,14 @@ public class DownloadStatusPersistenceService { private final DownloadStatusRepository downloadStatusRepository; private final FileRepository fileRepository; - public void createStatus(String userId, String storageId, DossierEntity dossier, String filename, String mimeType, - List fileIds, Set downloadFileTypes) { + public void createStatus(String userId, + String storageId, + DossierEntity dossier, + String filename, + String mimeType, + List fileIds, + Set downloadFileTypes) { DownloadStatusEntity downloadStatus = new DownloadStatusEntity(); downloadStatus.setUserId(userId); @@ -39,12 +44,13 @@ public class DownloadStatusPersistenceService { downloadStatus.setMimeType(mimeType); downloadStatus.setDossier(dossier); downloadStatus.setCreationDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - downloadStatus.setFiles(fileIds!= null ? fileRepository.findAllById(fileIds) : new ArrayList<>()); - downloadStatus.setDownloadFileTypes(downloadFileTypes != null ?new HashSet<>(downloadFileTypes) : new HashSet<>()); + downloadStatus.setFiles(fileIds != null ? fileRepository.findAllById(fileIds) : new ArrayList<>()); + downloadStatus.setDownloadFileTypes(downloadFileTypes != null ? new HashSet<>(downloadFileTypes) : new HashSet<>()); downloadStatusRepository.save(downloadStatus); } + // use this to create a status for export dossier template. public void createStatus(String userId, String storageId, String filename, String mimeType) { @@ -59,33 +65,37 @@ public class DownloadStatusPersistenceService { } + @Transactional public void updateStatus(String storageId, DownloadStatusValue status, long fileSize) { + downloadStatusRepository.updateStatus(storageId, status, fileSize); } @Transactional public void updateLastDownload(String storageId) { + downloadStatusRepository.updateLastDownload(storageId, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } @Transactional public void deleteStatus(String storageId) { + downloadStatusRepository.deleteById(storageId); } public DownloadStatusEntity getStatus(String storageId) { - return downloadStatusRepository.findById(storageId).orElseThrow(() -> - new NotFoundException(String.format("DownloadStatus not found for storageId: %s", storageId))); + return downloadStatusRepository.findById(storageId).orElseThrow(() -> new NotFoundException(String.format("DownloadStatus not found for storageId: %s", storageId))); } public void updateStatusEntity(DownloadStatusEntity downloadStatusEntity) { + downloadStatusRepository.save(downloadStatusEntity); } @@ -96,10 +106,10 @@ public class DownloadStatusPersistenceService { } + public List getStatus() { return downloadStatusRepository.findAll(); } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/EntryPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/EntryPersistenceService.java index e777d8916..b3d7deb0d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/EntryPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/EntryPersistenceService.java @@ -1,5 +1,13 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.BaseDictionaryEntry; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryFalsePositiveEntryEntity; @@ -10,14 +18,9 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; import com.iqser.red.service.persistence.management.v1.processor.utils.jdbc.JDBCWriteUtils; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.transaction.Transactional; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; @Service @Slf4j @@ -30,9 +33,9 @@ public class EntryPersistenceService { private final FalseRecommendationEntryRepository falseRecommendationEntryRepository; private final JDBCWriteUtils jdbcWriteUtils; + @Transactional - public void deleteEntries(String typeId, List values, long version, - DictionaryEntryType dictionaryEntryType) { + public void deleteEntries(String typeId, List values, long version, DictionaryEntryType dictionaryEntryType) { switch (dictionaryEntryType) { case ENTRY: @@ -78,7 +81,9 @@ public class EntryPersistenceService { return null; } + public void deleteAllEntriesForTypeId(String typeId, long version, DictionaryEntryType dictionaryEntryType) { + switch (dictionaryEntryType) { case ENTRY: entryRepository.deleteAllEntriesForTypeId(typeId, version); @@ -92,6 +97,7 @@ public class EntryPersistenceService { } } + public void addEntries(String typeId, Set entries, long version, DictionaryEntryType dictionaryEntryType) { var type = typeRepository.getById(typeId); @@ -145,9 +151,12 @@ public class EntryPersistenceService { } } - public void cloneEntries(String originalTypeId, String newTypeId){ + + public void cloneEntries(String originalTypeId, String newTypeId) { + entryRepository.cloneEntries(originalTypeId, newTypeId); falseRecommendationEntryRepository.cloneEntries(originalTypeId, newTypeId); falsePositiveEntryRepository.cloneEntries(originalTypeId, newTypeId); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java index c8bd3500f..c0f9f9181 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileAttributeConfigPersistenceService.java @@ -1,5 +1,17 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.text.WordUtils; +import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; @@ -9,14 +21,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributeConfigRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesGeneralConfigurationRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileAttributesRepository; -import lombok.RequiredArgsConstructor; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.text.WordUtils; -import org.springframework.stereotype.Service; -import javax.transaction.Transactional; -import java.util.*; -import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor @@ -27,8 +33,10 @@ public class FileAttributeConfigPersistenceService { private final DossierTemplateRepository dossierTemplateRepository; private final FileAttributesRepository fileAttributesRepository; + @Transactional public FileAttributeConfigEntity addOrUpdateFileAttribute(String dossierTemplateId, FileAttributeConfigEntity fileAttributeConfig) { + var dossierTemplate = dossierTemplateRepository.getOne(dossierTemplateId); fileAttributeConfig.setDossierTemplate(dossierTemplate); if (fileAttributeConfig.isPrimaryAttribute()) { @@ -65,21 +73,28 @@ public class FileAttributeConfigPersistenceService { } } + @Transactional public void updatePrimaryAttribute(String fileAttribute) { + fileAttributeConfigRepository.updatePrimaryAttributeValueToTrue(fileAttribute); } + public FileAttributesGeneralConfigurationEntity setFileAttributesGeneralConfig(String dossierTemplateId, FileAttributesGeneralConfigurationEntity fileAttributesConfig) { + fileAttributesConfig.setDossierTemplateId(dossierTemplateId); fileAttributesConfig.setDossierTemplate(dossierTemplateRepository.getOne(dossierTemplateId)); return fileAttributesGeneralConfigurationRepository.save(fileAttributesConfig); } + public FileAttributesGeneralConfigurationEntity getFileAttributesGeneralConfiguration(String dossierTemplateId) { + return fileAttributesGeneralConfigurationRepository.findById(dossierTemplateId).orElseThrow(() -> new NotFoundException("File Attribute Config not found")); } + @Transactional public List setFileAttributesConfig(String dossierTemplateId, List fileAttributesConfig) { @@ -87,7 +102,6 @@ public class FileAttributeConfigPersistenceService { var currentConfigs = fileAttributeConfigRepository.findByDossierTemplateId(dossierTemplateId); Set configsToRemove = currentConfigs.stream().filter(c -> !toSetIds.contains(c.getId())).collect(Collectors.toSet()); - fileAttributesConfig.forEach(fac -> addOrUpdateFileAttribute(dossierTemplateId, fac)); configsToRemove.forEach(ctr -> { @@ -98,40 +112,50 @@ public class FileAttributeConfigPersistenceService { return getFileAttributes(dossierTemplateId); } + @Transactional public void deleteFileAttribute(String fileAttributeId) { + fileAttributesRepository.deleteByFileAttributeConfigId(fileAttributeId); fileAttributeConfigRepository.deleteById(fileAttributeId); } + @Transactional public void deleteFileAttributes(List fileAttributeIds) { + fileAttributeIds.forEach(fileAttributeId -> { fileAttributesRepository.deleteByFileAttributeConfigId(fileAttributeId); fileAttributeConfigRepository.deleteById(fileAttributeId); }); } + public List getFileAttributes(String dossierTemplateId) { + return fileAttributeConfigRepository.findByDossierTemplateId(dossierTemplateId); } + public String getFileAttributeByIdOrName(String dossierTemplateId, String fileAttributeId, String label) { Optional result = fileAttributeConfigRepository.findByIdOrDossierTemplateIdAndLabel(dossierTemplateId, fileAttributeId, label); return result.isPresent() ? result.get().getId() : null; } + private void setPlaceholder(FileAttributeConfigEntity fileAttributeConfig) { + if (fileAttributeConfig.getPlaceholder() == null || fileAttributeConfig.getPlaceholder().isEmpty()) { String placeholder = "{{file.attribute." + StringUtils.remove(WordUtils.capitalizeFully(fileAttributeConfig.getLabel(), ' '), " ") + "}}"; fileAttributeConfig.setPlaceholder(placeholder); } } + private void uniqueLabelAndPlaceholder(FileAttributeConfigEntity fileAttributeConfig) { - getFileAttributes(fileAttributeConfig.getDossierTemplate().getId()).stream().filter( - d -> !d.getId().equals(fileAttributeConfig.getId())).forEach(other -> { + + getFileAttributes(fileAttributeConfig.getDossierTemplate().getId()).stream().filter(d -> !d.getId().equals(fileAttributeConfig.getId())).forEach(other -> { if (other.getLabel().equalsIgnoreCase(fileAttributeConfig.getLabel())) { throw new ConflictException("Label already exists."); } @@ -141,4 +165,5 @@ public class FileAttributeConfigPersistenceService { }); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java index cd5a1c8a4..8ac3dc2e2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/FileStatusPersistenceService.java @@ -1,5 +1,18 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; @@ -10,19 +23,9 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import javax.transaction.Transactional; -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; @Slf4j @Service @@ -61,21 +64,42 @@ public class FileStatusPersistenceService { if (isFileDeleted(fileId)) { return; } - fileRepository.updateProcessingStatus(fileId, ProcessingStatus.PRE_PROCESSED, OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), hasHighlights, fileSize, calculateProcessingErrorCounter(fileId, ProcessingStatus.PRE_PROCESSED)); + fileRepository.updateProcessingStatus(fileId, + ProcessingStatus.PRE_PROCESSED, + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + hasHighlights, + fileSize, + calculateProcessingErrorCounter(fileId, ProcessingStatus.PRE_PROCESSED)); } @Transactional - public void updateProcessingStatus(String fileId, int numberOfPages, long dictionaryVersion, long rulesVersion, long legalBasisVersion, long duration, - long dossierDictionaryVersion, int analysisVersion, int analysisNumber) { + public void updateProcessingStatus(String fileId, + int numberOfPages, + long dictionaryVersion, + long rulesVersion, + long legalBasisVersion, + long duration, + long dossierDictionaryVersion, + int analysisVersion, + int analysisNumber) { if (isFileDeleted(fileId)) { return; } - fileRepository.updateProcessingStatus(fileId, numberOfPages, ProcessingStatus.PROCESSED, dictionaryVersion, rulesVersion, legalBasisVersion, duration, dossierDictionaryVersion, analysisVersion, OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), analysisNumber, calculateProcessingErrorCounter(fileId, ProcessingStatus.PROCESSED)); + fileRepository.updateProcessingStatus(fileId, + numberOfPages, + ProcessingStatus.PROCESSED, + dictionaryVersion, + rulesVersion, + legalBasisVersion, + duration, + dossierDictionaryVersion, + analysisVersion, + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + analysisNumber, + calculateProcessingErrorCounter(fileId, ProcessingStatus.PROCESSED)); } @@ -96,8 +120,11 @@ public class FileStatusPersistenceService { return; } if (approval) { - fileRepository.updateWorkflowStatus(fileId, workflowStatus, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), true); + fileRepository.updateWorkflowStatus(fileId, + workflowStatus, + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + true); } else { fileRepository.updateWorkflowStatus(fileId, workflowStatus, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), null); } @@ -107,8 +134,8 @@ public class FileStatusPersistenceService { @Transactional public void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, int processingErrorCount) { - fileRepository.updateProcessingStatus(fileId, processingStatus, OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), processingErrorCount); + + fileRepository.updateProcessingStatus(fileId, processingStatus, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), processingErrorCount); } @@ -120,11 +147,16 @@ public class FileStatusPersistenceService { } if (processingStatus == ProcessingStatus.PROCESSED) { // In case the file is updated to "processed", "lastProcessed" date should be updated to "now" - fileRepository.updateProcessingStatus(fileId, processingStatus, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), calculateProcessingErrorCounter(fileId, ProcessingStatus.PROCESSED)); + fileRepository.updateProcessingStatus(fileId, + processingStatus, + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + calculateProcessingErrorCounter(fileId, ProcessingStatus.PROCESSED)); } else { - fileRepository.updateProcessingStatus(fileId, processingStatus, OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), calculateProcessingErrorCounter(fileId, processingStatus)); + fileRepository.updateProcessingStatus(fileId, + processingStatus, + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + calculateProcessingErrorCounter(fileId, processingStatus)); } } @@ -163,8 +195,11 @@ public class FileStatusPersistenceService { if (isFileDeleted(fileId)) { return; } - fileRepository.setUpdateStatusIndexingSuccessful(fileId, ProcessingStatus.PROCESSED, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), calculateProcessingErrorCounter(fileId, ProcessingStatus.PROCESSED)); + fileRepository.setUpdateStatusIndexingSuccessful(fileId, + ProcessingStatus.PROCESSED, + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + calculateProcessingErrorCounter(fileId, ProcessingStatus.PROCESSED)); } @@ -226,11 +261,13 @@ public class FileStatusPersistenceService { return fileRepository.findByDossierId(dossierId); } + public List getStatusesForDossiersAndTimePeriod(Set dossierIds, OffsetDateTime start, OffsetDateTime end) { return fileRepository.findByDossierIdInAndAddedBetween(dossierIds, start, end); } + public List getActiveFiles(String dossierId) { return fileRepository.findByDossierId(dossierId).stream().filter(f -> !f.isSoftOrHardDeleted()).collect(Collectors.toList()); @@ -331,18 +368,26 @@ public class FileStatusPersistenceService { int countUpdate; if (keepManualRedactions) { - countUpdate = fileRepository.overwriteFileAndKeepManualRedactions(fileId, filename, uploader, ProcessingStatus.UNPROCESSED, OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + countUpdate = fileRepository.overwriteFileAndKeepManualRedactions(fileId, + filename, + uploader, + ProcessingStatus.UNPROCESSED, + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } else { fileRepository.findById(fileId).ifPresent(file -> file.setExcludedPages(new HashSet<>())); - countUpdate = fileRepository.overwriteFile(fileId, filename, uploader, ProcessingStatus.UNPROCESSED, WorkflowStatus.NEW, OffsetDateTime.now() - .truncatedTo(ChronoUnit.MILLIS), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); + countUpdate = fileRepository.overwriteFile(fileId, + filename, + uploader, + ProcessingStatus.UNPROCESSED, + WorkflowStatus.NEW, + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS), + OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); deleteFileAttributes(fileId); } - if (countUpdate == 0) { throw new NotFoundException("Unknown file=" + fileId); } @@ -443,11 +488,14 @@ public class FileStatusPersistenceService { }).collect(Collectors.toList()); } + public void updateOCRStatus(OCRStatusUpdateResponse response) { + fileRepository.updateOCRStatus(response.getFileId(), response.getNumberOfPagesToOCR(), response.getNumberOfOCRedPages(), response.isOcrFinished() ? OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS) : null, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java index 6f9021646..7c74457dd 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/LegalBasisMappingPersistenceService.java @@ -1,30 +1,32 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisMappingEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -import javax.transaction.Transactional; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; - @Service @RequiredArgsConstructor public class LegalBasisMappingPersistenceService { - private final LegalBasisMappingRepository legalBasisMappingRepository; @Transactional public void deleteLegalBasis(String dossierTemplateId, List legalBasisNames) { + var mapping = getLegalBasisMappingOrCreate(dossierTemplateId); var filteredLegalBasis = mapping.getLegalBasis().stream().filter(l -> !legalBasisNames.contains(l.getName())).collect(Collectors.toList()); @@ -34,18 +36,18 @@ public class LegalBasisMappingPersistenceService { } + @Transactional public void addOrUpdateLegalBasis(String dossierTemplateId, LegalBasis legalBasis) { + var mapping = getLegalBasisMappingOrCreate(dossierTemplateId); mapping.getLegalBasis().stream().filter(l -> l.getName().equals(legalBasis.getName())).findAny().ifPresentOrElse(existingBasis -> { - existingBasis.setReason(legalBasis.getReason()); - existingBasis.setDescription(legalBasis.getDescription()); - }, () -> mapping.getLegalBasis().add(LegalBasisEntity.builder() - .name(legalBasis.getName()) - .description(legalBasis.getDescription()) - .reason(legalBasis.getReason()).build())); - + existingBasis.setReason(legalBasis.getReason()); + existingBasis.setDescription(legalBasis.getDescription()); + }, + () -> mapping.getLegalBasis() + .add(LegalBasisEntity.builder().name(legalBasis.getName()).description(legalBasis.getDescription()).reason(legalBasis.getReason()).build())); mapping.setVersion(mapping.getVersion() + 1); legalBasisMappingRepository.save(mapping); @@ -73,10 +75,13 @@ public class LegalBasisMappingPersistenceService { @Transactional public List getLegalBasisMapping(String dossierTemplateId) { + return getLegalBasisMappingOrCreate(dossierTemplateId).getLegalBasis(); } + private LegalBasisMappingEntity getLegalBasisMappingOrCreate(String dossierTemplateId) { + return legalBasisMappingRepository.findById(dossierTemplateId).orElseGet(() -> { // create on get if not present var lbm = new LegalBasisMappingEntity(); @@ -88,7 +93,10 @@ public class LegalBasisMappingPersistenceService { }); } + public long getVersion(String dossierTemplateId) { + return legalBasisMappingRepository.findById(dossierTemplateId).map(LegalBasisMappingEntity::getVersion).orElse(0L); } + } 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 1d7322930..b8096ee43 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 @@ -1,12 +1,14 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.util.List; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.notification.NotificationEntity; import com.iqser.red.service.persistence.service.v1.api.model.notification.EmailNotificationType; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.List; @Slf4j @Service @@ -27,20 +29,25 @@ public class NotificationEmailService { } + private void sendWeeklySummaryEmail(String userId, List notifications) { + log.info("Should send weekly notification summary email for {}", userId); // TODO } + private void sendDailySummaryEmail(String userId, List notifications) { + log.info("Should send daily notification summary email for {}", userId); // TODO } + private void sendDailyEmail(String userId, List notifications) { + log.info("Should send daily notification email for {}", userId); // TODO } - } 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 8f1452811..a6473be89 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 @@ -1,19 +1,22 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.List; + +import javax.transaction.Transactional; + +import org.springframework.beans.BeanUtils; +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.model.audit.AddNotificationRequest; import com.iqser.red.service.persistence.service.v1.api.model.notification.EmailNotificationType; + import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import javax.transaction.Transactional; -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.List; @Service @RequiredArgsConstructor @@ -25,13 +28,17 @@ public class NotificationPersistenceService { private final NotificationEmailService notificationEmailService; + public boolean hasNewNotificationsSince(String userId, OffsetDateTime since) { + notificationPreferencesPersistenceService.initializePreferencesIfNotExists(userId); return notificationRepository.hasInAppNotificationForUser(userId, since.truncatedTo(ChronoUnit.MILLIS)) > 0; } + @SneakyThrows public void insertNotification(AddNotificationRequest addNotificationRequest) { + var notification = new NotificationEntity(); BeanUtils.copyProperties(addNotificationRequest, notification); notification.setCreationDate(OffsetDateTime.now()); @@ -41,14 +48,15 @@ public class NotificationPersistenceService { notification.setSoftDeleted(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } - if (notificationPreferences.isEmailNotificationsEnabled() && notificationPreferences.getEmailNotifications().contains(notification.getNotificationType()) - && notificationPreferences.getEmailNotificationType() == EmailNotificationType.DAILY) { + if (notificationPreferences.isEmailNotificationsEnabled() && notificationPreferences.getEmailNotifications() + .contains(notification.getNotificationType()) && notificationPreferences.getEmailNotificationType() == EmailNotificationType.DAILY) { notificationEmailService.sendNotificationEmail(notification.getUserId(), EmailNotificationType.DAILY, List.of(notification)); } notificationRepository.save(notification); } + @Transactional public void setSeenDate(String userId, long notificationId, OffsetDateTime seenDate) { @@ -61,14 +69,17 @@ public class NotificationPersistenceService { @Transactional public void setReadDate(String userId, long notificationId, OffsetDateTime readDate) { + int countUpdate = notificationRepository.setReadDate(userId, notificationId, readDate); if (countUpdate == 0) { throw new NotFoundException("Notification not found"); } } + @Transactional public void softDelete(String userId, long notificationId) { + int countUpdate = notificationRepository.softDelete(userId, notificationId, OffsetDateTime.now()); if (countUpdate == 0) { throw new NotFoundException("Notification not found"); @@ -78,16 +89,19 @@ public class NotificationPersistenceService { @Transactional public void hardDelete(long notificationId) { + notificationRepository.deleteById(notificationId); } public List getNotificationsForEmailSummary(String userId, OffsetDateTime from, OffsetDateTime to) { + return notificationRepository.findEmailNotificationsForUserId(userId, from, to); } public List getNotifications(String userId, boolean includeSeen) { + notificationPreferencesPersistenceService.initializePreferencesIfNotExists(userId); if (includeSeen) { return notificationRepository.findAppNotificationsForUser(userId); @@ -97,5 +111,4 @@ public class NotificationPersistenceService { } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ReportTemplatePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ReportTemplatePersistenceService.java index 98236bc95..77d891973 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ReportTemplatePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/ReportTemplatePersistenceService.java @@ -1,18 +1,20 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.List; + +import javax.transaction.Transactional; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.ReportTemplateRepository; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -import javax.transaction.Transactional; - -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.List; @Service @RequiredArgsConstructor @@ -22,8 +24,7 @@ public class ReportTemplatePersistenceService { private final DossierTemplateRepository dossierTemplateRepository; - public void insert(String dossierTemplateId, String templateId, String storageId, String templateName, - boolean activeByDefault, boolean multiFileReport) { + public void insert(String dossierTemplateId, String templateId, String storageId, String templateName, boolean activeByDefault, boolean multiFileReport) { ReportTemplateEntity reportTemplate = new ReportTemplateEntity(); reportTemplate.setTemplateId(templateId); @@ -36,34 +37,41 @@ public class ReportTemplatePersistenceService { reportTemplateRepository.save(reportTemplate); - } + @Transactional public void delete(String templateId) { + reportTemplateRepository.deleteById(templateId); } + public List findByDossierTemplateId(String dossierTemplateId) { return reportTemplateRepository.findAllByDossierTemplateId(dossierTemplateId); } + public ReportTemplateEntity find(String templateId) { return reportTemplateRepository.findById(templateId).orElseThrow(() -> new NotFoundException("Report Template not found: " + templateId)); } + @Transactional public void updateTemplate(String dossierTemplateId, String templateId, ReportTemplateUpdateRequest updateRequest) { - int countUpdate = reportTemplateRepository.updateReportTemplate(dossierTemplateId, templateId, updateRequest.getFileName(), - updateRequest.isMultiFileReport(), updateRequest.isActiveByDefault()); + + int countUpdate = reportTemplateRepository.updateReportTemplate(dossierTemplateId, + templateId, + updateRequest.getFileName(), + updateRequest.isMultiFileReport(), + updateRequest.isActiveByDefault()); if (countUpdate == 0) { throw new NotFoundException("Report Template not found for dossier template Id: " + dossierTemplateId + " and templateId: " + templateId); } } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java index 229d7a5f0..e763dac89 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/RulesPersistenceService.java @@ -1,29 +1,26 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import javax.transaction.Transactional; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.RuleSetEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.RuleSetRepository; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import javax.transaction.Transactional; +import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor @SuppressWarnings("PMD.TooManyStaticImports") public class RulesPersistenceService { - public static final String DEFAULT_RULES = "" + - "package drools\n" + - "\n" + - "import com.iqser.red.service.redaction.v1.server.redaction.model.Section\n" + - "\n" + - "global Section section\n" + - "\n" + - "// --------------------------------------- Your rules below this line--------------------------------------------------"; + public static final String DEFAULT_RULES = "" + "package drools\n" + "\n" + "import com.iqser.red.service.redaction.v1.server.redaction.model.Section\n" + "\n" + "global Section section\n" + "\n" + "// --------------------------------------- Your rules below this line--------------------------------------------------"; private final RuleSetRepository ruleSetRepository; + public RuleSetEntity getRules(String dossierTemplateId) { + return ruleSetRepository.findById(dossierTemplateId).orElseGet(() -> { RuleSetEntity ruleSet = new RuleSetEntity(); ruleSet.setDossierTemplateId(dossierTemplateId); @@ -34,6 +31,7 @@ public class RulesPersistenceService { }); } + @Transactional public void setRules(String rules, String dossierTemplateId) { @@ -51,5 +49,4 @@ public class RulesPersistenceService { } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SMTPConfigurationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SMTPConfigurationService.java index 1d8d4be46..1c4eaeda8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SMTPConfigurationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SMTPConfigurationService.java @@ -1,13 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence; +import javax.transaction.Transactional; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.SMTPConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.SMTPRepository; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import javax.transaction.Transactional; @Slf4j @Service @@ -16,16 +18,23 @@ public class SMTPConfigurationService { private final SMTPRepository smtpRepository; + @Transactional public void deleteConfiguration() { + smtpRepository.deleteById(SMTPConfigurationEntity.ID); } + public SMTPConfigurationEntity getConfiguration() { + return smtpRepository.findById(SMTPConfigurationEntity.ID).orElseThrow(() -> new NotFoundException("SMTP Configuration not found")); } + public SMTPConfigurationEntity saveConfiguration(SMTPConfigurationEntity smtpConfiguration) { + return smtpRepository.save(smtpConfiguration); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java index c8c9c7ce6..9e441dcbb 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/AddRedactionPersistenceService.java @@ -3,7 +3,6 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persis import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; import java.util.Set; @@ -119,7 +118,11 @@ public class AddRedactionPersistenceService { @Transactional - public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus, boolean isAddOrRemoveFromDictionary, boolean isAddOrRemoveFromDossierDictionary) { + public void updateStatus(String fileId, + String annotationId, + AnnotationStatus annotationStatus, + boolean isAddOrRemoveFromDictionary, + boolean isAddOrRemoveFromDossierDictionary) { manualRedactionRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus, isAddOrRemoveFromDictionary, isAddOrRemoveFromDossierDictionary); } @@ -137,4 +140,5 @@ public class AddRedactionPersistenceService { manualRedactionRepository.markAsProcessed(new AnnotationEntityId(e.getAnnotationId(), e.getFileId()), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java index a3d685399..2f7d71092 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ForceRedactionPersistenceService.java @@ -24,7 +24,6 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class ForceRedactionPersistenceService { - private final ForceRedactionRepository forceRedactionRepository; @@ -37,32 +36,39 @@ public class ForceRedactionPersistenceService { forceRedactionRepository.saveAndFlush(manualForceRedaction); } + @Transactional public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus) { + forceRedactionRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus); } @Transactional public void hardDelete(String fileId, String annotationId) { + forceRedactionRepository.deleteById(new AnnotationEntityId(annotationId, fileId)); } + @Transactional public void softDelete(String fileId, String annotationId, OffsetDateTime softDeleteTime) { + forceRedactionRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), softDeleteTime); } + @Transactional public void undelete(String fileId, String annotationId) { + forceRedactionRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), null); } + public ManualForceRedactionEntity findForceRedaction(String fileId, String annotationId) { return forceRedactionRepository.findByIdAndNotSoftDeleted(new AnnotationEntityId(annotationId, fileId)) - .orElseThrow(() -> - new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId)); + .orElseThrow(() -> new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId)); } @@ -71,7 +77,10 @@ public class ForceRedactionPersistenceService { return new HashSet<>(forceRedactionRepository.findByFileIdIncludeDeletions(fileId, includeDeletions)); } + public void markAsProcessed(ManualForceRedaction e) { + forceRedactionRepository.markAsProcessed(new AnnotationEntityId(e.getAnnotationId(), e.getFileId()), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ImageRecategorizationPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ImageRecategorizationPersistenceService.java index 00c25eebb..c50c45d3f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ImageRecategorizationPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/ImageRecategorizationPersistenceService.java @@ -25,8 +25,8 @@ public class ImageRecategorizationPersistenceService { private final ImageRecategorizationRepository imageRecategorizationRepository; - public void insert(String fileId, ImageRecategorizationRequest imageRecategorizationRequest) { + public void insert(String fileId, ImageRecategorizationRequest imageRecategorizationRequest) { ManualImageRecategorizationEntity manualImageRecategorization = new ManualImageRecategorizationEntity(); manualImageRecategorization.setId(new AnnotationEntityId(imageRecategorizationRequest.getAnnotationId(), fileId)); @@ -36,33 +36,39 @@ public class ImageRecategorizationPersistenceService { } + @Transactional public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus) { imageRecategorizationRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus); } + @Transactional public void hardDelete(String fileId, String annotationId) { + imageRecategorizationRepository.deleteById(new AnnotationEntityId(annotationId, fileId)); } + @Transactional public void softDelete(String fileId, String annotationId, OffsetDateTime softDeleteTime) { imageRecategorizationRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), softDeleteTime); } + @Transactional public void undelete(String fileId, String annotationId) { + imageRecategorizationRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), null); } + public ManualImageRecategorizationEntity findRecategorization(String fileId, String annotationId) { return imageRecategorizationRepository.findByIdAndNotSoftDeleted(new AnnotationEntityId(annotationId, fileId)) - .orElseThrow(() -> - new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId)); + .orElseThrow(() -> new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId)); } @@ -72,7 +78,10 @@ public class ImageRecategorizationPersistenceService { } + public void markAsProcessed(ManualImageRecategorization e) { + imageRecategorizationRepository.markAsProcessed(new AnnotationEntityId(e.getAnnotationId(), e.getFileId()), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java index 08d607add..4c6bff0e9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/LegalBasisChangePersistenceService.java @@ -33,7 +33,7 @@ public class LegalBasisChangePersistenceService { BeanUtils.copyProperties(legalBasisChangeRequest, manualLegalBasisChange); manualLegalBasisChange.setRequestDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); - if(legalBasisChangeRequest.getStatus() == AnnotationStatus.APPROVED) { + if (legalBasisChangeRequest.getStatus() == AnnotationStatus.APPROVED) { manualLegalBasisChange.setProcessedDate(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } @@ -41,8 +41,10 @@ public class LegalBasisChangePersistenceService { } + @Transactional public void hardDelete(String fileId, String annotationId) { + legalBasisChangeRepository.deleteById(new AnnotationEntityId(annotationId, fileId)); } @@ -53,8 +55,10 @@ public class LegalBasisChangePersistenceService { legalBasisChangeRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), softDeleteTime); } + @Transactional public void undelete(String fileId, String annotationId) { + legalBasisChangeRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), null); } @@ -62,14 +66,14 @@ public class LegalBasisChangePersistenceService { @Transactional public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus) { - legalBasisChangeRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus, - OffsetDateTime.now()); + legalBasisChangeRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus, OffsetDateTime.now()); } + public ManualLegalBasisChangeEntity findLegalBasisChange(String fileId, String annotationId) { + return legalBasisChangeRepository.findByIdAndNotSoftDeleted(new AnnotationEntityId(annotationId, fileId)) - .orElseThrow(() -> - new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId)); + .orElseThrow(() -> new NotFoundException("Unknown file/annotation combination: " + fileId + "/" + annotationId)); } @@ -79,5 +83,4 @@ public class LegalBasisChangePersistenceService { } - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java index 0b49c4379..176288c6e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/annotations/RemoveRedactionPersistenceService.java @@ -21,16 +21,14 @@ import com.iqser.red.service.persistence.service.v1.api.model.annotations.entity import lombok.RequiredArgsConstructor; - @Service @RequiredArgsConstructor public class RemoveRedactionPersistenceService { - private final RemoveRedactionRepository removeRedactionRepository; - public void insert(String fileId, RemoveRedactionRequest removeRedactionRequest) { + public void insert(String fileId, RemoveRedactionRequest removeRedactionRequest) { IdRemovalEntity idRemoval = new IdRemovalEntity(); idRemoval.setId(new AnnotationEntityId(removeRedactionRequest.getAnnotationId(), fileId)); @@ -73,24 +71,35 @@ public class RemoveRedactionPersistenceService { removeRedactionRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), softDeleteTime); } + @Transactional public void undelete(String fileId, String annotationId) { + removeRedactionRepository.updateSoftDelete(new AnnotationEntityId(annotationId, fileId), null); } + @Transactional public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus) { + removeRedactionRepository.updateStatus(new AnnotationEntityId(annotationId, fileId), annotationStatus, OffsetDateTime.now()); } + @Transactional public void updateStatus(String fileId, String annotationId, AnnotationStatus annotationStatus, boolean isAddOrRemoveFromDictionary) { + removeRedactionRepository.updateStatusAndRemoveFromDictionary(new AnnotationEntityId(annotationId, fileId), - annotationStatus, OffsetDateTime.now(), isAddOrRemoveFromDictionary); + annotationStatus, + OffsetDateTime.now(), + isAddOrRemoveFromDictionary); } + @Transactional public void markAsProcessed(IdRemoval e) { + removeRedactionRepository.markAsProcessed(new AnnotationEntityId(e.getAnnotationId(), e.getFileId()), OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/CurrentTenantIdentifierResolverImpl.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/CurrentTenantIdentifierResolverImpl.java index 7ea18277b..5d8fbd475 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/CurrentTenantIdentifierResolverImpl.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/CurrentTenantIdentifierResolverImpl.java @@ -10,6 +10,7 @@ public class CurrentTenantIdentifierResolverImpl implements CurrentTenantIdentif @Override public String resolveCurrentTenantIdentifier() { + String tenantId = TenantContext.getTenantId(); if (tenantId != null && !tenantId.isEmpty()) { return tenantId; @@ -19,8 +20,11 @@ public class CurrentTenantIdentifierResolverImpl implements CurrentTenantIdentif } } + @Override public boolean validateExistingCurrentSessions() { + return true; } + } \ No newline at end of file diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/DynamicDataSourceBasedMultiTenantConnectionProvider.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/DynamicDataSourceBasedMultiTenantConnectionProvider.java index f2ecd4818..4be91740f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/DynamicDataSourceBasedMultiTenantConnectionProvider.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/DynamicDataSourceBasedMultiTenantConnectionProvider.java @@ -58,8 +58,7 @@ public class DynamicDataSourceBasedMultiTenantConnectionProvider extends Abstrac .build(new CacheLoader() { public DataSource load(String key) { - TenantEntity tenant = masterTenantRepository.findByTenantId(key) - .orElseThrow(() -> new RuntimeException("No such tenant: " + key)); + TenantEntity tenant = masterTenantRepository.findByTenantId(key).orElseThrow(() -> new RuntimeException("No such tenant: " + key)); return createAndConfigureDataSource(tenant); } }); @@ -88,9 +87,7 @@ public class DynamicDataSourceBasedMultiTenantConnectionProvider extends Abstrac String decryptedPassword = encryptionService.decrypt(tenant.getPassword()); - HikariDataSource ds = masterDataSourceProperties.initializeDataSourceBuilder() - .type(HikariDataSource.class) - .build(); + HikariDataSource ds = masterDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build(); ds.setUsername(tenant.getUsername()); ds.setPassword(decryptedPassword); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/repository/TenantRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/repository/TenantRepository.java index 948d39732..b1dcf06e9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/repository/TenantRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/mulitenancy/repository/TenantRepository.java @@ -12,4 +12,5 @@ public interface TenantRepository extends JpaRepository { @Query("select t from TenantEntity t where t.tenantId = :tenantId") Optional findByTenantId(@Param("tenantId") String tenantId); + } \ No newline at end of file diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/DossierCountByStatusProjection.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/DossierCountByStatusProjection.java index 47462ae4d..417f21d5c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/DossierCountByStatusProjection.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/DossierCountByStatusProjection.java @@ -4,6 +4,7 @@ public interface DossierCountByStatusProjection { int getCount(); + String getDossierStatusId(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FilePageCountsProjection.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FilePageCountsProjection.java index 98c98c09a..c5c92c2ce 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FilePageCountsProjection.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FilePageCountsProjection.java @@ -4,5 +4,7 @@ public interface FilePageCountsProjection { int getNumberOfExcludedPages(); + int getNumberOfAnalyzedPages(); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FileProcessingStatusProjection.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FileProcessingStatusProjection.java index 444087390..a28f5c11e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FileProcessingStatusProjection.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FileProcessingStatusProjection.java @@ -6,6 +6,7 @@ public interface FileProcessingStatusProjection { int getCount(); + ProcessingStatus getProcessingStatus(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FileWorkflowStatusProjection.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FileWorkflowStatusProjection.java index 96fa4d47f..aea0c6aa8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FileWorkflowStatusProjection.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/projection/FileWorkflowStatusProjection.java @@ -6,6 +6,7 @@ public interface FileWorkflowStatusProjection { int getCount(); + WorkflowStatus getWorkflowStatus(); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ApplicationConfigRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ApplicationConfigRepository.java index 111e99e4c..40ae977b6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ApplicationConfigRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ApplicationConfigRepository.java @@ -1,7 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ApplicationConfigurationEntity; import org.springframework.data.jpa.repository.JpaRepository; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ApplicationConfigurationEntity; + public interface ApplicationConfigRepository extends JpaRepository { + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/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 index b8c749a1f..4da24ce92 100644 --- 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 @@ -1,35 +1,43 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.audit.AuditEntity; -import com.iqser.red.service.persistence.service.v1.api.model.audit.CategoryModel; +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 java.time.OffsetDateTime; -import java.util.List; +import com.iqser.red.service.persistence.management.v1.processor.entity.audit.AuditEntity; +import com.iqser.red.service.persistence.service.v1.api.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.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/persistence/repository/ColorsRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ColorsRepository.java index b50cccbc5..0c088edb1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ColorsRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ColorsRepository.java @@ -1,7 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity; import org.springframework.data.jpa.repository.JpaRepository; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity; + public interface ColorsRepository extends JpaRepository { + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/CommentRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/CommentRepository.java index 9b1b87741..61bb92566 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/CommentRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/CommentRepository.java @@ -1,25 +1,29 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.CommentEntity; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; - import java.time.OffsetDateTime; import java.util.List; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; + +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.CommentEntity; + public interface CommentRepository extends JpaRepository { - @Query("select e from CommentEntity e where e.fileId = :fileId and e.annotationId = :annotationId " + - "and (:includeDeletions = true or e.softDeletedTime is null)") + @Query("select e from CommentEntity e where e.fileId = :fileId and e.annotationId = :annotationId " + "and (:includeDeletions = true or e.softDeletedTime is null)") List findByFileIdAndAnnotationId(String fileId, String annotationId, boolean includeDeletions); + @Query("select e from CommentEntity e where e.fileId = :fileId and (:includeDeletions = true or e.softDeletedTime is null)") List findByFileId(String fileId, boolean includeDeletions); + boolean existsByFileIdAndSoftDeletedTimeIsNull(String fileId); + @Modifying @Query("update CommentEntity c set c.softDeletedTime = :softDeleteTime where c.id = :id") int updateSoftDelete(long id, OffsetDateTime softDeleteTime); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DigitalSignatureRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DigitalSignatureRepository.java index abe88783e..d9b9561b5 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DigitalSignatureRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DigitalSignatureRepository.java @@ -8,10 +8,8 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur public interface DigitalSignatureRepository extends JpaRepository { - @Modifying - @Query("update DigitalSignatureEntity e set e.reason = :reason, e.location = :location, e.contactInfo = :contactInfo, e.certificateName= :certificateName " + - "where e.id = :id") + @Query("update DigitalSignatureEntity e set e.reason = :reason, e.location = :location, e.contactInfo = :contactInfo, e.certificateName= :certificateName " + "where e.id = :id") int updateDigitalSignature(String id, String reason, String location, String contactInfo, String certificateName); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeConfigRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeConfigRepository.java index ee2bef462..5c902ebdd 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeConfigRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeConfigRepository.java @@ -4,14 +4,15 @@ import java.util.List; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; -import org.springframework.data.jpa.repository.Query; public interface DossierAttributeConfigRepository extends JpaRepository { List findAllByDossierTemplateId(String dossierTemplateId); + @Query("select da from DossierAttributeConfigEntity da where da.dossierTemplate.id = :dossierTemplateId and (da.id = :dossierAttributeId or da.label = :label)") Optional findAttributeByIdOrDossierTemplateIdAndLabel(String dossierTemplateId, String dossierAttributeId, String label); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeRepository.java index 5e557ba4c..6ce061ca2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierAttributeRepository.java @@ -1,25 +1,30 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeEntity; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; -import java.util.List; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeEntity; public interface DossierAttributeRepository extends JpaRepository { List findByIdDossierId(String dossierId); + @Modifying(clearAutomatically = true, flushAutomatically = true) @Query("DELETE FROM DossierAttributeEntity e WHERE e.id.dossierId = :dossierId") void deleteByDossierId(String dossierId); + @Modifying(clearAutomatically = true, flushAutomatically = true) @Query("DELETE FROM DossierAttributeEntity e WHERE e.id.dossierAttributeConfigId = :id") void deleteByDossierAttributeConfigId(String id); + @Modifying @Query("update DossierAttributeEntity dae set dae.value = :dossierAttributeValue where dae.id = :dossierAttributeId") void updateDossierAttribute(DossierAttributeEntity.DossierAttributeEntityId dossierAttributeId, String dossierAttributeValue); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierRepository.java index 68653d493..9e95d9098 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierRepository.java @@ -1,72 +1,81 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.projection.DossierCountByStatusProjection; +import java.time.OffsetDateTime; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; -import java.time.OffsetDateTime; -import java.util.List; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.projection.DossierCountByStatusProjection; public interface DossierRepository extends JpaRepository { @Query("select d.id from DossierEntity d where d.lastUpdated > :since") List findDossierChangeByLastUpdatedIsAfter(OffsetDateTime since); + @Modifying - @Query("update DossierEntity d set d.softDeletedTime = null, d.lastUpdated = :lastUpdated where d.id = :dossierId" + - " and d.hardDeletedTime is null") + @Query("update DossierEntity d set d.softDeletedTime = null, d.lastUpdated = :lastUpdated where d.id = :dossierId" + " and d.hardDeletedTime is null") int undelete(String dossierId, OffsetDateTime lastUpdated); + @Modifying @Query("update DossierEntity d set d.softDeletedTime = :softDeletedTime, d.lastUpdated = :lastUpdated where d.id = :dossierId") void markDossierAsDeleted(String dossierId, OffsetDateTime softDeletedTime, OffsetDateTime lastUpdated); + @Modifying - @Query("update DossierEntity d set d.hardDeletedTime = :hardDeletedTime, d.lastUpdated = :lastUpdated, " + - "d.softDeletedTime = " + - "case " + - "when d.softDeletedTime is null then :hardDeletedTime " + - "else d.softDeletedTime " + - "end " + - "where d.id = :dossierId") + @Query("update DossierEntity d set d.hardDeletedTime = :hardDeletedTime, d.lastUpdated = :lastUpdated, " + "d.softDeletedTime = " + "case " + "when d.softDeletedTime is null then :hardDeletedTime " + "else d.softDeletedTime " + "end " + "where d.id = :dossierId") void hardDelete(String dossierId, OffsetDateTime hardDeletedTime, OffsetDateTime lastUpdated); + @Modifying @Query("update DossierEntity d set d.archivedTime = :archiveTime, d.lastUpdated = :archiveTime where d.id = :dossierId ") void archiveDossier(String dossierId, OffsetDateTime archiveTime); + @Modifying @Query("update DossierEntity d set d.lastUpdated = :lastUpdated, d.archivedTime = null where d.id = :dossierId") int unarchiveDossier(String dossierId, OffsetDateTime lastUpdated); + @Query("select count(d) from DossierEntity d where d.archivedTime is not null and d.softDeletedTime is null and d.hardDeletedTime is null and d.dossierTemplateId = :dossierTemplateId") int countArchived(String dossierTemplateId); + @Query("select count(d) from DossierEntity d where d.hardDeletedTime is null and d.softDeletedTime is not null and d.dossierTemplateId = :dossierTemplateId") int countSofDeleted(String dossierTemplateId); + @Query("select count(d) from DossierEntity d where d.archivedTime is null and d.softDeletedTime is null and d.hardDeletedTime is null and d.dossierTemplateId = :dossierTemplateId") int countActive(String dossierTemplateId); + @Query("select d.dossierStatusId as dossierStatusId, count(d) as count from DossierEntity d where d.archivedTime is null and d.softDeletedTime is null and d.hardDeletedTime is null and d.dossierTemplateId = :dossierTemplateId group by d.dossierStatusId") List countByDossierStatus(String dossierTemplateId); + @Query("select d.id from DossierEntity d where d.dossierTemplateId = :dossierTemplateId and d.archivedTime is null and d.softDeletedTime is null and d.hardDeletedTime is null") List findActiveDossierIdsForTemplate(String dossierTemplateId); + @Query("select d from DossierEntity d where d.dossierTemplateId = :dossierTemplateId") List findByDossierTemplateId(String dossierTemplateId); + @Modifying @Query("update DossierEntity d set d.watermarkId = null where d.watermarkId = :watermarkId") int countDeleteWatermark(long watermarkId); + @Modifying @Query("update DossierEntity d set d.previewWatermarkId = null where d.previewWatermarkId = :previewWatermarkId") int countDeletePreviewWatermark(long previewWatermarkId); + @Query("select count(d) from DossierEntity d where d.watermarkId = :watermarkId or d.previewWatermarkId = :watermarkId") int countDossiersWithWatermarkInUse(long watermarkId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierStatusRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierStatusRepository.java index 1ec58ccab..e1da1ed37 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierStatusRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierStatusRepository.java @@ -1,33 +1,36 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierStatusEntity; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; - import java.util.List; import java.util.Optional; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; + +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierStatusEntity; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; + public interface DossierStatusRepository extends JpaRepository { - @Query("select new com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo(s.id, s.name," + - "s.description, s.color, s.dossierTemplateId, s.rank, count(d)) from DossierStatusEntity s " + - "left outer join s.dossiers d where s.dossierTemplateId in (:dossierTemplateIds) group by s order by s.rank ASC") + @Query("select new com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo(s.id, s.name," + "s.description, s.color, s.dossierTemplateId, s.rank, count(d)) from DossierStatusEntity s " + "left outer join s.dossiers d where s.dossierTemplateId in (:dossierTemplateIds) group by s order by s.rank ASC") List getAllDossierStatusForDossierTemplate(List dossierTemplateIds); - @Query("select new com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo(s.id, s.name," + - "s.description, s.color, s.dossierTemplateId, s.rank, count(d)) from DossierStatusEntity s left outer join s.dossiers d where s.id = :dossierStatusId group by s") + + @Query("select new com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo(s.id, s.name," + "s.description, s.color, s.dossierTemplateId, s.rank, count(d)) from DossierStatusEntity s left outer join s.dossiers d where s.id = :dossierStatusId group by s") Optional findProjectionById(String dossierStatusId); + @Modifying @Query("update DossierStatusEntity d set d.rank = :newRank where d.id = :dossierStatusId") void updateRank(String dossierStatusId, int newRank); + @Modifying @Query("update DossierStatusEntity d set d.rank = d.rank + 1 where d.dossierTemplateId = :dossierTemplateId and d.rank >= :rank") void adjustRanksForDossierTemplate(String dossierTemplateId, int rank); + @Query("select count(d) from DossierStatusEntity d where d.dossierTemplateId = :dossierTemplateId and d.rank = :rankToCheck") int getDuplicateRanks(String dossierTemplateId, int rankToCheck); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java index da4575f29..a094c6793 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DossierTemplateRepository.java @@ -1,17 +1,20 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; - import java.util.List; import java.util.Optional; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; + public interface DossierTemplateRepository extends JpaRepository { @Query("select d from DossierTemplateEntity d where d.softDeleteTime is null") List findAllWhereDeletedIsFalse(); + @Query("select d from DossierTemplateEntity d where d.id = :dossierTemplateId and d.softDeleteTime is null") Optional findByIdAndNotDeleted(String dossierTemplateId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DownloadStatusRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DownloadStatusRepository.java index f1e896afc..a95c7991c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DownloadStatusRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DownloadStatusRepository.java @@ -1,26 +1,32 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity; -import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadStatusValue; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; - import java.time.OffsetDateTime; import java.util.List; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; + +import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity; +import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadStatusValue; + public interface DownloadStatusRepository extends JpaRepository { + List findAllByUserId(String userId); + @Modifying @Query("update DownloadStatusEntity ds set ds.status = :status where ds.storageId = :storageId") void updateStatus(String storageId, DownloadStatusValue status); + @Modifying @Query("update DownloadStatusEntity ds set ds.status = :status, ds.fileSize = :fileSize where ds.storageId = :storageId") void updateStatus(String storageId, DownloadStatusValue status, long fileSize); + @Modifying @Query("update DownloadStatusEntity ds set ds.lastDownload = :lastDownload where ds.storageId = :storageId") void updateLastDownload(String storageId, OffsetDateTime lastDownload); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/EntryRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/EntryRepository.java index e5bf9160c..469e6bc02 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/EntryRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/EntryRepository.java @@ -1,13 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity; +import java.util.List; +import java.util.Set; + +import javax.transaction.Transactional; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; -import javax.transaction.Transactional; -import java.util.List; -import java.util.Set; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity; public interface EntryRepository extends JpaRepository { @@ -25,8 +27,10 @@ public interface EntryRepository extends JpaRepository findByTypeIdAndVersionGreaterThan(String typeId, long version); + @Modifying @Transactional @Query("update DictionaryEntryEntity e set e.deleted = true, e.version = :version where e.typeId = :typeId") @@ -41,7 +45,7 @@ public interface EntryRepository extends JpaRepository { @@ -23,19 +25,22 @@ public interface FalsePositiveEntryRepository extends JpaRepository findByTypeIdAndVersionGreaterThan(String typeId, long version); + @Modifying @Transactional @Query("update DictionaryFalsePositiveEntryEntity e set e.deleted = true, e.version = :version where e.typeId = :typeId") void deleteAllEntriesForTypeId(String typeId, long version); + @Modifying @Transactional @Query(value = "update dictionary_false_positive_entry set deleted = false, version = :version where type_id = :typeId and value in (:entries) returning value", nativeQuery = true) List undeleteEntries(String typeId, Set entries, long version); + @Modifying(flushAutomatically = true, clearAutomatically = true) @Transactional - @Query(value = "insert into dictionary_false_positive_entry (value, version, deleted, type_id) " + - " select value, 1, false, :newTypeId from dictionary_false_positive_entry where type_id = :originalTypeId and deleted = false", nativeQuery = true) + @Query(value = "insert into dictionary_false_positive_entry (value, version, deleted, type_id) " + " select value, 1, false, :newTypeId from dictionary_false_positive_entry where type_id = :originalTypeId and deleted = false", nativeQuery = true) void cloneEntries(String originalTypeId, String newTypeId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FalseRecommendationEntryRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FalseRecommendationEntryRepository.java index 8e015876c..4f88393a7 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FalseRecommendationEntryRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FalseRecommendationEntryRepository.java @@ -1,13 +1,15 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryFalseRecommendationEntryEntity; +import java.util.List; +import java.util.Set; + +import javax.transaction.Transactional; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; -import javax.transaction.Transactional; -import java.util.List; -import java.util.Set; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryFalseRecommendationEntryEntity; public interface FalseRecommendationEntryRepository extends JpaRepository { @@ -23,19 +25,22 @@ public interface FalseRecommendationEntryRepository extends JpaRepository findByTypeIdAndVersionGreaterThan(String typeId, long version); + @Modifying @Transactional @Query("update DictionaryFalseRecommendationEntryEntity e set e.deleted = true, e.version = :version where e.typeId = :typeId") void deleteAllEntriesForTypeId(String typeId, long version); + @Modifying @Transactional @Query(value = "update dictionary_false_recommendation_entry set deleted = false, version = :version where type_id = :typeId and value in (:entries) returning value", nativeQuery = true) List undeleteEntries(String typeId, Set entries, long version); + @Modifying(flushAutomatically = true, clearAutomatically = true) @Transactional - @Query(value = "insert into dictionary_false_recommendation_entry (value, version, deleted, type_id) " + - " select value, 1, false, :newTypeId from dictionary_false_recommendation_entry where type_id = :originalTypeId and deleted = false", nativeQuery = true) + @Query(value = "insert into dictionary_false_recommendation_entry (value, version, deleted, type_id) " + " select value, 1, false, :newTypeId from dictionary_false_recommendation_entry where type_id = :originalTypeId and deleted = false", nativeQuery = true) void cloneEntries(String originalTypeId, String newTypeId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributeConfigRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributeConfigRepository.java index b2b15366a..5603af5d4 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributeConfigRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributeConfigRepository.java @@ -1,25 +1,30 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; +import java.util.List; +import java.util.Optional; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; -import java.util.List; -import java.util.Optional; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; public interface FileAttributeConfigRepository extends JpaRepository { List findByDossierTemplateId(String dossierTemplateId); + @Modifying @Query("update FileAttributeConfigEntity e set e.primaryAttribute = false where e.dossierTemplate.id = :dossierTemplateId") void updateAllPrimaryAttributeValuesToFalse(String dossierTemplateId); + @Modifying @Query("update FileAttributeConfigEntity e set e.primaryAttribute = true where e.id = :fileAttributeId") void updatePrimaryAttributeValueToTrue(String fileAttributeId); + @Query("select fa from FileAttributeConfigEntity fa where fa.dossierTemplate.id = :dossierTemplateId and (fa.id = :fileAttributeId or fa.label = :label)") Optional findByIdOrDossierTemplateIdAndLabel(String dossierTemplateId, String fileAttributeId, String label); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesGeneralConfigurationRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesGeneralConfigurationRepository.java index 644cca7f9..72d9df146 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesGeneralConfigurationRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesGeneralConfigurationRepository.java @@ -1,7 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity; import org.springframework.data.jpa.repository.JpaRepository; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity; + public interface FileAttributesGeneralConfigurationRepository extends JpaRepository { + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesRepository.java index 9059b4248..dc4ed74a6 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileAttributesRepository.java @@ -1,11 +1,12 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeEntity; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; -import java.util.List; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeEntity; public interface FileAttributesRepository extends JpaRepository { @@ -13,10 +14,13 @@ public interface FileAttributesRepository extends JpaRepository findByFileId(String fileId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java index cd8839795..445f8c2c0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/FileRepository.java @@ -1,19 +1,21 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; +import java.time.OffsetDateTime; +import java.util.List; +import java.util.Set; + +import javax.transaction.Transactional; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.projection.FilePageCountsProjection; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.projection.FileProcessingStatusProjection; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.projection.FileWorkflowStatusProjection; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Modifying; -import org.springframework.data.jpa.repository.Query; - -import javax.transaction.Transactional; -import java.time.OffsetDateTime; -import java.util.List; -import java.util.Set; public interface FileRepository extends JpaRepository { @@ -22,39 +24,46 @@ public interface FileRepository extends JpaRepository { List findByDossierId(String dossierId); + List findByDossierIdInAndAddedBetween(Set dossierIds, OffsetDateTime start, OffsetDateTime end); @Modifying - @Query("update FileEntity e set e.hasRedactions = :hasRedactions ," + - " e.hasHints = :hasHints, e.hasSuggestions = :hasSuggestions," + - " e.hasImages = :hasImages, e.hasUpdates = :hasUpdates, e.hasAnnotationComments = :hasComments, " + - " e.lastUpdated = :lastUpdated " + " where e.id =:fileId") - void updateFlags(String fileId, OffsetDateTime lastUpdated, boolean hasRedactions, boolean hasHints, boolean hasImages, boolean hasSuggestions, boolean hasComments, + @Query("update FileEntity e set e.hasRedactions = :hasRedactions ," + " e.hasHints = :hasHints, e.hasSuggestions = :hasSuggestions," + " e.hasImages = :hasImages, e.hasUpdates = :hasUpdates, e.hasAnnotationComments = :hasComments, " + " e.lastUpdated = :lastUpdated " + " where e.id =:fileId") + void updateFlags(String fileId, + OffsetDateTime lastUpdated, + boolean hasRedactions, + boolean hasHints, + boolean hasImages, + boolean hasSuggestions, + boolean hasComments, boolean hasUpdates); @Modifying - @Query("update FileEntity f set f.numberOfPages = :numberOfPages, f.processingStatus = :processingStatus, " + - "f.dictionaryVersion = :dictionaryVersion, f.rulesVersion = :rulesVersion, f.legalBasisVersion = :legalBasisVersion, " + - "f.analysisDuration = :analysisDuration, f.dossierDictionaryVersion = :dossierDictionaryVersion, " + - "f.analysisVersion = :analysisVersion, f.numberOfAnalyses = :analysisNumber, f.lastUpdated = :lastUpdated, " + - "f.lastProcessed = :lastProcessed, f.processingErrorCounter = :processingErrorCounter " + - "where f.id = :fileId") - void updateProcessingStatus(String fileId, int numberOfPages, ProcessingStatus processingStatus, long dictionaryVersion, long rulesVersion, long legalBasisVersion, - long analysisDuration, long dossierDictionaryVersion, int analysisVersion, OffsetDateTime lastUpdated, OffsetDateTime lastProcessed, - int analysisNumber, int processingErrorCounter); + @Query("update FileEntity f set f.numberOfPages = :numberOfPages, f.processingStatus = :processingStatus, " + "f.dictionaryVersion = :dictionaryVersion, f.rulesVersion = :rulesVersion, f.legalBasisVersion = :legalBasisVersion, " + "f.analysisDuration = :analysisDuration, f.dossierDictionaryVersion = :dossierDictionaryVersion, " + "f.analysisVersion = :analysisVersion, f.numberOfAnalyses = :analysisNumber, f.lastUpdated = :lastUpdated, " + "f.lastProcessed = :lastProcessed, f.processingErrorCounter = :processingErrorCounter " + "where f.id = :fileId") + void updateProcessingStatus(String fileId, + int numberOfPages, + ProcessingStatus processingStatus, + long dictionaryVersion, + long rulesVersion, + long legalBasisVersion, + long analysisDuration, + long dossierDictionaryVersion, + int analysisVersion, + OffsetDateTime lastUpdated, + OffsetDateTime lastProcessed, + int analysisNumber, + int processingErrorCounter); @Modifying - @Query("update FileEntity f set f.workflowStatus = :workflowStatus, f.lastUpdated = :lastUpdated, f.approvalDate = :approvalDate," + - " f.excludedFromAutomaticAnalysis = :excludedFromAutomaticAnalysis where f.id = :fileId") + @Query("update FileEntity f set f.workflowStatus = :workflowStatus, f.lastUpdated = :lastUpdated, f.approvalDate = :approvalDate," + " f.excludedFromAutomaticAnalysis = :excludedFromAutomaticAnalysis where f.id = :fileId") void updateWorkflowStatus(String fileId, WorkflowStatus workflowStatus, OffsetDateTime lastUpdated, OffsetDateTime approvalDate, boolean excludedFromAutomaticAnalysis); @Modifying - @Query("update FileEntity f set f.workflowStatus = :workflowStatus, f.lastUpdated = :lastUpdated, f.approvalDate = :approvalDate " + - " where f.id = :fileId") + @Query("update FileEntity f set f.workflowStatus = :workflowStatus, f.lastUpdated = :lastUpdated, f.approvalDate = :approvalDate " + " where f.id = :fileId") void updateWorkflowStatus(String fileId, WorkflowStatus workflowStatus, OffsetDateTime lastUpdated, OffsetDateTime approvalDate); @@ -64,27 +73,22 @@ public interface FileRepository extends JpaRepository { @Modifying(clearAutomatically = true) - @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + - " f.hasHighlights = :hasHighlights, f.fileSize = :fileSize, f.processingErrorCounter = :processingErrorCounter " + - " where f.id = :fileId") + @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + " f.hasHighlights = :hasHighlights, f.fileSize = :fileSize, f.processingErrorCounter = :processingErrorCounter " + " where f.id = :fileId") void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, boolean hasHighlights, long fileSize, int processingErrorCounter); @Modifying(clearAutomatically = true) - @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated, f.processingErrorCounter = :processingErrorCounter " + - "where f.id = :fileId") + @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated, f.processingErrorCounter = :processingErrorCounter " + "where f.id = :fileId") void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, int processingErrorCounter); @Modifying(clearAutomatically = true) - @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated, f.lastProcessed = :lastProcessed, f.processingErrorCounter = :processingErrorCounter " + - "where f.id = :fileId") + @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated, f.lastProcessed = :lastProcessed, f.processingErrorCounter = :processingErrorCounter " + "where f.id = :fileId") void updateProcessingStatus(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, OffsetDateTime lastProcessed, int processingErrorCounter); @Modifying(clearAutomatically = true) - @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + - "f.lastIndexed = :lastIndexed, f.processingErrorCounter = :processingErrorCounter where f.id = :fileId") + @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + "f.lastIndexed = :lastIndexed, f.processingErrorCounter = :processingErrorCounter where f.id = :fileId") void setUpdateStatusIndexingSuccessful(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, OffsetDateTime lastIndexed, int processingErrorCounter); @@ -109,25 +113,17 @@ public interface FileRepository extends JpaRepository { @Modifying - @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated, " + - "f.deleted = :softDeletedTime where f.id = :fileId") + @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated, " + "f.deleted = :softDeletedTime where f.id = :fileId") int setSoftDelete(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, OffsetDateTime softDeletedTime); @Modifying - @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + - " f.hardDeletedTime = :hardDeletedTime, " + - " f.deleted = case " + - " when f.deleted is null then :deleted " + - " when f.deleted is not null then f.deleted " + - " end " + - " where f.id = :fileId") + @Query("update FileEntity f set f.processingStatus = :processingStatus, f.lastUpdated = :lastUpdated," + " f.hardDeletedTime = :hardDeletedTime, " + " f.deleted = case " + " when f.deleted is null then :deleted " + " when f.deleted is not null then f.deleted " + " end " + " where f.id = :fileId") int setHardDelete(String fileId, ProcessingStatus processingStatus, OffsetDateTime lastUpdated, OffsetDateTime hardDeletedTime, OffsetDateTime deleted); @Modifying - @Query("update FileEntity f set f.assignee = :assignee, f.lastReviewer = :lastReviewer, f.lastApprover = :lastApprover, " + - "f.lastUpdated = :lastUpdated where f.id = :fileId") + @Query("update FileEntity f set f.assignee = :assignee, f.lastReviewer = :lastReviewer, f.lastApprover = :lastApprover, " + "f.lastUpdated = :lastUpdated where f.id = :fileId") int setAssignee(String fileId, String assignee, String lastReviewer, String lastApprover, OffsetDateTime lastUpdated); @@ -142,38 +138,31 @@ public interface FileRepository extends JpaRepository { @Modifying(clearAutomatically = true) - @Query("update FileEntity f set f.filename = :filename, f.uploader = :uploader, f.processingStatus = :processingStatus, " + - "f.workflowStatus = :workflowStatus, f.lastUploaded = :lastUploaded, f.lastUpdated = :lastUpdated, f.fileManipulationDate = :lastUploaded, " + - "f.ocrEndTime = null, f.ocrStartTime = null, f.numberOfPagesToOCR = null, f.numberOfOCRedPages = null, f.excluded = false, f.lastProcessed = null, f.lastReviewer = null, f.lastApprover = null, " + - "f.assignee = null, f.approvalDate = null, f.numberOfAnalyses = 0, f.lastManualChangeDate = null, f.redactionModificationDate = null, " + - "f.dictionaryVersion = 0, f.dossierDictionaryVersion = 0, f.rulesVersion = 0, f.hasImages = false, " + - "f.hasHints = false, f.hasRedactions = false, f.hasSuggestions = false, f.hasUpdates = false, " + - "f.deleted = null, f.hardDeletedTime = null, f.hasHighlights = false, f.excludedFromAutomaticAnalysis = false, f.processingErrorCounter = 0 where f.id = :fileId") - int overwriteFile(String fileId, String filename, String uploader, ProcessingStatus processingStatus, WorkflowStatus workflowStatus, OffsetDateTime lastUploaded, + @Query("update FileEntity f set f.filename = :filename, f.uploader = :uploader, f.processingStatus = :processingStatus, " + "f.workflowStatus = :workflowStatus, f.lastUploaded = :lastUploaded, f.lastUpdated = :lastUpdated, f.fileManipulationDate = :lastUploaded, " + "f.ocrEndTime = null, f.ocrStartTime = null, f.numberOfPagesToOCR = null, f.numberOfOCRedPages = null, f.excluded = false, f.lastProcessed = null, f.lastReviewer = null, f.lastApprover = null, " + "f.assignee = null, f.approvalDate = null, f.numberOfAnalyses = 0, f.lastManualChangeDate = null, f.redactionModificationDate = null, " + "f.dictionaryVersion = 0, f.dossierDictionaryVersion = 0, f.rulesVersion = 0, f.hasImages = false, " + "f.hasHints = false, f.hasRedactions = false, f.hasSuggestions = false, f.hasUpdates = false, " + "f.deleted = null, f.hardDeletedTime = null, f.hasHighlights = false, f.excludedFromAutomaticAnalysis = false, f.processingErrorCounter = 0 where f.id = :fileId") + int overwriteFile(String fileId, + String filename, + String uploader, + ProcessingStatus processingStatus, + WorkflowStatus workflowStatus, + OffsetDateTime lastUploaded, OffsetDateTime lastUpdated); @Modifying(clearAutomatically = true) - @Query("update FileEntity f set f.filename = :filename, f.uploader = :uploader, f.processingStatus = :processingStatus, " + - "f.lastUploaded = :lastUploaded, f.lastUpdated = :lastUpdated, f.fileManipulationDate = :lastUploaded, " + - "f.lastProcessed = null," + - "f.approvalDate = null, f.numberOfAnalyses = 0, f.lastManualChangeDate = null, f.redactionModificationDate = null, " + - "f.dictionaryVersion = 0, f.dossierDictionaryVersion = 0, f.rulesVersion = 0, f.hasImages = false, " + - "f.hasHints = false, f.hasRedactions = false, f.hasSuggestions = false, f.hasUpdates = false, " + - "f.deleted = null, f.hardDeletedTime = null, f.hasHighlights = false, f.processingErrorCounter = 0 where f.id = :fileId") - int overwriteFileAndKeepManualRedactions(String fileId, String filename, String uploader, ProcessingStatus processingStatus, OffsetDateTime lastUploaded, + @Query("update FileEntity f set f.filename = :filename, f.uploader = :uploader, f.processingStatus = :processingStatus, " + "f.lastUploaded = :lastUploaded, f.lastUpdated = :lastUpdated, f.fileManipulationDate = :lastUploaded, " + "f.lastProcessed = null," + "f.approvalDate = null, f.numberOfAnalyses = 0, f.lastManualChangeDate = null, f.redactionModificationDate = null, " + "f.dictionaryVersion = 0, f.dossierDictionaryVersion = 0, f.rulesVersion = 0, f.hasImages = false, " + "f.hasHints = false, f.hasRedactions = false, f.hasSuggestions = false, f.hasUpdates = false, " + "f.deleted = null, f.hardDeletedTime = null, f.hasHighlights = false, f.processingErrorCounter = 0 where f.id = :fileId") + int overwriteFileAndKeepManualRedactions(String fileId, + String filename, + String uploader, + ProcessingStatus processingStatus, + OffsetDateTime lastUploaded, OffsetDateTime lastUpdated); - @Query("select count(f) from FileEntity f inner join DossierEntity d on d.id = f.dossierId where d.dossierTemplateId = :dossierTemplateId" + - " and ((f.deleted is not null and f.hardDeletedTime is null) or " + - " (d.softDeletedTime is not null and d.hardDeletedTime is null)) and d.archivedTime is null") + @Query("select count(f) from FileEntity f inner join DossierEntity d on d.id = f.dossierId where d.dossierTemplateId = :dossierTemplateId" + " and ((f.deleted is not null and f.hardDeletedTime is null) or " + " (d.softDeletedTime is not null and d.hardDeletedTime is null)) and d.archivedTime is null") int countSoftDeletedFilesPerDossierTemplateId(String dossierTemplateId); - @Query("select count(f) from FileEntity f inner join DossierEntity d on d.id = f.dossierId where d.id = :dossierId" + - " and ((f.deleted is not null and f.hardDeletedTime is null) or " + - " (d.softDeletedTime is not null and d.hardDeletedTime is null))") + @Query("select count(f) from FileEntity f inner join DossierEntity d on d.id = f.dossierId where d.id = :dossierId" + " and ((f.deleted is not null and f.hardDeletedTime is null) or " + " (d.softDeletedTime is not null and d.hardDeletedTime is null))") int countSoftDeletedFilesPerDossierId(String dossierId); @@ -191,10 +180,7 @@ public interface FileRepository extends JpaRepository { void setLastManualChangeDate(String fileId, OffsetDateTime lastManualChangeDate, OffsetDateTime lastUpdated); - @Query("select f from FileEntity f join DossierEntity d on d.id = f.dossierId where f.excluded = false and f.workflowStatus <> 'APPROVED' and f.excludedFromAutomaticAnalysis = false " + - " and ( f.processingStatus = 'PROCESSED' or f.processingStatus = 'UNPROCESSED' or f.processingStatus = 'ERROR' )" + - " and d.softDeletedTime is null and d.hardDeletedTime is null and d.archivedTime is null " + - " and f.deleted is null and f.hardDeletedTime is null and f.processingErrorCounter <= :maxRetries") + @Query("select f from FileEntity f join DossierEntity d on d.id = f.dossierId where f.excluded = false and f.workflowStatus <> 'APPROVED' and f.excludedFromAutomaticAnalysis = false " + " and ( f.processingStatus = 'PROCESSED' or f.processingStatus = 'UNPROCESSED' or f.processingStatus = 'ERROR' )" + " and d.softDeletedTime is null and d.hardDeletedTime is null and d.archivedTime is null " + " and f.deleted is null and f.hardDeletedTime is null and f.processingErrorCounter <= :maxRetries") List getAllRelevantStatusesForReanalysisScheduler(int maxRetries); @@ -207,40 +193,27 @@ public interface FileRepository extends JpaRepository { List getSoftDeletedFiles(List dossierIds); - @Query("select f.processingStatus as processingStatus, count(f) as count from FileEntity f " + - "inner join DossierEntity d on d.id = f.dossierId " + - "where f.deleted is null and f.hardDeletedTime is null " + - "and d.softDeletedTime is null and d.hardDeletedTime is null and d.archivedTime is null " + "and d.dossierTemplateId = :dossierTemplateId " + - "group by f.processingStatus ") + @Query("select f.processingStatus as processingStatus, count(f) as count from FileEntity f " + "inner join DossierEntity d on d.id = f.dossierId " + "where f.deleted is null and f.hardDeletedTime is null " + "and d.softDeletedTime is null and d.hardDeletedTime is null and d.archivedTime is null " + "and d.dossierTemplateId = :dossierTemplateId " + "group by f.processingStatus ") List countFilesByProcessingStatus(String dossierTemplateId); - @Query("select f.workflowStatus as workflowStatus, count(f) as count from FileEntity f " + - "inner join DossierEntity d on d.id = f.dossierId " + - "where f.deleted is null and f.hardDeletedTime is null " + - "and d.softDeletedTime is null and d.hardDeletedTime is null and d.archivedTime is null " + "and d.dossierTemplateId = :dossierTemplateId " + - "group by f.workflowStatus ") + @Query("select f.workflowStatus as workflowStatus, count(f) as count from FileEntity f " + "inner join DossierEntity d on d.id = f.dossierId " + "where f.deleted is null and f.hardDeletedTime is null " + "and d.softDeletedTime is null and d.hardDeletedTime is null and d.archivedTime is null " + "and d.dossierTemplateId = :dossierTemplateId " + "group by f.workflowStatus ") List countFilesByWorkflowStatus(String dossierTemplateId); - @Query(value = "select COALESCE(sum(number_of_pages),0) as numberOfAnalyzedPages, COALESCE(sum(json_array_length(cast(excluded_pages AS json))),0) as numberOfExcludedPages " + - " from file join dossier on file.dossier_id = dossier.id where file.deleted is null and file.hard_deleted_time is null " + - " and dossier.archived_time is null and dossier.soft_deleted_time is null and dossier.hard_deleted_time is null" + " and dossier.dossier_template_id = :dossierTemplateId", nativeQuery = true) + @Query(value = "select COALESCE(sum(number_of_pages),0) as numberOfAnalyzedPages, COALESCE(sum(json_array_length(cast(excluded_pages AS json))),0) as numberOfExcludedPages " + " from file join dossier on file.dossier_id = dossier.id where file.deleted is null and file.hard_deleted_time is null " + " and dossier.archived_time is null and dossier.soft_deleted_time is null and dossier.hard_deleted_time is null" + " and dossier.dossier_template_id = :dossierTemplateId", nativeQuery = true) FilePageCountsProjection countPages(String dossierTemplateId); - @Query("select count(f) from FileEntity f inner join DossierEntity d on d.id = f.dossierId where " + - "f.hardDeletedTime is null and f.deleted is null and " + - "d.dossierTemplateId = :dossierTemplateId and " + - "d.softDeletedTime is null and d.hardDeletedTime is null and d.archivedTime is null") + @Query("select count(f) from FileEntity f inner join DossierEntity d on d.id = f.dossierId where " + "f.hardDeletedTime is null and f.deleted is null and " + "d.dossierTemplateId = :dossierTemplateId and " + "d.softDeletedTime is null and d.hardDeletedTime is null and d.archivedTime is null") int countActiveFiles(String dossierTemplateId); @Transactional @Modifying(clearAutomatically = true) - @Query(value = "update FileEntity f set f.numberOfOCRedPages = :numberOfOCRedPages, f.numberOfPagesToOCR = :numberOfPagesToOCR, f.ocrEndTime = :ocrEndTime, " + - " f.lastUpdated = :lastUpdated where f.id = :fileId") + @Query(value = "update FileEntity f set f.numberOfOCRedPages = :numberOfOCRedPages, f.numberOfPagesToOCR = :numberOfPagesToOCR, f.ocrEndTime = :ocrEndTime, " + " f.lastUpdated = :lastUpdated where f.id = :fileId") void updateOCRStatus(String fileId, int numberOfPagesToOCR, int numberOfOCRedPages, OffsetDateTime ocrEndTime, OffsetDateTime lastUpdated); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ForceRedactionRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ForceRedactionRepository.java index 490ae26db..80e2cdacc 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ForceRedactionRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ForceRedactionRepository.java @@ -21,18 +21,22 @@ public interface ForceRedactionRepository extends JpaRepository findByIdAndNotSoftDeleted(AnnotationEntityId annotationEntityId); + @Query("select mfr from ManualForceRedactionEntity mfr where mfr.id.fileId = :fileId and (:includeDeletions = true or mfr.softDeletedTime is null)") List findByFileIdIncludeDeletions(String fileId, boolean includeDeletions); + @Modifying @Query("update ManualForceRedactionEntity mfr set mfr.processedDate = :processedDate where mfr.id = :annotationEntityId") void markAsProcessed(AnnotationEntityId annotationEntityId, OffsetDateTime processedDate); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ImageRecategorizationRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ImageRecategorizationRepository.java index d56daea40..977e0602e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ImageRecategorizationRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ImageRecategorizationRepository.java @@ -13,6 +13,7 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.annotati import com.iqser.red.service.persistence.service.v1.api.model.annotations.AnnotationStatus; public interface ImageRecategorizationRepository extends JpaRepository { + List findByIdFileId(String fileId); @@ -20,18 +21,22 @@ public interface ImageRecategorizationRepository extends JpaRepository findByIdAndNotSoftDeleted(AnnotationEntityId annotationEntityId); + @Query("select mir from ManualImageRecategorizationEntity mir where mir.id.fileId = :fileId and (:includeDeletions = true or mir.softDeletedTime is null)") List findByFileIdIncludeDeletions(String fileId, boolean includeDeletions); + @Modifying @Query("update ManualImageRecategorizationEntity mir set mir.processedDate = :processedDate where mir.id = :annotationEntityId") void markAsProcessed(AnnotationEntityId annotationEntityId, OffsetDateTime processedDate); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/LegalBasisChangeRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/LegalBasisChangeRepository.java index 679c1e181..d3cc4d58e 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/LegalBasisChangeRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/LegalBasisChangeRepository.java @@ -18,14 +18,16 @@ public interface LegalBasisChangeRepository extends JpaRepository findByIdAndNotSoftDeleted(AnnotationEntityId annotationEntityId); + @Query("select mlbc from ManualLegalBasisChangeEntity mlbc where mlbc.id.fileId = :fileId and (:includeDeletions = true or mlbc.softDeletedTime is null)") List findByFileIdIncludeDeletions(String fileId, boolean includeDeletions); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/LegalBasisMappingRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/LegalBasisMappingRepository.java index f9d8018b2..07160dff0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/LegalBasisMappingRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/LegalBasisMappingRepository.java @@ -1,9 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisMappingEntity; import org.springframework.data.jpa.repository.JpaRepository; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisMappingEntity; + public interface LegalBasisMappingRepository extends JpaRepository { - } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ManualRedactionRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ManualRedactionRepository.java index 0432b3b2e..8eb8f8cae 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ManualRedactionRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ManualRedactionRepository.java @@ -50,7 +50,9 @@ public interface ManualRedactionRepository extends JpaRepository fileIds, String filterValue, AnnotationStatus filterStatus, AnnotationStatus newStatus, OffsetDateTime processedDate); + @Modifying @Query("update ManualRedactionEntryEntity m set m.processedDate = :processedDate where m.id = :annotationEntityId") void markAsProcessed(AnnotationEntityId annotationEntityId, OffsetDateTime processedDate); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/NotificationPreferencesRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/NotificationPreferencesRepository.java index a6e212b97..fa804686d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/NotificationPreferencesRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/NotificationPreferencesRepository.java @@ -1,8 +1,11 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.notification.NotificationPreferencesEntity; import org.springframework.data.jpa.repository.JpaRepository; +import com.iqser.red.service.persistence.management.v1.processor.entity.notification.NotificationPreferencesEntity; + public interface NotificationPreferencesRepository extends JpaRepository { + boolean existsByUserId(String userId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/NotificationRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/NotificationRepository.java index 4f31d99a5..3346bbb67 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/NotificationRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/NotificationRepository.java @@ -11,34 +11,33 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.notifica public interface NotificationRepository extends JpaRepository { - - @Query("select count(n) from NotificationEntity n where " + - " (exists (select e from NotificationPreferencesEntity e where e.userId = :userId) and n.notificationType in ( select apn from NotificationPreferencesEntity p join p.inAppNotifications apn where p.userId = :userId and p.inAppNotificationsEnabled = true )) " + - " and n.softDeleted is null and n.userId = :userId and n.creationDate > :since") + @Query("select count(n) from NotificationEntity n where " + " (exists (select e from NotificationPreferencesEntity e where e.userId = :userId) and n.notificationType in ( select apn from NotificationPreferencesEntity p join p.inAppNotifications apn where p.userId = :userId and p.inAppNotificationsEnabled = true )) " + " and n.softDeleted is null and n.userId = :userId and n.creationDate > :since") int hasInAppNotificationForUser(String userId, OffsetDateTime since); - @Query("select n from NotificationEntity n where " + - " (exists (select e from NotificationPreferencesEntity e where e.userId = :userId) and n.notificationType in ( select apn from NotificationPreferencesEntity p join p.inAppNotifications apn where p.userId = :userId and p.inAppNotificationsEnabled = true )) " + - " and n.softDeleted is null and n.userId = :userId order by n.creationDate desc") + + @Query("select n from NotificationEntity n where " + " (exists (select e from NotificationPreferencesEntity e where e.userId = :userId) and n.notificationType in ( select apn from NotificationPreferencesEntity p join p.inAppNotifications apn where p.userId = :userId and p.inAppNotificationsEnabled = true )) " + " and n.softDeleted is null and n.userId = :userId order by n.creationDate desc") List findAppNotificationsForUser(String userId); - @Query("select n from NotificationEntity n where " + - " (exists (select e from NotificationPreferencesEntity e where e.userId = :userId) and n.notificationType in ( select apn from NotificationPreferencesEntity p join p.inAppNotifications apn where p.userId = :userId and p.inAppNotificationsEnabled = true )) " + - " and n.seenDate is null and n.softDeleted is null and n.userId = :userId order by n.creationDate desc ") + + @Query("select n from NotificationEntity n where " + " (exists (select e from NotificationPreferencesEntity e where e.userId = :userId) and n.notificationType in ( select apn from NotificationPreferencesEntity p join p.inAppNotifications apn where p.userId = :userId and p.inAppNotificationsEnabled = true )) " + " and n.seenDate is null and n.softDeleted is null and n.userId = :userId order by n.creationDate desc ") List findUnseenNotificationsForUser(String userId); + @Modifying @Query("update NotificationEntity n set n.seenDate = :seenDate where n.id = :notificationId and n.userId = :userId") int setSeenDate(String userId, long notificationId, OffsetDateTime seenDate); + @Modifying @Query("update NotificationEntity n set n.readDate = :readDate where n.id = :notificationId and n.userId = :userId") int setReadDate(String userId, long notificationId, OffsetDateTime readDate); + @Modifying @Query("update NotificationEntity n set n.softDeleted = :softDeleted where n.id = :notificationId and n.userId = :userId") int softDelete(String userId, long notificationId, OffsetDateTime softDeleted); + @Modifying @Query("update NotificationEntity n set n.softDeleted = :softDeleted where n.userId = :userId") void deleteAllByUserId(String userId, OffsetDateTime softDeleted); @@ -49,8 +48,7 @@ public interface NotificationRepository extends JpaRepository removedNotificationTypes, OffsetDateTime softDeleted); - @Query("select n from NotificationEntity n where " + - " (exists (select e from NotificationPreferencesEntity e where e.userId = :userId) and n.notificationType in ( select apn from NotificationPreferencesEntity p join p.emailNotifications apn where p.userId = :userId and p.emailNotificationsEnabled = true )) " + - " and n.userId = :userId and n.creationDate >= :from and n.creationDate <= :to order by n.creationDate desc") + @Query("select n from NotificationEntity n where " + " (exists (select e from NotificationPreferencesEntity e where e.userId = :userId) and n.notificationType in ( select apn from NotificationPreferencesEntity p join p.emailNotifications apn where p.userId = :userId and p.emailNotificationsEnabled = true )) " + " and n.userId = :userId and n.creationDate >= :from and n.creationDate <= :to order by n.creationDate desc") List findEmailNotificationsForUserId(String userId, OffsetDateTime from, OffsetDateTime to); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RemoveRedactionRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RemoveRedactionRepository.java index ac5542457..b5c3da7cc 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RemoveRedactionRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RemoveRedactionRepository.java @@ -16,9 +16,9 @@ public interface RemoveRedactionRepository extends JpaRepository findByIdFileId(String fileId); + @Modifying - @Query("update IdRemovalEntity idr set idr.softDeletedTime = :softDeletedTime " + - "where idr.id = :annotationEntityId") + @Query("update IdRemovalEntity idr set idr.softDeletedTime = :softDeletedTime " + "where idr.id = :annotationEntityId") void updateSoftDelete(AnnotationEntityId annotationEntityId, OffsetDateTime softDeletedTime); @@ -26,19 +26,22 @@ public interface RemoveRedactionRepository extends JpaRepository findByIdAndNotSoftDeleted(AnnotationEntityId annotationEntityId); + @Query("select idr from IdRemovalEntity idr where idr.id.fileId = :fileId and (:includeDeletions = true or idr.softDeletedTime is null)") List findByFileIdIncludeDeletions(String fileId, boolean includeDeletions); + @Modifying @Query("update IdRemovalEntity idr set idr.processedDate = :processedDate where idr.id = :annotationEntityId") void markAsProcessed(AnnotationEntityId annotationEntityId, OffsetDateTime processedDate); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ReportTemplateRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ReportTemplateRepository.java index 9e0e1035d..8449e9005 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ReportTemplateRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ReportTemplateRepository.java @@ -1,17 +1,20 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; -import java.util.List; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; public interface ReportTemplateRepository extends JpaRepository { + List findAllByDossierTemplateId(String dossierTemplateId); + @Modifying - @Query("update ReportTemplateEntity r set r.fileName = :fileName, r.multiFileReport = :multiFileReport, r.activeByDefault = :activeByDefault " + - "where r.templateId = :templateId and r.dossierTemplateId = :dossierTemplateId") + @Query("update ReportTemplateEntity r set r.fileName = :fileName, r.multiFileReport = :multiFileReport, r.activeByDefault = :activeByDefault " + "where r.templateId = :templateId and r.dossierTemplateId = :dossierTemplateId") int updateReportTemplate(String dossierTemplateId, String templateId, String fileName, boolean multiFileReport, boolean activeByDefault); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ResizeRedactionRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ResizeRedactionRepository.java index 8d6fb4918..828c29c40 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ResizeRedactionRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ResizeRedactionRepository.java @@ -21,21 +21,25 @@ public interface ResizeRedactionRepository extends JpaRepository findByIdAndNotSoftDeleted(AnnotationEntityId annotationEntityId); + @Query("select mrd from ManualResizeRedactionEntity mrd where mrd.id.fileId = :fileId and (:includeDeletions = true or mrd.softDeletedTime is null)") List findByFileIdIncludeDeletions(String fileId, boolean includeDeletions); + @Modifying @Query("update ManualResizeRedactionEntity m set m.textBefore = :textBefore, m.textAfter = :textAfter where m.id = :id") void updateSurroundingText(AnnotationEntityId id, String textBefore, String textAfter); + List findByStatusAndValue(AnnotationStatus status, String value); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java index be5427c03..3be2751c0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/RuleSetRepository.java @@ -1,8 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.RuleSetEntity; import org.springframework.data.jpa.repository.JpaRepository; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.RuleSetEntity; + public interface RuleSetRepository extends JpaRepository { } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/SMTPRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/SMTPRepository.java index d2b177167..8476d80f1 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/SMTPRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/SMTPRepository.java @@ -1,7 +1,9 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.SMTPConfigurationEntity; import org.springframework.data.jpa.repository.JpaRepository; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.SMTPConfigurationEntity; + public interface SMTPRepository extends JpaRepository { + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java index 933687a4d..280654224 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/TypeRepository.java @@ -16,40 +16,46 @@ public interface TypeRepository extends JpaRepository { @Query("select t from TypeEntity t where t.dossierTemplateId = :dossierTemplate and t.dossierId = :dossier and t.rank = :rank and t.softDeletedTime is null") Optional findOneByDossierTemplateIdAndDossierIdAndRank(String dossierTemplate, String dossier, int rank); + List findByDossierId(String dossierId); + @Query("select t from TypeEntity t where t.id = :typeId and t.softDeletedTime is null") Optional findByIdAndNotDeleted(String typeId); + @Modifying @Query("update TypeEntity t set t.version = t.version +1 where t.id = :typeId") void updateByIdSetIncrementVersionByOne(String typeId); + @Query("select t from TypeEntity t where t.dossierTemplateId = :dossierTemplateId and t.dossierId is null") List getAllTypesForDossierTemplate(String dossierTemplateId); + @Query("select t from TypeEntity t where t.dossierTemplateId = :dossierTemplateId or t.dossierId = :dossierId") List findAllTypesByDossierTemplateIdOrDossierId(String dossierTemplateId, String dossierId); + @Query("select coalesce(sum(t.version),0) from TypeEntity t where t.dossierId = :dossierId") long getVersionForDossierId(String dossierId); + @Query("select coalesce(sum(t.version),0) from TypeEntity t where t.dossierTemplateId = :dossierTemplateId and t.dossierId is null") long getVersionForDossierTemplateId(String dossierTemplateId); - @Query("select new com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionarySummaryResponse(dt.id, t.id, t.type, t.label, count(e)) " + - "from DossierTemplateEntity dt " + - "left join TypeEntity t on t.dossierTemplateId = dt.id " + - "left join DictionaryEntryEntity e on e.typeId = t.id " + - "where t.softDeletedTime is null and dt.id in :dossierTemplateIds and t.dossierId is null and (e.id is null or e.deleted = false) " + - "group by dt.id, t.id, t.type, t.label ") + + @Query("select new com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionarySummaryResponse(dt.id, t.id, t.type, t.label, count(e)) " + "from DossierTemplateEntity dt " + "left join TypeEntity t on t.dossierTemplateId = dt.id " + "left join DictionaryEntryEntity e on e.typeId = t.id " + "where t.softDeletedTime is null and dt.id in :dossierTemplateIds and t.dossierId is null and (e.id is null or e.deleted = false) " + "group by dt.id, t.id, t.type, t.label ") List findDictionarySummaryList(Set dossierTemplateIds); + @Modifying(clearAutomatically = true, flushAutomatically = true) @Query("Update TypeEntity t set t.softDeletedTime = CURRENT_TIMESTAMP where t.id = :typeId") void softDeleteTypeById(String typeId); + @Modifying @Query("Update TypeEntity t set t.softDeletedTime = null where t.id = :typeId and t.softDeletedTime is not null") int unSoftDeleteTypeById(String typeId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ViewedPagesRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ViewedPagesRepository.java index a6492b7c4..12283d2d2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ViewedPagesRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/ViewedPagesRepository.java @@ -1,19 +1,23 @@ package com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ViewedPageEntity; +import java.util.List; + import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; -import java.util.List; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ViewedPageEntity; public interface ViewedPagesRepository extends JpaRepository { void deleteByFileId(String fileId); + List findByFileIdAndIdUserId(String fileId, String userId); + @Modifying @Query("DELETE FROM ViewedPageEntity e where e.id.fileId = :fileId and e.id.userId = :currentReviewer and e.id.page in :viewedPagesToReset") void deleteSeenPages(String fileId, String currentReviewer, List viewedPagesToReset); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java index c02026433..2979ac9b9 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/WatermarkRepository.java @@ -7,5 +7,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity; public interface WatermarkRepository extends JpaRepository { + List findByDossierTemplateId(String dossierTemplateId); + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/settings/FileUploadSettings.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/settings/FileUploadSettings.java index 94791ac4c..809cee9aa 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/settings/FileUploadSettings.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/settings/FileUploadSettings.java @@ -13,4 +13,5 @@ public class FileUploadSettings { * The maximum size of chunks to store in a single batch statement. */ private int maxBatchSize = 8 * MEGABYTE; + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadFileTypeConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadFileTypeConverter.java index 1b23ca187..e4d2a4c79 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadFileTypeConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONDownloadFileTypeConverter.java @@ -1,29 +1,35 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; +import java.util.HashSet; +import java.util.Set; + +import javax.persistence.AttributeConverter; +import javax.persistence.Converter; + import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; -import lombok.SneakyThrows; -import javax.persistence.AttributeConverter; -import javax.persistence.Converter; -import java.util.HashSet; -import java.util.Set; +import lombok.SneakyThrows; @Converter public class JSONDownloadFileTypeConverter implements AttributeConverter, String> { private final ObjectMapper objectMapper = new ObjectMapper(); + @SneakyThrows @Override public String convertToDatabaseColumn(Set dataSet) { + return objectMapper.writeValueAsString(dataSet); } + @SneakyThrows @Override public Set convertToEntityAttribute(String data) { + if (data == null) { return new HashSet<>(); } @@ -32,4 +38,5 @@ public class JSONDownloadFileTypeConverter implements AttributeConverter, String> { private final ObjectMapper objectMapper = new ObjectMapper(); + @SneakyThrows @Override public String convertToDatabaseColumn(Set dataSet) { + return objectMapper.writeValueAsString(dataSet); } + @SneakyThrows @Override public Set convertToEntityAttribute(String data) { + if (data == null) { return new HashSet<>(); } @@ -31,4 +37,5 @@ public class JSONIntegerSetConverter implements AttributeConverter, return objectMapper.readValue(data, typeRef); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONMapConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONMapConverter.java index 26d8c2345..684702abb 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONMapConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONMapConverter.java @@ -1,28 +1,34 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.SneakyThrows; +import java.util.HashMap; +import java.util.Map; import javax.persistence.AttributeConverter; import javax.persistence.Converter; -import java.util.HashMap; -import java.util.Map; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.SneakyThrows; @Converter public class JSONMapConverter implements AttributeConverter, String> { private final ObjectMapper objectMapper = new ObjectMapper(); + @SneakyThrows @Override public String convertToDatabaseColumn(Map map) { + return objectMapper.writeValueAsString(map); } + @SneakyThrows @Override public Map convertToEntityAttribute(String data) { + if (data == null) { return new HashMap<>(); } @@ -31,4 +37,5 @@ public class JSONMapConverter implements AttributeConverter, return objectMapper.readValue(data, typeRef); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStringSetConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStringSetConverter.java index 785d2fc6b..668f2150f 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStringSetConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/JSONStringSetConverter.java @@ -1,28 +1,34 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.SneakyThrows; +import java.util.HashSet; +import java.util.Set; import javax.persistence.AttributeConverter; import javax.persistence.Converter; -import java.util.HashSet; -import java.util.Set; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.SneakyThrows; @Converter public class JSONStringSetConverter implements AttributeConverter, String> { private final ObjectMapper objectMapper = new ObjectMapper(); + @SneakyThrows @Override public String convertToDatabaseColumn(Set dataSet) { + return objectMapper.writeValueAsString(dataSet); } + @SneakyThrows @Override public Set convertToEntityAttribute(String data) { + if (data == null) { return new HashSet<>(); } @@ -31,4 +37,5 @@ public class JSONStringSetConverter implements AttributeConverter, S return objectMapper.readValue(data, typeRef); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/MagicConverter.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/MagicConverter.java index 640bf75a2..218b5432d 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/MagicConverter.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/MagicConverter.java @@ -1,11 +1,5 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; -import com.google.common.collect.Lists; -import com.iqser.red.service.persistence.service.v1.api.model.common.Page; -import lombok.SneakyThrows; -import org.springframework.beans.BeanUtils; - -import javax.persistence.EmbeddedId; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.HashSet; @@ -13,8 +7,16 @@ import java.util.List; import java.util.Set; import java.util.function.BiConsumer; -public class MagicConverter { +import javax.persistence.EmbeddedId; +import org.springframework.beans.BeanUtils; + +import com.google.common.collect.Lists; +import com.iqser.red.service.persistence.service.v1.api.model.common.Page; + +import lombok.SneakyThrows; + +public class MagicConverter { @SneakyThrows public static T convert(S source, Class target, BiConsumer deltaMapper) { @@ -47,6 +49,7 @@ public class MagicConverter { @SneakyThrows public static Page convert(org.springframework.data.domain.Page sources, Class target) { + Page result = new Page<>(); result.setElements(convert(Lists.newArrayList(sources), target)); result.setPage(sources.getNumber()); @@ -56,8 +59,10 @@ public class MagicConverter { } + @SneakyThrows public static T convert(S source, Class target) { + var noArgsConstructor = target.getConstructor(); return convertOne(source, target, noArgsConstructor); } @@ -65,6 +70,7 @@ public class MagicConverter { @SneakyThrows public static List convert(List sources, Class target) { + var noArgsConstructor = target.getConstructor(); List targetList = new ArrayList<>(); @@ -75,8 +81,10 @@ public class MagicConverter { } + @SneakyThrows public static Set convert(Set sources, Class target) { + var noArgsConstructor = target.getConstructor(); Set targetList = new HashSet<>(); @@ -90,6 +98,7 @@ public class MagicConverter { @SneakyThrows public static T convertOne(S source, Class target, Constructor constructor) { + var newInstance = constructor.newInstance(); BeanUtils.copyProperties(source, newInstance); @@ -113,4 +122,5 @@ public class MagicConverter { return newInstance; } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeIdUtils.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeIdUtils.java index 00f8eb528..b627163f0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeIdUtils.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/TypeIdUtils.java @@ -3,10 +3,14 @@ package com.iqser.red.service.persistence.management.v1.processor.utils; public class TypeIdUtils { public static String toTypeId(String type, String dossierTemplateId) { + return toTypeId(type, dossierTemplateId, null); } + public static String toTypeId(String type, String dossierTemplateId, String dossierId) { + return type + ":" + dossierTemplateId + (dossierId != null ? ":" + dossierId : ""); } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/jdbc/JDBCWriteUtils.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/jdbc/JDBCWriteUtils.java index c40fac081..b454885dd 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/jdbc/JDBCWriteUtils.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/utils/jdbc/JDBCWriteUtils.java @@ -42,6 +42,7 @@ public class JDBCWriteUtils { private final DynamicDataSourceBasedMultiTenantConnectionProvider dynamicDataSourceBasedMultiTenantConnectionProvider; + public void saveBatch(final List entities) { jdbcTemplate.setDataSource(dynamicDataSourceBasedMultiTenantConnectionProvider.selectDataSource(TenantContext.getTenantId())); @@ -58,30 +59,33 @@ public class JDBCWriteUtils { final List batchList = entities.subList(j, Math.min(j + batchSize, entities.size())); - jdbcTemplate.batchUpdate(metadata.getSqlStatement(), - new BatchPreparedStatementSetter() { - @SneakyThrows - @Override - public void setValues(PreparedStatement ps, int i) { - T entity = batchList.get(i); + jdbcTemplate.batchUpdate(metadata.getSqlStatement(), new BatchPreparedStatementSetter() { + @SneakyThrows + @Override + public void setValues(PreparedStatement ps, int i) { - int paramIndex = 1; - for (var mapping : metadata.getFieldMethodMap().entrySet()) { - ps.setObject(paramIndex++, mapping.getValue().invoke(entity)); - } - } + T entity = batchList.get(i); - @Override - public int getBatchSize() { - return batchList.size(); - } - }); + int paramIndex = 1; + for (var mapping : metadata.getFieldMethodMap().entrySet()) { + ps.setObject(paramIndex++, mapping.getValue().invoke(entity)); + } + } + + + @Override + public int getBatchSize() { + + return batchList.size(); + } + }); } entityManager.clear(); } + private EntityMetadata getEntityMetadata(T entity) { var existingMetadata = entityMetadataMap.get(entity.getClass()); @@ -99,8 +103,10 @@ public class JDBCWriteUtils { return metadata; } + @SneakyThrows private Map getArgs(T entity) { + var fields = entity.getClass().getDeclaredFields(); Map entityMethodMap = new LinkedHashMap<>(); for (var field : fields) { @@ -116,7 +122,9 @@ public class JDBCWriteUtils { return entityMethodMap; } + private String getMethodName(Field field) { + var prefix = "get"; if (field.getType().equals(Boolean.class) || field.getType().equals(boolean.class)) { prefix = "is"; @@ -124,16 +132,21 @@ public class JDBCWriteUtils { return prefix + capitalize(field.getName()); } + private String toSnakeCase(String name) { + String ret = name.replaceAll("([A-Z]{1,100})([A-Z][a-z])", "$1_$2").replaceAll("([a-z])([A-Z])", "$1_$2"); return ret.toLowerCase(); } + private String getTableName(T entity) { + var tableAnnot = entity.getClass().getDeclaredAnnotation(Table.class); return tableAnnot.name(); } + @Data @AllArgsConstructor public static class EntityMetadata { @@ -141,5 +154,7 @@ public class JDBCWriteUtils { private String tableName; private String sqlStatement; private Map fieldMethodMap; + } + } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/test/java/com/iqser/red/service/persistence/management/v1/processor/service/IdentityTest.java b/persistence-service-v1/persistence-service-processor-v1/src/test/java/com/iqser/red/service/persistence/management/v1/processor/service/IdentityTest.java index 2df97fddc..a84356556 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/test/java/com/iqser/red/service/persistence/management/v1/processor/service/IdentityTest.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/test/java/com/iqser/red/service/persistence/management/v1/processor/service/IdentityTest.java @@ -1,14 +1,16 @@ package com.iqser.red.service.persistence.management.v1.processor.service; -import org.junit.Test; - import static org.assertj.core.api.Assertions.assertThat; +import org.junit.Test; + public class IdentityTest { @Test public void mockTest() { + int i = 1; assertThat(i).isEqualTo(1); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/Application.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/Application.java index 1827f8c09..05e446338 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/Application.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/Application.java @@ -37,7 +37,6 @@ import com.iqser.red.service.persistence.management.v1.processor.PersistenceServ @EnableFeignClients(basePackageClasses = {RedactionClient.class}) public class Application { - /** * Entry point to the service application. * @@ -48,8 +47,10 @@ public class Application { SpringApplication.run(Application.class, args); } + @Bean public RetryTemplate retryTemplate(FileManagementServiceSettings settings) { + RetryTemplate retryTemplate = new RetryTemplate(); ExponentialBackOffPolicy backOffPolicy = new ExponentialBackOffPolicy(); @@ -63,5 +64,4 @@ public class Application { return retryTemplate; } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/TextNormalizationUtilities.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/TextNormalizationUtilities.java index c24960701..79f1128d1 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/TextNormalizationUtilities.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/TextNormalizationUtilities.java @@ -12,6 +12,7 @@ public class TextNormalizationUtilities { * @return Text without line-break hyphenation. */ public static String removeHyphenLineBreaks(String text) { + return text.replaceAll("\\s(\\S+)[\\-\\u00AD]\\R|\n\r(.+ )", "\n$1$2"); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/client/RedactionClient.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/client/RedactionClient.java index 4ee79c844..3a810a406 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/client/RedactionClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/client/RedactionClient.java @@ -1,8 +1,9 @@ package com.iqser.red.service.peristence.v1.server.client; -import com.iqser.red.service.redaction.v1.resources.RedactionResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.redaction.v1.resources.RedactionResource; + @FeignClient(name = "RedactionResource", url = "${redaction-service.url}") public interface RedactionClient extends RedactionResource { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/client/SearchClient.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/client/SearchClient.java index 27decb1d3..63f5bd2bf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/client/SearchClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/client/SearchClient.java @@ -1,8 +1,8 @@ package com.iqser.red.service.peristence.v1.server.client; -import com.iqser.red.service.search.v1.resources.SearchResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.search.v1.resources.SearchResource; @FeignClient(name = "SearchResource", url = "${search-service.url}") public interface SearchClient extends SearchResource { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/configuration/CleanupDownloadSchedulerConfiguration.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/configuration/CleanupDownloadSchedulerConfiguration.java index eabad4a56..f5669e018 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/configuration/CleanupDownloadSchedulerConfiguration.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/configuration/CleanupDownloadSchedulerConfiguration.java @@ -1,13 +1,14 @@ package com.iqser.red.service.peristence.v1.server.configuration; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import java.util.concurrent.Executor; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; -import java.util.concurrent.Executor; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; @Slf4j @Configuration @@ -15,7 +16,6 @@ import java.util.concurrent.Executor; @RequiredArgsConstructor public class CleanupDownloadSchedulerConfiguration { - @Bean public Executor taskExecutor() { @@ -27,5 +27,4 @@ public class CleanupDownloadSchedulerConfiguration { return executor; } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/configuration/MessagingConfiguration.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/configuration/MessagingConfiguration.java index 9a3d23213..ad4636296 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/configuration/MessagingConfiguration.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/configuration/MessagingConfiguration.java @@ -125,7 +125,10 @@ public class MessagingConfiguration { @Bean public Queue ocrStatusUpdateResponseQueue() { - return QueueBuilder.durable(OCR_STATUS_UPDATE_RESPONSE_QUEUE).withArgument("x-dead-letter-exchange", "").withArgument("x-dead-letter-routing-key", OCR_STATUS_UPDATE_RESPONSE_DQL).build(); + return QueueBuilder.durable(OCR_STATUS_UPDATE_RESPONSE_QUEUE) + .withArgument("x-dead-letter-exchange", "") + .withArgument("x-dead-letter-routing-key", OCR_STATUS_UPDATE_RESPONSE_DQL) + .build(); } @@ -136,7 +139,6 @@ public class MessagingConfiguration { } - @Bean public Queue redactionQueue() { @@ -180,6 +182,7 @@ public class MessagingConfiguration { return QueueBuilder.durable(DOWNLOAD_DLQ).build(); } + @Bean public Queue exportDownloadQueue() { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ApplicationConfigurationController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ApplicationConfigurationController.java index e815e18b0..3a33fb786 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ApplicationConfigurationController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ApplicationConfigurationController.java @@ -20,10 +20,13 @@ public class ApplicationConfigurationController implements ApplicationConfigurat public ApplicationConfig createOrUpdateAppConfig(@RequestBody ApplicationConfig appConfig) { + return convert(applicationConfigService.saveApplicationConfiguration(convert(appConfig, ApplicationConfigurationEntity.class)), ApplicationConfig.class); } + public ApplicationConfig getCurrentApplicationConfig() { + return convert(applicationConfigService.getApplicationConfig(), ApplicationConfig.class); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/AuditController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/AuditController.java index ff10a7b1a..a21ac3d29 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/AuditController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/AuditController.java @@ -1,5 +1,12 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; + +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + import com.iqser.red.service.persistence.management.v1.processor.service.persistence.AuditPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditModel; import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditRequest; @@ -7,13 +14,8 @@ import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditSearchR import com.iqser.red.service.persistence.service.v1.api.model.audit.CategoryModel; import com.iqser.red.service.persistence.service.v1.api.model.common.Page; import com.iqser.red.service.persistence.service.v1.api.resources.AuditResource; + import lombok.RequiredArgsConstructor; -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.utils.MagicConverter.convert; @RestController @RequiredArgsConstructor @@ -21,20 +23,25 @@ public class AuditController implements AuditResource { private final AuditPersistenceService auditPersistenceService; + @Override public void audit(@RequestBody AuditRequest auditRequest) { + auditPersistenceService.insertRecord(auditRequest); } + @Override public Page search(@RequestBody AuditSearchRequest auditSearchRequest) { + return convert(auditPersistenceService.search(auditSearchRequest), AuditModel.class); } + @Override public List getCategories() { + return auditPersistenceService.getCategories(); } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ControllerAdvice.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ControllerAdvice.java index b0ff4f86c..5e47ec606 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ControllerAdvice.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ControllerAdvice.java @@ -1,12 +1,7 @@ package com.iqser.red.service.peristence.v1.server.controller; -import com.iqser.red.commons.spring.ErrorMessage; -import com.iqser.red.service.peristence.v1.server.exception.InvalidRulesException; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; -import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; -import lombok.extern.slf4j.Slf4j; +import java.time.OffsetDateTime; + import org.postgresql.util.PSQLException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -15,7 +10,14 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestControllerAdvice; -import java.time.OffsetDateTime; +import com.iqser.red.commons.spring.ErrorMessage; +import com.iqser.red.service.peristence.v1.server.exception.InvalidRulesException; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; +import com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException; +import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; + +import lombok.extern.slf4j.Slf4j; @Slf4j @RestControllerAdvice @@ -23,52 +25,66 @@ public class ControllerAdvice { /* error handling */ + @ResponseBody @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) @ExceptionHandler(value = NullPointerException.class) public ErrorMessage handleContentNotFoundException(NullPointerException e) { + log.error(e.getMessage(), e); return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } + @ResponseBody @ResponseStatus(value = HttpStatus.NOT_FOUND) @ExceptionHandler(value = NotFoundException.class) public ErrorMessage handleFileNotFoundException(NotFoundException e) { + return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } + @ResponseBody @ResponseStatus(value = HttpStatus.NOT_FOUND) @ExceptionHandler(value = DossierNotFoundException.class) public ErrorMessage handleDossierNotFoundException(DossierNotFoundException e) { + return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } + @ResponseBody @ResponseStatus(value = HttpStatus.BAD_REQUEST) @ExceptionHandler(value = InvalidRulesException.class) public ErrorMessage handleInvalidRulesException(InvalidRulesException e) { + return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } + @ResponseBody @ResponseStatus(value = HttpStatus.CONFLICT) @ExceptionHandler(value = ConflictException.class) public ErrorMessage handleIConflictException(ConflictException e) { + return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } + @ResponseBody @ResponseStatus(value = HttpStatus.BAD_REQUEST) @ExceptionHandler(value = BadRequestException.class) public ErrorMessage handleIBadRequestException(BadRequestException e) { + return new ErrorMessage(OffsetDateTime.now(), e.getMessage()); } + @ResponseBody @ExceptionHandler(value = PSQLException.class) public ResponseEntity handleSQLException(PSQLException e) { + if (e.getMessage().contains("violates unique constraint")) { return new ResponseEntity<>(new ErrorMessage(OffsetDateTime.now(), "Unique constraint violation"), HttpStatus.CONFLICT); } else { @@ -76,4 +92,5 @@ public class ControllerAdvice { return new ResponseEntity<>(new ErrorMessage(OffsetDateTime.now(), "SQL Exception"), HttpStatus.INTERNAL_SERVER_ERROR); } } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java index 6e47feb0d..27a250a8d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DictionaryController.java @@ -1,5 +1,16 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; + +import javax.transaction.Transactional; + +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.peristence.v1.server.service.DictionaryService; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; @@ -10,17 +21,9 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ty import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type; import com.iqser.red.service.persistence.service.v1.api.resources.DictionaryResource; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -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 javax.transaction.Transactional; -import java.util.List; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @RestController @RequiredArgsConstructor @@ -34,7 +37,8 @@ public class DictionaryController implements DictionaryResource { @Override - public void addEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestBody List entries, + public void addEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId, + @RequestBody List entries, @RequestParam(value = "removeCurrent", required = false, defaultValue = "false") boolean removeCurrent, @RequestParam(value = "ignoreInvalidEntries", required = false, defaultValue = "false") boolean ignoreInvalidEntries, @RequestParam(value = "dictionaryEntryType", required = false, defaultValue = "ENTRY") DictionaryEntryType dictionaryEntryType) { @@ -44,7 +48,9 @@ public class DictionaryController implements DictionaryResource { @Override - public void deleteEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestBody List entries, @RequestParam(value = "dictionaryEntryType", required = false, defaultValue = "ENTRY") DictionaryEntryType dictionaryEntryType) { + public void deleteEntries(@PathVariable(TYPE_PARAMETER_NAME) String typeId, + @RequestBody List entries, + @RequestParam(value = "dictionaryEntryType", required = false, defaultValue = "ENTRY") DictionaryEntryType dictionaryEntryType) { dictionaryService.deleteEntries(typeId, entries, dictionaryEntryType); } @@ -72,9 +78,8 @@ public class DictionaryController implements DictionaryResource { @Override - public List getAllTypesForDossierTemplate( - @PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, - @RequestParam(value = INCLUDE_DELETED_PARAMETER_NAME, required = false, defaultValue = "false") boolean includeDeleted) { + public List getAllTypesForDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, + @RequestParam(value = INCLUDE_DELETED_PARAMETER_NAME, required = false, defaultValue = "false") boolean includeDeleted) { return convert(dictionaryPersistenceService.getAllTypesForDossierTemplate(dossierTemplateId, includeDeleted), Type.class); } @@ -105,6 +110,7 @@ public class DictionaryController implements DictionaryResource { public List getEntriesForType(@PathVariable(TYPE_PARAMETER_NAME) String typeId, @RequestParam(value = FROM_VERSION_PARAM, required = false) Long fromVersion, @RequestParam(value = "dictionaryEntryType", required = false, defaultValue = "ENTRY") DictionaryEntryType dictionaryEntryType) { + var entries = entryPersistenceService.getEntries(typeId, dictionaryEntryType, fromVersion); return convert(entries, DictionaryEntry.class); } @@ -125,8 +131,7 @@ 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) { colors.setDossierTemplateId(dossierTemplateId); colorsService.saveColors(convert(colors, ColorsEntity.class)); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierAttributesConfigController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierAttributesConfigController.java index bf613783c..6718fafaf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierAttributesConfigController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierAttributesConfigController.java @@ -1,55 +1,65 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; + +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.entity.dossier.DossierAttributeConfigEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesConfigResource; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -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.utils.MagicConverter.convert; @Slf4j @RestController @RequiredArgsConstructor public class DossierAttributesConfigController implements DossierAttributesConfigResource { - private final DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; + @Override public DossierAttributeConfig addOrUpdateDossierAttribute(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody DossierAttributeConfig dossierAttributeConfig) { - return convert( - dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, - convert(dossierAttributeConfig, DossierAttributeConfigEntity.class)), DossierAttributeConfig.class); + + return convert(dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, convert(dossierAttributeConfig, DossierAttributeConfigEntity.class)), + DossierAttributeConfig.class); } + @Override public List setDossierAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List dossierAttributesConfig) { - return convert( - dossierAttributeConfigPersistenceService.setDossierAttributesConfig(dossierTemplateId, - convert(dossierAttributesConfig, DossierAttributeConfigEntity.class)), DossierAttributeConfig.class); + + return convert(dossierAttributeConfigPersistenceService.setDossierAttributesConfig(dossierTemplateId, convert(dossierAttributesConfig, DossierAttributeConfigEntity.class)), + DossierAttributeConfig.class); } + @Override public void deleteDossierAttribute(@PathVariable(DOSSIER_ATTRIBUTE_ID) String dossierAttributeId) { + dossierAttributeConfigPersistenceService.deleteDossierAttribute(dossierAttributeId); } + @Override public void deleteDossierAttributes(@RequestBody List dossierAttributeIds) { + dossierAttributeConfigPersistenceService.deleteDossierAttributes(dossierAttributeIds); } + @Override public List getDossierAttributes(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { + return convert(dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId), DossierAttributeConfig.class); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java index 202f4b171..227b45f03 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierController.java @@ -126,13 +126,15 @@ public class DossierController implements DossierResource { // return both active and deleted dossiers if (includeDeleted) { - return convert(dossierEntitiesList.stream().filter(p -> p. getArchivedTime() == null || p.getSoftDeletedTime() != null).collect(Collectors.toList()), Dossier.class, new DossierMapper()); + return convert(dossierEntitiesList.stream().filter(p -> p.getArchivedTime() == null || p.getSoftDeletedTime() != null).collect(Collectors.toList()), + Dossier.class, + new DossierMapper()); } // return only active dossiers - return convert(dossierEntitiesList.stream() - .filter(p -> p.getSoftDeletedTime() == null && p.getArchivedTime() == null) - .collect(Collectors.toList()), Dossier.class, new DossierMapper()); + return convert(dossierEntitiesList.stream().filter(p -> p.getSoftDeletedTime() == null && p.getArchivedTime() == null).collect(Collectors.toList()), + Dossier.class, + new DossierMapper()); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatsController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatsController.java index 0d9111c5c..7b67e3f5a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatsController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatsController.java @@ -1,16 +1,16 @@ package com.iqser.red.service.peristence.v1.server.controller; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import org.springframework.web.bind.annotation.RestController; + import com.iqser.red.service.peristence.v1.server.service.DossierStatsService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStats; import com.iqser.red.service.persistence.service.v1.api.resources.DossierStatsResource; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RestController; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.function.Function; -import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor @@ -18,15 +18,20 @@ public class DossierStatsController implements DossierStatsResource { private final DossierStatsService dossierStatsService; + @Deprecated @Override public DossierStats getDossierStats(String dossierId) { + return dossierStatsService.getDossierStats(dossierId); } + @Deprecated @Override public List getDossierStats(Set dossierIds) { + return dossierIds.stream().map(dossierStatsService::getDossierStats).collect(Collectors.toList()); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatusController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatusController.java index 98718202f..096eebe3e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatusController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierStatusController.java @@ -1,20 +1,21 @@ package com.iqser.red.service.peristence.v1.server.controller; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierStatusPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; -import com.iqser.red.service.persistence.service.v1.api.resources.DossierStatusResource; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; + 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 static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierStatusPersistenceService; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; +import com.iqser.red.service.persistence.service.v1.api.resources.DossierStatusResource; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; @Slf4j @RestController @@ -23,29 +24,39 @@ public class DossierStatusController implements DossierStatusResource { private final DossierStatusPersistenceService dossierStatusPersistenceService; + @Override public DossierStatusInfo createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest dossierStatusRequest) { + return convert(dossierStatusPersistenceService.createOrUpdateDossierStatus(dossierStatusRequest), DossierStatusInfo.class); } @Override public List getAllDossierStatusForTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { + return convert(dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId), DossierStatusInfo.class); } + @Override public List getAllDossierStatuses(@RequestBody List dossierTemplateIds) { + return convert(dossierStatusPersistenceService.getAllDossierStatuses(dossierTemplateIds), DossierStatusInfo.class); } + @Override public DossierStatusInfo getDossierStatus(@PathVariable(DOSSIER_STATUS_ID) String dossierStatusId) { + return dossierStatusPersistenceService.getDossierStatusInfo(dossierStatusId); } + @Override public void deleteDossierStatus(String dossierStatusId, @RequestParam(value = DOSSIER_STATUS_REPLACE_ID, required = false) String replaceDossierStatusId) { + dossierStatusPersistenceService.deleteDossierStatus(dossierStatusId, replaceDossierStatusId); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateController.java index b4f9af2d1..339f54c4f 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateController.java @@ -1,5 +1,13 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; + +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.peristence.v1.server.model.DownloadJob; import com.iqser.red.service.peristence.v1.server.service.DossierTemplateImportService; @@ -13,16 +21,9 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.Do import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.importexport.ExportDownloadRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.importexport.ImportDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.resources.DossierTemplateResource; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -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 static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @Slf4j @RestController @@ -37,41 +38,54 @@ public class DossierTemplateController implements DossierTemplateResource { @Override public DossierTemplate createOrUpdateDossierTemplate(@RequestBody CreateOrUpdateDossierTemplateRequest dossierTemplate) { + return convert(dossierTemplatePersistenceService.createOrUpdateDossierTemplate(dossierTemplate), DossierTemplate.class); } + @Override public List getAllDossierTemplates() { + return convert(dossierTemplatePersistenceService.getAllDossierTemplates(), DossierTemplate.class); } + @Override public DossierTemplate getDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { + return convert(dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId), DossierTemplate.class); } + @Override public void deleteDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestParam(USER_ID_PARAM) String deletingUserId) { + dossierTemplatePersistenceService.deleteDossierTemplate(dossierTemplateId, deletingUserId); } + @Override - public DossierTemplate cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, - @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest) { - return convert(dossierTemplateCloneService.cloneDossierTemplate(dossierTemplateId,cloneDossierTemplateRequest), DossierTemplate.class); + public DossierTemplate cloneDossierTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody CloneDossierTemplateRequest cloneDossierTemplateRequest) { + + return convert(dossierTemplateCloneService.cloneDossierTemplate(dossierTemplateId, cloneDossierTemplateRequest), DossierTemplate.class); } + @Override public JSONPrimitive prepareExportDownload(@RequestBody ExportDownloadRequest request) { return dossierTemplateExportService.prepareExportDownload(request); } + public void createExportDownload(@RequestParam String userId, @RequestParam String storageId) { + dossierTemplateExportService.createDownloadArchive(DownloadJob.builder().userId(userId).storageId(storageId).build()); } + public DossierTemplate importDossierTemplate(@RequestBody ImportDossierTemplateRequest request) { + String dossierTemplateId = dossierTemplateImportService.importDossierTemplate(request); return convert(dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId), DossierTemplate.class); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateStatsController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateStatsController.java index b4bb7c3e5..088c06e42 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateStatsController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DossierTemplateStatsController.java @@ -1,16 +1,18 @@ package com.iqser.red.service.peristence.v1.server.controller; +import java.util.List; +import java.util.Set; + +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.peristence.v1.server.service.DossierTemplateStatsService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateDictionaryStats; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStats; import com.iqser.red.service.persistence.service.v1.api.resources.DossierTemplateStatsResource; -import lombok.RequiredArgsConstructor; -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 lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor @@ -18,18 +20,25 @@ public class DossierTemplateStatsController implements DossierTemplateStatsResou private final DossierTemplateStatsService dossierTemplateStatsService; + @Override public List getDossierTemplateDictionaryStats(@RequestBody Set dossierTemplateIds) { + return dossierTemplateStatsService.getDossierTemplateStats(dossierTemplateIds); } + @Override public DossierTemplateStats getDossierTemplateStats(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { + return dossierTemplateStatsService.getDossierTemplateStats(dossierTemplateId); } + @Override public List getDossierTemplateStats() { + return dossierTemplateStatsService.getDossierTemplateStats(); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DownloadController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DownloadController.java index efc161599..3a89a20c8 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DownloadController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/DownloadController.java @@ -6,8 +6,6 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; @@ -20,10 +18,12 @@ import com.iqser.red.service.peristence.v1.server.model.DownloadJob; import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.download.DownloadStatusEntity; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadRequest; import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadStatus; import com.iqser.red.service.persistence.service.v1.api.resources.DownloadResource; @@ -48,9 +48,12 @@ public class DownloadController implements DownloadResource { var mimeType = "application/zip"; var existingFileStatuses = fileStatusPersistenceService.getStatusesForDossier(request.getDossierId()); - var filesInNotApprovedState = existingFileStatuses.stream().filter(f -> request.getFileIds().contains(f.getId()) && !WorkflowStatus.APPROVED.equals(f.getWorkflowStatus())).collect(Collectors.toList()); - if (!filesInNotApprovedState.isEmpty()) + var filesInNotApprovedState = existingFileStatuses.stream() + .filter(f -> request.getFileIds().contains(f.getId()) && !WorkflowStatus.APPROVED.equals(f.getWorkflowStatus())) + .collect(Collectors.toList()); + if (!filesInNotApprovedState.isEmpty()) { throw new BadRequestException("At least one file is not in Approved state"); + } String downloadFilename = buildName(request.getDossierId(), request.getFileIds(), request.getUserId(), mimeType, existingFileStatuses); String storageId = StorageIdUtils.getStorageId(request.getUserId(), request.getDossierId(), downloadFilename); var dossier = dossierPersistenceService.getActiveOrArchivedDossier(request.getDossierId()); @@ -94,15 +97,11 @@ public class DownloadController implements DownloadResource { } - private String buildName(String dossierId, List fileIds, String userId, String mimeType, - List existingFileStatuses) { + private String buildName(String dossierId, List fileIds, String userId, String mimeType, List existingFileStatuses) { var dossier = dossierPersistenceService.getActiveOrArchivedDossier(dossierId); - Set existingFilenames = downloadStatusPersistenceService.getStatusesByUser(userId) - .stream() - .map(DownloadStatusEntity::getFilename) - .collect(Collectors.toSet()); + Set existingFilenames = downloadStatusPersistenceService.getStatusesByUser(userId).stream().map(DownloadStatusEntity::getFilename).collect(Collectors.toSet()); if (fileIds.size() == 1) { var file = fileStatusPersistenceService.getStatus(fileIds.iterator().next()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileAttributesConfigController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileAttributesConfigController.java index c31f527e8..70858bea2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileAttributesConfigController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileAttributesConfigController.java @@ -1,63 +1,82 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; + +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.entity.configuration.FileAttributesGeneralConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.FileAttributesGeneralConfiguration; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesConfigResource; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -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.utils.MagicConverter.convert; @Slf4j @RestController @RequiredArgsConstructor public class FileAttributesConfigController implements FileAttributesConfigResource { - private final FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; + @Override public FileAttributeConfig addOrUpdateFileAttributeConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributeConfig fileAttributeConfig) { - return convert(fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, convert(fileAttributeConfig, FileAttributeConfigEntity.class)), FileAttributeConfig.class); + + return convert(fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, convert(fileAttributeConfig, FileAttributeConfigEntity.class)), + FileAttributeConfig.class); } + @Override public FileAttributesGeneralConfiguration setFileAttributesGeneralConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody FileAttributesGeneralConfiguration fileAttributesConfig) { + return convert(fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId, convert(fileAttributesConfig, FileAttributesGeneralConfigurationEntity.class)), FileAttributesGeneralConfiguration.class); } + @Override public FileAttributesGeneralConfiguration getFileAttributesGeneralConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { + return convert(fileAttributeConfigPersistenceService.getFileAttributesGeneralConfiguration(dossierTemplateId), FileAttributesGeneralConfiguration.class); } + @Override - public List setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @RequestBody List fileAttributesConfig) { - return convert(fileAttributeConfigPersistenceService.setFileAttributesConfig(dossierTemplateId, convert(fileAttributesConfig, FileAttributeConfigEntity.class)), FileAttributeConfig.class); + public List setFileAttributesConfig(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, + @RequestBody List fileAttributesConfig) { + + return convert(fileAttributeConfigPersistenceService.setFileAttributesConfig(dossierTemplateId, convert(fileAttributesConfig, FileAttributeConfigEntity.class)), + FileAttributeConfig.class); } + @Override public void deleteFileAttributeConfigs(@PathVariable(FILE_ATTRIBUTE_ID) String fileAttributeId) { + fileAttributeConfigPersistenceService.deleteFileAttribute(fileAttributeId); } + @Override public void deleteFileAttributeConfigs(@RequestBody List fileAttributeIds) { + fileAttributeConfigPersistenceService.deleteFileAttributes(fileAttributeIds); } + @Override public List getFileAttributeConfigs(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId) { + return convert(fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId), FileAttributeConfig.class); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileAttributesController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileAttributesController.java index a2befdc2f..5613e4c44 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileAttributesController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileAttributesController.java @@ -1,13 +1,32 @@ package com.iqser.red.service.peristence.v1.server.controller; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + import com.google.common.collect.Lists; -import com.iqser.red.service.peristence.v1.server.service.DossierService; import com.iqser.red.service.peristence.v1.server.service.FileStatusService; import com.iqser.red.service.peristence.v1.server.service.IndexingService; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; @@ -15,7 +34,6 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ImportCsvResponse; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesResource; import com.iqser.red.service.persistence.service.v1.api.utils.SuppressFBWarnings; import com.iqser.red.service.search.v1.model.IndexMessageType; @@ -24,21 +42,9 @@ import com.opencsv.CSVParserBuilder; import com.opencsv.CSVReader; import com.opencsv.CSVReaderBuilder; import com.opencsv.exceptions.CsvException; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -import javax.transaction.Transactional; -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; -import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; @Slf4j @RestController @@ -53,8 +59,7 @@ public class FileAttributesController implements FileAttributesResource { @Transactional - public ImportCsvResponse importCsv(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @RequestBody ImportCsvRequest importCsvRequest) { + public ImportCsvResponse importCsv(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody ImportCsvRequest importCsvRequest) { DossierEntity dossier = dossierPersistenceService.getAndValidateDossier(dossierId); @@ -124,8 +129,7 @@ public class FileAttributesController implements FileAttributesResource { } - public void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId, @RequestBody Map fileAttributesMap) { + public void setFileAttributes(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody Map fileAttributesMap) { fileStatusPersistenceService.setFileAttributes(dossierId, fileId, fileAttributesMap); fileStatusService.setStatusReprocess(dossierId, fileId, true); @@ -140,8 +144,7 @@ public class FileAttributesController implements FileAttributesResource { List> records = new ArrayList<>(); - try (CSVReader csvReader = new CSVReaderBuilder(new BufferedReader(new InputStreamReader(new ByteArrayInputStream(csv), StandardCharsets.UTF_8))) - .withCSVParser(parser) + try (CSVReader csvReader = new CSVReaderBuilder(new BufferedReader(new InputStreamReader(new ByteArrayInputStream(csv), StandardCharsets.UTF_8))).withCSVParser(parser) .build()) { records.addAll(csvReader.readAll().stream().map(Lists::newArrayList).collect(Collectors.toList())); } catch (IOException | CsvException e) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusController.java index 11be1d36a..b05d8cc7b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusController.java @@ -79,7 +79,8 @@ public class FileStatusController implements StatusResource { @Override - public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + public void setCurrentFileAssignee(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestParam(value = ASSIGNEE_ID_REQUEST_PARAM, required = false) String assigneeId) { fileStatusService.setAssignee(fileId, assigneeId); @@ -87,7 +88,8 @@ public class FileStatusController implements StatusResource { } - public void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + public void setStatusUnderReview(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestParam(value = USER_ID_REQUEST_PARAM, required = false) String userId) { FileModel fileStatus = fileStatusService.getStatus(fileId); @@ -102,7 +104,8 @@ public class FileStatusController implements StatusResource { } - public void setStatusUnderApproval(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + public void setStatusUnderApproval(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId) { FileModel fileStatus = fileStatusService.getStatus(fileId); @@ -118,7 +121,8 @@ public class FileStatusController implements StatusResource { } - public void setStatusApproved(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + public void setStatusApproved(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestParam(value = APPROVER_ID_REQUEST_PARAM, required = false) String approverId) { FileModel fileStatus = fileStatusService.getStatus(fileId); @@ -154,7 +158,8 @@ public class FileStatusController implements StatusResource { } - public void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + public void toggleAutomaticAnalysis(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestParam(EXCLUDED_STATUS_PARAM) boolean excludedFromAutomaticAnalysis) { excludeFromAnalysis.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusProcessingUpdateController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusProcessingUpdateController.java index 6f907a369..5c7ce8d3a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusProcessingUpdateController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/FileStatusProcessingUpdateController.java @@ -28,15 +28,13 @@ public class FileStatusProcessingUpdateController implements FileStatusProcessin } - public void preprocessingFailed(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId) { + public void preprocessingFailed(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) { fileStatusProcessingUpdateService.preprocessingFailed(dossierId, fileId); } - public void analysisSuccessful(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId, @RequestBody AnalyzeResult analyzeResult) { + public void analysisSuccessful(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, @RequestBody AnalyzeResult analyzeResult) { fileStatusProcessingUpdateService.analysisSuccessful(dossierId, fileId, analyzeResult); } @@ -78,8 +76,7 @@ public class FileStatusProcessingUpdateController implements FileStatusProcessin } - public void indexingSuccessful(@PathVariable(DOSSIER_ID_PARAM) String dossierId, - @PathVariable(FILE_ID) String fileId) { + public void indexingSuccessful(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId) { fileStatusProcessingUpdateService.indexingSuccessful(dossierId, fileId); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java index 9f68be805..3730460a7 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LegalBasisMappingController.java @@ -1,36 +1,42 @@ package com.iqser.red.service.peristence.v1.server.controller; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; -import com.iqser.red.service.persistence.service.v1.api.resources.LegalBasisMappingResource; -import lombok.RequiredArgsConstructor; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; + +import javax.transaction.Transactional; + import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import javax.transaction.Transactional; -import java.util.List; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; +import com.iqser.red.service.persistence.service.v1.api.resources.LegalBasisMappingResource; +import lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor public class LegalBasisMappingController implements LegalBasisMappingResource { - private final LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; + @Override public void deleteLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisNames) { + legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId, legalBasisNames); } + @Override public void addOrUpdateLegalBasis(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody LegalBasis legalBasis) { + legalBasisMappingPersistenceService.addOrUpdateLegalBasis(dossierTemplateId, legalBasis); } + @Override @Transactional public void setLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List legalBasisMapping) { @@ -39,14 +45,19 @@ public class LegalBasisMappingController implements LegalBasisMappingResource { } + @Override @Transactional public List getLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { + return convert(legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplateId), LegalBasis.class); } + @Override public long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { + return legalBasisMappingPersistenceService.getVersion(dossierTemplateId); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LicenseReportController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LicenseReportController.java index ed10227a1..9de2e407b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LicenseReportController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/LicenseReportController.java @@ -1,13 +1,15 @@ package com.iqser.red.service.peristence.v1.server.controller; +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.peristence.v1.server.service.LicenseReportService; import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReport; import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReportRequest; import com.iqser.red.service.persistence.service.v1.api.resources.LicenseReportResource; + import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; @RestController @RequiredArgsConstructor diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ManualRedactionController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ManualRedactionController.java index d4edee7f8..14e50e218 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ManualRedactionController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ManualRedactionController.java @@ -41,7 +41,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public List addAddRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public List addAddRedaction(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List addRedactionRequests) { return manualRedactionService.addAddRedaction(dossierId, fileId, addRedactionRequests); @@ -49,7 +50,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public List addRemoveRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public List addRemoveRedaction(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List removeRedactionRequests) { return manualRedactionService.addRemoveRedaction(dossierId, fileId, removeRedactionRequests); @@ -57,7 +59,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public List addForceRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public List addForceRedaction(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List forceRedactionRequests) { return manualRedactionService.addForceRedaction(dossierId, fileId, forceRedactionRequests); @@ -65,7 +68,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public List addLegalBasisChange(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public List addLegalBasisChange(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List legalBasisChangeRequests) { return manualRedactionService.addLegalBasisChange(dossierId, fileId, legalBasisChangeRequests); @@ -73,7 +77,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public List addImageRecategorization(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public List addImageRecategorization(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List imageRecategorizationRequests) { return manualRedactionService.addImageRecategorization(dossierId, fileId, imageRecategorizationRequests); @@ -81,7 +86,9 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public Comment addComment(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, @PathVariable(ANNOTATION_ID) String annotationId, + public Comment addComment(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, + @PathVariable(ANNOTATION_ID) String annotationId, @RequestBody CommentRequest comment) { return convert(manualRedactionService.addComment(fileId, annotationId, comment), Comment.class); @@ -89,7 +96,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public List addResizeRedaction(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public List addResizeRedaction(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody List resizeRedactionRequests) { return manualRedactionService.addResizeRedaction(dossierId, fileId, resizeRedactionRequests); @@ -192,7 +200,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public void updateAddRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public void updateAddRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody UpdateRedactionRequest updateStatusRequest) { manualRedactionService.updateAddRedactionStatus(dossierId, fileId, updateStatusRequest.getAnnotationIds(), updateStatusRequest.getAnnotationStatus()); @@ -200,7 +209,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public void updateRemoveRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public void updateRemoveRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody UpdateRedactionRequest updateStatusRequest) { manualRedactionService.updateRemoveRedactionStatus(dossierId, fileId, updateStatusRequest.getAnnotationIds(), updateStatusRequest.getAnnotationStatus()); @@ -208,14 +218,16 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public void updateForceRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public void updateForceRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody UpdateRedactionRequest updateStatusRequest) { manualRedactionService.updateForceRedactionStatus(dossierId, fileId, updateStatusRequest.getAnnotationIds(), updateStatusRequest.getAnnotationStatus()); } - public void updateLegalBasisChangeStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public void updateLegalBasisChangeStatus(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody UpdateRedactionRequest updateStatusRequest) { manualRedactionService.updateLegalBasisChangeStatus(dossierId, fileId, updateStatusRequest.getAnnotationIds(), updateStatusRequest.getAnnotationStatus()); @@ -223,7 +235,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public void updateImageRecategorizationStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public void updateImageRecategorizationStatus(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody UpdateRedactionRequest updateStatusRequest) { manualRedactionService.updateImageRecategorizationStatus(dossierId, fileId, updateStatusRequest.getAnnotationIds(), updateStatusRequest.getAnnotationStatus()); @@ -231,7 +244,8 @@ public class ManualRedactionController implements ManualRedactionResource { @Override - public void updateResizeRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, @PathVariable(FILE_ID) String fileId, + public void updateResizeRedactionStatus(@PathVariable(DOSSIER_ID) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody UpdateRedactionRequest updateStatusRequest) { manualRedactionService.updateResizeRedactionStatus(dossierId, fileId, updateStatusRequest.getAnnotationIds(), updateStatusRequest.getAnnotationStatus()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/NotificationPreferencesController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/NotificationPreferencesController.java index a93842dc9..12a451f73 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/NotificationPreferencesController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/NotificationPreferencesController.java @@ -1,12 +1,14 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import org.springframework.web.bind.annotation.RestController; + import com.iqser.red.service.persistence.management.v1.processor.service.persistence.NotificationPreferencesPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.notification.NotificationPreferences; import com.iqser.red.service.persistence.service.v1.api.resources.NotificationPreferencesResource; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RestController; -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; +import lombok.RequiredArgsConstructor; @RestController @RequiredArgsConstructor @@ -14,18 +16,25 @@ public class NotificationPreferencesController implements NotificationPreference private final NotificationPreferencesPersistenceService notificationPreferencesPersistenceService; + @Override public void setNotificationPreferences(String userId, NotificationPreferences notificationRequest) { + notificationPreferencesPersistenceService.setNotificationPreference(userId, notificationRequest); } + @Override public NotificationPreferences getNotificationPreferences(String userId) { + return convert(notificationPreferencesPersistenceService.getOrCreateNotificationPreferences(userId), NotificationPreferences.class); } + @Override public void deleteNotificationPreferences(String userId) { + notificationPreferencesPersistenceService.deleteNotificationPreferences(userId); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReanalysisController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReanalysisController.java index 73d7f8b6a..51538c330 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReanalysisController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReanalysisController.java @@ -57,7 +57,8 @@ public class ReanalysisController implements ReanalysisResource { @Override - public void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody Set fileIds, + public void reanalyzeFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @RequestBody Set fileIds, @RequestParam(value = "force", required = false, defaultValue = FALSE) boolean force) { var relevantFiles = getRelevantFiles(dossierId, fileIds); @@ -69,7 +70,9 @@ public class ReanalysisController implements ReanalysisResource { var relevantFiles = getAllFilesForDossier(dossierId, true); - relevantFiles.stream().filter(fileStatus -> fileStatus.getOcrStartTime() == null).forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId())); + relevantFiles.stream() + .filter(fileStatus -> fileStatus.getOcrStartTime() == null) + .forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId())); } @@ -77,11 +80,14 @@ public class ReanalysisController implements ReanalysisResource { var relevantFiles = getRelevantFiles(dossierId, fileIds); - relevantFiles.stream().filter(fileStatus -> fileStatus.getOcrStartTime() == null).forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId())); + relevantFiles.stream() + .filter(fileStatus -> fileStatus.getOcrStartTime() == null) + .forEach(fileStatus -> fileStatusService.setStatusOcrQueued(dossierId, fileStatus.getId())); } - public void ocrFile(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID_PARAM) String fileId, + public void ocrFile(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID_PARAM) String fileId, @RequestParam(value = "force", required = false, defaultValue = FALSE) boolean force) { dossierPersistenceService.getAndValidateDossier(dossierId); @@ -117,14 +123,17 @@ public class ReanalysisController implements ReanalysisResource { var importedRedactions = fileManagementStorageService.getImportedRedactions(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId()); importedRedactions.getImportedRedactions().forEach((key, value) -> value.removeIf(v -> deleteImportedRedactionsRequest.getAnnotationIds().contains(v.getId()))); - fileManagementStorageService.storeJSONObject(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId(), FileType.IMPORTED_REDACTIONS, + fileManagementStorageService.storeJSONObject(deleteImportedRedactionsRequest.getDossierId(), + deleteImportedRedactionsRequest.getFileId(), + FileType.IMPORTED_REDACTIONS, importedRedactions); fileStatusService.setStatusFullReprocess(deleteImportedRedactionsRequest.getDossierId(), deleteImportedRedactionsRequest.getFileId(), true, false); } public void reindex(@RequestParam(value = DOSSIER_ID_PARAM, required = false) String dossierId, - @RequestParam(value = "dropIndex", required = false, defaultValue = FALSE) boolean dropIndex, @RequestBody Set fileIds) { + @RequestParam(value = "dropIndex", required = false, defaultValue = FALSE) boolean dropIndex, + @RequestBody Set fileIds) { indexingService.reindex(dossierId, fileIds, dropIndex); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RedactionLogController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RedactionLogController.java index 599f76a7a..a671aae67 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RedactionLogController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RedactionLogController.java @@ -22,7 +22,8 @@ public class RedactionLogController implements RedactionLogResource { private final RedactionLogService redactionLogService; - public RedactionLog getRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + public RedactionLog getRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestParam(value = "excludedType", required = false) List excludedTypes, @RequestParam(value = "withManualRedactions", required = false, defaultValue = "true") boolean withManualRedactions, @RequestParam(value = "includeFalsePositives", required = false, defaultValue = "false") boolean includeFalsePositives) { @@ -37,7 +38,8 @@ public class RedactionLogController implements RedactionLogResource { } - public RedactionLog getFilteredRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @PathVariable(FILE_ID) String fileId, + public RedactionLog getFilteredRedactionLog(@PathVariable(DOSSIER_ID_PARAM) String dossierId, + @PathVariable(FILE_ID) String fileId, @RequestBody FilteredRedactionLogRequest filteredRedactionLogRequest) { return redactionLogService.getFilteredRedactionLog(dossierId, fileId, filteredRedactionLogRequest); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReportTemplateController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReportTemplateController.java index 4f1b482e4..a87c0b032 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReportTemplateController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ReportTemplateController.java @@ -5,18 +5,17 @@ import static com.iqser.red.service.persistence.management.v1.processor.utils.Ma import java.io.IOException; import java.util.List; -import com.iqser.red.service.peristence.v1.server.service.ReportTemplateService; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest; - import org.apache.commons.io.IOUtils; 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.peristence.v1.server.service.ReportTemplateService; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateDownload; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest; import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource; import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; @@ -72,7 +71,8 @@ public class ReportTemplateController implements ReportTemplateResource { } - public void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, @PathVariable(TEMPLATE_ID) String templateId, + public void updateTemplate(@PathVariable(DOSSIER_TEMPLATE_ID) String dossierTemplateId, + @PathVariable(TEMPLATE_ID) String templateId, @RequestBody ReportTemplateUpdateRequest reportTemplateUpdateRequest) { reportTemplatePersistenceService.updateTemplate(dossierTemplateId, templateId, reportTemplateUpdateRequest); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RulesController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RulesController.java index 4e094e93e..a443bf50e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RulesController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/RulesController.java @@ -1,17 +1,19 @@ package com.iqser.red.service.peristence.v1.server.controller; +import org.springframework.http.HttpStatus; +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.peristence.v1.server.client.RedactionClient; import com.iqser.red.service.peristence.v1.server.exception.InvalidRulesException; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.resources.RulesResource; + import feign.FeignException; import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; @RestController @RequiredArgsConstructor @@ -46,6 +48,7 @@ public class RulesController implements RulesResource { @Override public long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) { + try { return rulesPersistenceService.getRules(dossierTemplateId).getVersion(); } catch (NotFoundException e) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/SMTPConfigurationController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/SMTPConfigurationController.java index d555e87ea..bee2344c6 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/SMTPConfigurationController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/SMTPConfigurationController.java @@ -1,19 +1,21 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import org.apache.commons.lang3.StringUtils; +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.entity.configuration.SMTPConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.service.EmailService; import com.iqser.red.service.persistence.management.v1.processor.service.EncryptionDecryptionService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.SMTPConfigurationService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.SMTPConfiguration; import com.iqser.red.service.persistence.service.v1.api.resources.SMTPConfigurationResource; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @Slf4j @RestController @@ -26,8 +28,10 @@ public class SMTPConfigurationController implements SMTPConfigurationResource { private final EncryptionDecryptionService encryptionDecryptionService; + @Override public SMTPConfiguration getCurrentSMTPConfiguration(@RequestParam(value = MASK_PASSWORD, required = false, defaultValue = "true") boolean maskPassword) { + var smtpConfiguration = smtpConfigurationService.getConfiguration(); if (smtpConfiguration.isAuth() && maskPassword) { smtpConfiguration.setPassword(DEFAULT_PASSWORD); @@ -35,12 +39,15 @@ public class SMTPConfigurationController implements SMTPConfigurationResource { return convert(smtpConfiguration, SMTPConfiguration.class); } + @Override public void updateSMTPConfiguration(@RequestBody SMTPConfiguration smtpConfiguration) { + updatePassword(smtpConfiguration); smtpConfigurationService.saveConfiguration(convert(smtpConfiguration, SMTPConfigurationEntity.class)); } + @Override public void testSMTPConfiguration(@RequestParam(value = TEST_EMAIL, required = false) String testEmail, @RequestBody SMTPConfiguration smtpConfiguration) { @@ -57,11 +64,14 @@ public class SMTPConfigurationController implements SMTPConfigurationResource { emailService.send(smtpConfiguration, targetEmail, "Redaction Test Message", "This is a test message"); } + @Override public void clearSMTPConfiguration() { + smtpConfigurationService.deleteConfiguration(); } + private void updatePassword(SMTPConfiguration smtpConfiguration) { if (DEFAULT_PASSWORD.equals(smtpConfiguration.getPassword())) { @@ -71,8 +81,9 @@ public class SMTPConfigurationController implements SMTPConfigurationResource { } catch (Exception e) { log.debug("No current SMTP Config exists", e); } - }else{ + } else { smtpConfiguration.setPassword(encryptionDecryptionService.encrypt(smtpConfiguration.getPassword())); } } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/TenantsController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/TenantsController.java index da5c9803f..611e9925f 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/TenantsController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/TenantsController.java @@ -23,21 +23,19 @@ public class TenantsController implements TenantsResource { private final DeploymentKeyService deploymentKeyService; - - public void createTenant(@RequestBody TenantRequest tenantRequest) { tenantManagementService.createTenant(tenantRequest); } - public List getTenants(){ + public List getTenants() { return tenantManagementService.getTenants(); } - public JSONPrimitive getDeploymentKey(@PathVariable(TENANT_ID_PARAM) String tenantId){ + public JSONPrimitive getDeploymentKey(@PathVariable(TENANT_ID_PARAM) String tenantId) { return JSONPrimitive.of(deploymentKeyService.getDeploymentKey(tenantId)); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/UploadController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/UploadController.java index 9ca0c4cec..859e4d862 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/UploadController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/UploadController.java @@ -1,5 +1,18 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; + +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.Set; + +import javax.transaction.Transactional; + +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.peristence.v1.server.service.DossierService; import com.iqser.red.service.peristence.v1.server.service.FileService; import com.iqser.red.service.peristence.v1.server.service.FileStatusService; @@ -8,18 +21,8 @@ import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimiti import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.AddFileRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.persistence.service.v1.api.resources.UploadResource; + import lombok.RequiredArgsConstructor; -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 javax.transaction.Transactional; -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.Set; - -import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE; @RestController @RequiredArgsConstructor @@ -29,8 +32,10 @@ public class UploadController implements UploadResource { private final FileStatusService fileStatusService; private final DossierService dossierService; + @Override - public JSONPrimitive upload(@RequestBody AddFileRequest request, @RequestParam(value = "keepManualRedactions", required = false, defaultValue = "false") boolean keepManualRedactions) { + public JSONPrimitive upload(@RequestBody AddFileRequest request, + @RequestParam(value = "keepManualRedactions", required = false, defaultValue = "false") boolean keepManualRedactions) { return fileService.upload(request, keepManualRedactions); } @@ -50,6 +55,7 @@ public class UploadController implements UploadResource { fileStatusService.setFileStatusDeleted(fileId, softDeleteTime); } + @Override public void hardDeleteFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody Set fileIds) { @@ -65,8 +71,10 @@ public class UploadController implements UploadResource { } + @Override public void undeleteFiles(@PathVariable(DOSSIER_ID_PARAM) String dossierId, @RequestBody Set fileIds) { + var dossier = dossierService.getDossierById(dossierId); if (dossier.getSoftDeletedTime() != null) { throw new DossierNotFoundException(String.format(DOSSIER_NOT_FOUND_MESSAGE, dossierId)); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ViewedPagesController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ViewedPagesController.java index 71c017758..156d3d0b0 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ViewedPagesController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/controller/ViewedPagesController.java @@ -1,18 +1,20 @@ package com.iqser.red.service.peristence.v1.server.controller; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.util.List; + +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.peristence.v1.server.service.AnalysisFlagsCalculationService; import com.iqser.red.service.peristence.v1.server.service.FileStatusService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.annotations.ViewedPage; import com.iqser.red.service.persistence.service.v1.api.resources.ViewedPagesResource; + import lombok.RequiredArgsConstructor; -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.utils.MagicConverter.convert; @RestController @RequiredArgsConstructor @@ -23,8 +25,7 @@ public class ViewedPagesController implements ViewedPagesResource { private final AnalysisFlagsCalculationService analysisFlagsCalculationService; - public void addPage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role, - @RequestBody Integer page) { + public void addPage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role, @RequestBody Integer page) { viewedPagesPersistenceService.insertPage(fileId, role, page); var file = fileStatusService.getStatus(fileId); @@ -32,8 +33,7 @@ public class ViewedPagesController implements ViewedPagesResource { } - public void removePage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role, - @RequestBody Integer page) { + public void removePage(@PathVariable(FILE_ID) String fileId, @PathVariable(ROLE) String role, @RequestBody Integer page) { viewedPagesPersistenceService.removePage(fileId, role, page); var file = fileStatusService.getStatus(fileId); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/exception/InvalidRulesException.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/exception/InvalidRulesException.java index 5a3c620b8..e1ac5c5c5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/exception/InvalidRulesException.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/exception/InvalidRulesException.java @@ -3,6 +3,7 @@ package com.iqser.red.service.peristence.v1.server.exception; public class InvalidRulesException extends RuntimeException { public InvalidRulesException(String message) { + super(message); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/internal/AdminInterfaceController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/internal/AdminInterfaceController.java index 0b4906b17..04bfdf9e1 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/internal/AdminInterfaceController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/internal/AdminInterfaceController.java @@ -31,7 +31,6 @@ public class AdminInterfaceController { private final AmqpAdmin amqpAdmin; - @PostMapping("/reset-file") public void resetFile(@RequestParam("dossierId") String dossierId, @RequestParam("fileId") String fileId) { @@ -44,7 +43,6 @@ public class AdminInterfaceController { fileStatusService.setStatusFullReprocess(dossierId, fileId, true, true); - } @@ -82,12 +80,16 @@ public class AdminInterfaceController { .filter(f -> !f.isExcludedFromAutomaticAnalysis()) .filter(f -> !f.isSoftOrHardDeleted()) .filter(f -> f.getOcrStartTime() != null) - .filter(f -> f.getWorkflowStatus() != WorkflowStatus.APPROVED).collect(Collectors.toList()); - + .filter(f -> f.getWorkflowStatus() != WorkflowStatus.APPROVED) + .collect(Collectors.toList()); for (var file : filesThatRequireOCR) { log.info("Will OCR file: {} from dossier {} with status {} and processing status {} with last OCR time {}", - file.getId(), file.getDossierId(), file.getWorkflowStatus(), file.getProcessingStatus(), file.getOcrStartTime()); + file.getId(), + file.getDossierId(), + file.getWorkflowStatus(), + file.getProcessingStatus(), + file.getOcrStartTime()); if (!dryRun) { fileStatusService.setStatusOcrQueued(file.getDossierId(), file.getId()); @@ -95,7 +97,6 @@ public class AdminInterfaceController { } - } } } @@ -116,12 +117,16 @@ public class AdminInterfaceController { .filter(f -> !f.isExcluded()) .filter(f -> !f.isExcludedFromAutomaticAnalysis()) .filter(f -> !f.isSoftOrHardDeleted()) - .filter(f -> f.getWorkflowStatus() != WorkflowStatus.APPROVED).collect(Collectors.toList()); - + .filter(f -> f.getWorkflowStatus() != WorkflowStatus.APPROVED) + .collect(Collectors.toList()); for (var file : filesThatRequireTextReset) { log.info("Will OCR file: {} from dossier {} with status {} and processing status {} with last OCR time {}", - file.getId(), file.getDossierId(), file.getWorkflowStatus(), file.getProcessingStatus(), file.getOcrStartTime()); + file.getId(), + file.getDossierId(), + file.getWorkflowStatus(), + file.getProcessingStatus(), + file.getOcrStartTime()); if (!dryRun) { @@ -138,15 +143,15 @@ public class AdminInterfaceController { } - } } } + @PostMapping("/flush-queue") - public void resetText(@RequestParam() String queueName ) { + public void resetText(@RequestParam() String queueName) { + amqpAdmin.purgeQueue(queueName); } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/jobs/CreateJobsConfiguration.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/jobs/CreateJobsConfiguration.java index 5cff38134..1d22845db 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/jobs/CreateJobsConfiguration.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/jobs/CreateJobsConfiguration.java @@ -1,30 +1,41 @@ package com.iqser.red.service.peristence.v1.server.jobs; +import java.text.ParseException; + +import org.quartz.CronExpression; +import org.quartz.CronScheduleBuilder; +import org.quartz.JobBuilder; +import org.quartz.JobDetail; +import org.quartz.Trigger; +import org.quartz.TriggerBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + import com.iqser.red.service.peristence.v1.server.service.job.AutomaticAnalysisJob; import com.iqser.red.service.peristence.v1.server.service.job.DeletedFilesCleanupJob; import com.iqser.red.service.peristence.v1.server.service.job.DownloadCleanupJob; import com.iqser.red.service.peristence.v1.server.service.job.SendNotificationEmailJob; -import org.quartz.*; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import java.text.ParseException; @Configuration public class CreateJobsConfiguration { @Bean public JobDetail notificationEmailSummaryJob() { - return JobBuilder.newJob().ofType(SendNotificationEmailJob.class) + + return JobBuilder.newJob() + .ofType(SendNotificationEmailJob.class) .storeDurably() .withIdentity("SendNotificationEmailJob") .withDescription("Send summary email with daily/weekly notifications") .build(); } + @Bean public Trigger notificationEmailSummaryJobTrigger() throws ParseException { - return TriggerBuilder.newTrigger().forJob(notificationEmailSummaryJob()) + + return TriggerBuilder.newTrigger() + .forJob(notificationEmailSummaryJob()) .withIdentity("SendNotificationEmailJobTrigger") .withDescription("Triggers SendNotificationEmailJob every night at 3 AM") .withSchedule(CronScheduleBuilder.cronSchedule(new CronExpression("0 0 3 * * ?"))) @@ -32,37 +43,47 @@ public class CreateJobsConfiguration { } - @Bean public JobDetail automaticAnalysisJobDetail() { - return JobBuilder.newJob().ofType(AutomaticAnalysisJob.class) + + return JobBuilder.newJob() + .ofType(AutomaticAnalysisJob.class) .storeDurably() .withIdentity("AutomaticAnalysisJob") .withDescription("Automatically queues files for analysis") .build(); } + @Bean public Trigger automaticAnalysisJobTrigger() throws ParseException { - return TriggerBuilder.newTrigger().forJob(automaticAnalysisJobDetail()) + + return TriggerBuilder.newTrigger() + .forJob(automaticAnalysisJobDetail()) .withIdentity("AutomaticAnalysisJobTrigger") .withDescription("Triggers AutomaticAnalysisJob every 10 seconds") .withSchedule(CronScheduleBuilder.cronSchedule(new CronExpression("*/10 * * * * ?"))) .build(); } + @Bean public JobDetail deletedFilesCleanupJobDetail() { - return JobBuilder.newJob().ofType(DeletedFilesCleanupJob.class) + + return JobBuilder.newJob() + .ofType(DeletedFilesCleanupJob.class) .storeDurably() .withIdentity("DeletedFilesCleanupJob") .withDescription("Hard delete dossiers / files after certain time") .build(); } + @Bean public Trigger deletedFilesCleanupJobTrigger() throws ParseException { - return TriggerBuilder.newTrigger().forJob(deletedFilesCleanupJobDetail()) + + return TriggerBuilder.newTrigger() + .forJob(deletedFilesCleanupJobDetail()) .withIdentity("DeletedFilesCleanupJobTrigger") .withDescription("Triggers DeletedFilesCleanupJob every 30 minutes") .withSchedule(CronScheduleBuilder.cronSchedule(new CronExpression("0 */30 * * * ?"))) @@ -72,16 +93,21 @@ public class CreateJobsConfiguration { @Bean public JobDetail downloadCleanupJobDetail() { - return JobBuilder.newJob().ofType(DownloadCleanupJob.class) + + return JobBuilder.newJob() + .ofType(DownloadCleanupJob.class) .storeDurably() .withIdentity("DownloadCleanupJob") .withDescription("Hard delete dossiers / files after certain time") .build(); } + @Bean public Trigger downloadCleanupJobTrigger() throws ParseException { - return TriggerBuilder.newTrigger().forJob(downloadCleanupJobDetail()) + + return TriggerBuilder.newTrigger() + .forJob(downloadCleanupJobDetail()) .withIdentity("DownloadCleanupJobTrigger") .withDescription("Triggers DownloadCleanupJob every 30 minutes") .withSchedule(CronScheduleBuilder.cronSchedule(new CronExpression("0 */30 * * * ?"))) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/jobs/CustomQuartzConfiguration.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/jobs/CustomQuartzConfiguration.java index d93e403af..7e65ab110 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/jobs/CustomQuartzConfiguration.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/jobs/CustomQuartzConfiguration.java @@ -44,19 +44,26 @@ import org.springframework.scheduling.quartz.SchedulerFactoryBean; import org.springframework.scheduling.quartz.SpringBeanJobFactory; import org.springframework.transaction.PlatformTransactionManager; -@Configuration( - proxyBeanMethods = false -) +@Configuration(proxyBeanMethods = false) @ConditionalOnClass({Scheduler.class, SchedulerFactoryBean.class, PlatformTransactionManager.class}) @EnableConfigurationProperties({QuartzProperties.class}) @AutoConfigureAfter({DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class, LiquibaseAutoConfiguration.class, FlywayAutoConfiguration.class}) public class CustomQuartzConfiguration { + public CustomQuartzConfiguration() { + } + @Bean @ConditionalOnMissingBean - public SchedulerFactoryBean quartzScheduler(QuartzProperties properties, ObjectProvider customizers, ObjectProvider jobDetails, Map calendars, ObjectProvider triggers, ApplicationContext applicationContext) { + public SchedulerFactoryBean quartzScheduler(QuartzProperties properties, + ObjectProvider customizers, + ObjectProvider jobDetails, + Map calendars, + ObjectProvider triggers, + ApplicationContext applicationContext) { + SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); SpringBeanJobFactory jobFactory = new SpringBeanJobFactory(); jobFactory.setApplicationContext(applicationContext); @@ -66,18 +73,18 @@ public class CustomQuartzConfiguration { } schedulerFactoryBean.setAutoStartup(properties.isAutoStartup()); - schedulerFactoryBean.setStartupDelay((int)properties.getStartupDelay().getSeconds()); + schedulerFactoryBean.setStartupDelay((int) properties.getStartupDelay().getSeconds()); schedulerFactoryBean.setWaitForJobsToCompleteOnShutdown(properties.isWaitForJobsToCompleteOnShutdown()); schedulerFactoryBean.setOverwriteExistingJobs(properties.isOverwriteExistingJobs()); if (!properties.getProperties().isEmpty()) { schedulerFactoryBean.setQuartzProperties(this.asProperties(properties.getProperties())); } - schedulerFactoryBean.setJobDetails((JobDetail[])jobDetails.orderedStream().toArray((x$0) -> { + schedulerFactoryBean.setJobDetails((JobDetail[]) jobDetails.orderedStream().toArray((x$0) -> { return new JobDetail[x$0]; })); schedulerFactoryBean.setCalendars(calendars); - schedulerFactoryBean.setTriggers((Trigger[])triggers.orderedStream().toArray((x$0) -> { + schedulerFactoryBean.setTriggers((Trigger[]) triggers.orderedStream().toArray((x$0) -> { return new Trigger[x$0]; })); customizers.orderedStream().forEach((customizer) -> { @@ -86,29 +93,34 @@ public class CustomQuartzConfiguration { return schedulerFactoryBean; } + private Properties asProperties(Map source) { + Properties properties = new Properties(); properties.putAll(source); return properties; } - @Configuration( - proxyBeanMethods = false - ) + + @Configuration(proxyBeanMethods = false) @ConditionalOnSingleCandidate(DataSource.class) - @ConditionalOnProperty( - prefix = "spring.quartz", - name = {"job-store-type"}, - havingValue = "jdbc" - ) + @ConditionalOnProperty(prefix = "spring.quartz", name = {"job-store-type"}, havingValue = "jdbc") @Import({DatabaseInitializationDependencyConfigurer.class}) protected static class JdbcStoreTypeConfiguration { + protected JdbcStoreTypeConfiguration() { + } + @Bean @Order(0) - public SchedulerFactoryBeanCustomizer dataSourceCustomizer(QuartzProperties properties, @Qualifier("masterDataSource") DataSource dataSource, @QuartzDataSource ObjectProvider quartzDataSource, @Qualifier("masterTransactionManager") ObjectProvider transactionManager, @QuartzTransactionManager ObjectProvider quartzTransactionManager) { + public SchedulerFactoryBeanCustomizer dataSourceCustomizer(QuartzProperties properties, + @Qualifier("masterDataSource") DataSource dataSource, + @QuartzDataSource ObjectProvider quartzDataSource, + @Qualifier("masterTransactionManager") ObjectProvider transactionManager, + @QuartzTransactionManager ObjectProvider quartzTransactionManager) { + return (schedulerFactoryBean) -> { DataSource dataSourceToUse = this.getDataSource(dataSource, quartzDataSource); schedulerFactoryBean.setDataSource(dataSourceToUse); @@ -120,28 +132,43 @@ public class CustomQuartzConfiguration { }; } + private DataSource getDataSource(DataSource dataSource, ObjectProvider quartzDataSource) { - DataSource dataSourceIfAvailable = (DataSource)quartzDataSource.getIfAvailable(); + + DataSource dataSourceIfAvailable = (DataSource) quartzDataSource.getIfAvailable(); return dataSourceIfAvailable != null ? dataSourceIfAvailable : dataSource; } - private PlatformTransactionManager getTransactionManager(ObjectProvider transactionManager, ObjectProvider quartzTransactionManager) { - PlatformTransactionManager transactionManagerIfAvailable = (PlatformTransactionManager)quartzTransactionManager.getIfAvailable(); - return transactionManagerIfAvailable != null ? transactionManagerIfAvailable : (PlatformTransactionManager)transactionManager.getIfUnique(); + + private PlatformTransactionManager getTransactionManager(ObjectProvider transactionManager, + ObjectProvider quartzTransactionManager) { + + PlatformTransactionManager transactionManagerIfAvailable = (PlatformTransactionManager) quartzTransactionManager.getIfAvailable(); + return transactionManagerIfAvailable != null ? transactionManagerIfAvailable : (PlatformTransactionManager) transactionManager.getIfUnique(); } + @Bean @ConditionalOnMissingBean({QuartzDataSourceScriptDatabaseInitializer.class, QuartzDataSourceInitializer.class}) @Conditional({CustomQuartzConfiguration.JdbcStoreTypeConfiguration.OnQuartzDatasourceInitializationCondition.class}) - public QuartzDataSourceScriptDatabaseInitializer quartzDataSourceScriptDatabaseInitializer(DataSource dataSource, @QuartzDataSource ObjectProvider quartzDataSource, QuartzProperties properties) { + public QuartzDataSourceScriptDatabaseInitializer quartzDataSourceScriptDatabaseInitializer(DataSource dataSource, + @QuartzDataSource ObjectProvider quartzDataSource, + QuartzProperties properties) { + DataSource dataSourceToUse = this.getDataSource(dataSource, quartzDataSource); return new QuartzDataSourceScriptDatabaseInitializer(dataSourceToUse, properties); } + static class OnQuartzDatasourceInitializationCondition extends OnDatabaseInitializationCondition { + OnQuartzDatasourceInitializationCondition() { + super("Quartz", new String[]{"spring.quartz.jdbc.initialize-schema"}); } + } + } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/HibernateStatisticsInterceptor.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/HibernateStatisticsInterceptor.java index e05149c08..2eae05483 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/HibernateStatisticsInterceptor.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/HibernateStatisticsInterceptor.java @@ -6,24 +6,33 @@ public class HibernateStatisticsInterceptor extends EmptyInterceptor { private ThreadLocal queryCount = new ThreadLocal<>(); + public void startCounter() { + queryCount.set(0); } + public Integer getQueryCount() { + return queryCount.get(); } + public void clearCounter() { + queryCount.remove(); } + @Override public String onPrepareStatement(String sql) { + Integer count = queryCount.get(); if (count != null) { queryCount.set(count + 1); } return super.onPrepareStatement(sql); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/MetricsConfiguration.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/MetricsConfiguration.java index 14c1cc68a..8a6c91e0b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/MetricsConfiguration.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/MetricsConfiguration.java @@ -1,14 +1,14 @@ package com.iqser.red.service.peristence.v1.server.metrics; +import java.util.Map; -import lombok.RequiredArgsConstructor; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.orm.jpa.HibernatePropertiesCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import java.util.Map; +import lombok.RequiredArgsConstructor; @Configuration @RequiredArgsConstructor @@ -16,14 +16,16 @@ import java.util.Map; @ConditionalOnProperty(value = "metrics.persistence.enabled", havingValue = "true") public class MetricsConfiguration implements HibernatePropertiesCustomizer { - @Override public void customize(Map hibernateProperties) { + hibernateProperties.put("hibernate.session_factory.interceptor", hibernateInterceptor()); } + @Bean public HibernateStatisticsInterceptor hibernateInterceptor() { + return new HibernateStatisticsInterceptor(); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/PersistenceMetricsAspect.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/PersistenceMetricsAspect.java index 8dfc77b11..52ac54146 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/PersistenceMetricsAspect.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/metrics/PersistenceMetricsAspect.java @@ -1,10 +1,9 @@ package com.iqser.red.service.peristence.v1.server.metrics; -import io.micrometer.core.instrument.DistributionSummary; -import io.micrometer.core.instrument.MeterRegistry; -import io.micrometer.core.instrument.Timer; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; +import java.util.concurrent.TimeUnit; + +import javax.annotation.PostConstruct; + import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -12,8 +11,11 @@ import org.aspectj.lang.annotation.Pointcut; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; -import java.util.concurrent.TimeUnit; +import io.micrometer.core.instrument.DistributionSummary; +import io.micrometer.core.instrument.MeterRegistry; +import io.micrometer.core.instrument.Timer; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; @Slf4j @Aspect @@ -26,17 +28,23 @@ public class PersistenceMetricsAspect { private final HibernateStatisticsInterceptor statisticsInterceptor; + @PostConstruct protected void postConstruct() { + log.warn("Persistence Metrics are enabled!"); } + @Pointcut("execution(public * org.springframework.data.repository.Repository+.*(..))") public void monitor() { + } + @Around("monitor()") public Object profile(ProceedingJoinPoint pjp) throws Throwable { + long start = System.currentTimeMillis(); try { statisticsInterceptor.startCounter(); @@ -62,7 +70,9 @@ public class PersistenceMetricsAspect { } + private void processQueryCounterSummary(String label, int queryCount) { + final String metric = "QueryCounter:" + label; final DistributionSummary summary = meterRegistry.find(metric).summary(); if (summary != null) { @@ -74,6 +84,7 @@ public class PersistenceMetricsAspect { private void processTimer(String label, long elapsedTime) { + final String metric = "Timer:" + label; final Timer foundCounter = meterRegistry.find(metric).timer(); if (foundCounter != null) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/Migration.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/Migration.java index f5fc2a2c5..d5d2893bf 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/Migration.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/Migration.java @@ -1,11 +1,13 @@ package com.iqser.red.service.peristence.v1.server.migration; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.persistence.management.v1.processor.service.persistence.MigrationPersistenceService; + import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; @Data @Slf4j @@ -19,10 +21,13 @@ public abstract class Migration { @Setter private MigrationPersistenceService migrationPersistenceService; + public void run() { + run(false); } + public void run(boolean force) { var latestProcessedVersion = migrationPersistenceService.getLatestProcessedVersion(); @@ -39,7 +44,9 @@ public abstract class Migration { protected abstract void migrate(); - public final long getVersion(){ + + public final long getVersion() { + return version; } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationController.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationController.java index 31cdcc3f7..65029875a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationController.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/MigrationController.java @@ -21,8 +21,8 @@ public class MigrationController { @PostMapping public void run(@RequestParam("migrationName") String migrationName, @RequestParam("force") boolean force) { - migrations.stream().filter(m -> m.getName().equalsIgnoreCase(migrationName) || m.getClass().getSimpleName().equalsIgnoreCase(migrationName)) - .forEach(m -> m.run(force)); + + migrations.stream().filter(m -> m.getName().equalsIgnoreCase(migrationName) || m.getClass().getSimpleName().equalsIgnoreCase(migrationName)).forEach(m -> m.run(force)); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/DictionaryToEntityMigration2.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/DictionaryToEntityMigration2.java index 37df3a725..e2432d9af 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/DictionaryToEntityMigration2.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/DictionaryToEntityMigration2.java @@ -5,11 +5,9 @@ import java.util.ArrayList; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.peristence.v1.server.migration.Migration; import com.iqser.red.service.peristence.v1.server.service.FileManagementStorageService; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/EncryptSMTPPasswordsMigration11.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/EncryptSMTPPasswordsMigration11.java index af1595c7d..5e2ec5d33 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/EncryptSMTPPasswordsMigration11.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/EncryptSMTPPasswordsMigration11.java @@ -1,11 +1,13 @@ package com.iqser.red.service.peristence.v1.server.migration.migrations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import com.iqser.red.service.peristence.v1.server.migration.Migration; import com.iqser.red.service.persistence.management.v1.processor.service.EncryptionDecryptionService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.SMTPRepository; + import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; @Slf4j @Service @@ -22,6 +24,7 @@ public class EncryptSMTPPasswordsMigration11 extends Migration { public EncryptSMTPPasswordsMigration11() { + super(NAME, VERSION); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/IndexMigration1.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/IndexMigration1.java index c1523c7e0..ba9cf4dfa 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/IndexMigration1.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/IndexMigration1.java @@ -25,6 +25,7 @@ public class IndexMigration1 extends Migration { super(NAME, VERSION); } + @Override protected void migrate() { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/ManualRedactionTypeMigration9.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/ManualRedactionTypeMigration9.java index 2d06251eb..80aee4625 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/ManualRedactionTypeMigration9.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/ManualRedactionTypeMigration9.java @@ -1,13 +1,15 @@ package com.iqser.red.service.peristence.v1.server.migration.migrations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import com.iqser.red.service.peristence.v1.server.migration.Migration; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; + import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; @Slf4j @Setter @@ -52,10 +54,22 @@ public class ManualRedactionTypeMigration9 extends Migration { } rank += 1000; - dictionaryPersistenceService.addType(MANUAL_TYPE, dossierTemplateEntity.getId(), - "#9398a0", "#c5d3eb", "#c498fa", - rank, false, false, false, "Manual Redactions", false, - "Manual Redactions", null, false, true, false); + dictionaryPersistenceService.addType(MANUAL_TYPE, + dossierTemplateEntity.getId(), + "#9398a0", + "#c5d3eb", + "#c498fa", + rank, + false, + false, + false, + "Manual Redactions", + false, + "Manual Redactions", + null, + false, + true, + false); }); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/MigrateHighlights3.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/MigrateHighlights3.java index c68679510..966a53276 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/MigrateHighlights3.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/MigrateHighlights3.java @@ -1,5 +1,7 @@ package com.iqser.red.service.peristence.v1.server.migration.migrations; +import java.io.ByteArrayInputStream; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -13,8 +15,6 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import java.io.ByteArrayInputStream; - @Slf4j @Setter @Service @@ -35,6 +35,7 @@ public class MigrateHighlights3 extends Migration { @Autowired private FileStatusService fileStatusService; + public MigrateHighlights3() { super(NAME, VERSION); @@ -62,7 +63,9 @@ public class MigrateHighlights3 extends Migration { return; } - fileManagementStorageService.storeObject(dossier.getId(), file.getId(), FileType.UNTOUCHED, + fileManagementStorageService.storeObject(dossier.getId(), + file.getId(), + FileType.UNTOUCHED, new ByteArrayInputStream(fileManagementStorageService.getStoredObjectBytes(dossier.getId(), file.getId(), FileType.ORIGIN))); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/TypeToEntityMigration5.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/TypeToEntityMigration5.java index b5867ea61..50c387362 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/TypeToEntityMigration5.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/TypeToEntityMigration5.java @@ -61,16 +61,13 @@ public class TypeToEntityMigration5 extends Migration { log.info("Starting false positive migration of dossierTemplate {}", dossierTemplate.getId()); var typeIdsToDelete = new HashSet(); var typesOfDossierTemplate = dictionaryPersistenceService.getAllTypes(false); - var falsePositive = typesOfDossierTemplate.stream() - .filter(t -> t.getType().equals("false_positive")) - .findFirst(); + var falsePositive = typesOfDossierTemplate.stream().filter(t -> t.getType().equals("false_positive")).findFirst(); if (falsePositive.isEmpty()) { log.info("False positive type does no longer exist in dossierTemplate: {}. Skipping.", dossierTemplate.getName()); return; } typeIdsToDelete.add(falsePositive.get().getId()); - var falsePositiveEntries = entryPersistenceService.getEntries(falsePositive.get() - .getId(), DictionaryEntryType.ENTRY, null) + var falsePositiveEntries = entryPersistenceService.getEntries(falsePositive.get().getId(), DictionaryEntryType.ENTRY, null) .stream() .map(BaseDictionaryEntry::getValue) .collect(Collectors.toSet()); @@ -126,7 +123,8 @@ public class TypeToEntityMigration5 extends Migration { startIndex = inputString.indexOf(cleanValue, stopIndex); stopIndex = startIndex + cleanValue.length(); - if (startIndex > -1 && (startIndex == 0 || Character.isWhitespace(inputString.charAt(startIndex - 1)) || isSeparator(inputString.charAt(startIndex - 1))) && (stopIndex == inputString.length() || isSeparator(inputString.charAt(stopIndex)))) { + if (startIndex > -1 && (startIndex == 0 || Character.isWhitespace(inputString.charAt(startIndex - 1)) || isSeparator(inputString.charAt(startIndex - 1))) && (stopIndex == inputString.length() || isSeparator( + inputString.charAt(stopIndex)))) { return true; } } while (startIndex > -1); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/AbstractTextContainer.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/AbstractTextContainer.java index b33e9e4e1..5d2e2501b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/AbstractTextContainer.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/AbstractTextContainer.java @@ -29,23 +29,32 @@ public abstract class AbstractTextContainer { public abstract String getText(); + public boolean contains(AbstractTextContainer other) { + return this.minX <= other.minX && this.maxX >= other.maxX && this.minY >= other.minY && this.maxY <= other.maxY; } + public boolean contains(Rectangle other) { - return page == other.getPage() && this.minX <= other.getTopLeft().getX() && this.maxX >= other.getTopLeft().getX() + other.getWidth() && this.minY <= other.getTopLeft().getY() && this.maxY >= other.getTopLeft().getY() + other.getHeight(); + + return page == other.getPage() && this.minX <= other.getTopLeft().getX() && this.maxX >= other.getTopLeft().getX() + other.getWidth() && this.minY <= other.getTopLeft() + .getY() && this.maxY >= other.getTopLeft().getY() + other.getHeight(); } + @JsonIgnore @JsonAttribute(ignore = true) public float getHeight() { + return maxY - minY; } + @JsonIgnore @JsonAttribute(ignore = true) public float getWidth() { + return maxX - minX; } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/Image.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/Image.java index 2e556b2fb..52314e574 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/Image.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/Image.java @@ -12,7 +12,7 @@ import lombok.NoArgsConstructor; @CompiledJson @NoArgsConstructor @AllArgsConstructor -public class Image { +public class Image { private String type; private RedRectangle2D position; diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedRectangle2D.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedRectangle2D.java index 62c59289a..032cb6344 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedRectangle2D.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedRectangle2D.java @@ -23,26 +23,30 @@ public class RedRectangle2D { private double width; private double height; + @JsonIgnore @JsonAttribute(ignore = true) public boolean isEmpty() { + return width <= 0.0f || height <= 0.0f; } + public boolean contains(double x, double y, double w, double h) { + if (isEmpty() || w <= 0 || h <= 0) { return false; } double x0 = getX(); double y0 = getY(); - return round(x) >= round(x0) && - round(y) >= round(y0) && - (x + w) - (x0 + getWidth()) <= THRESHOLD && - (y + h) - (y0 + getHeight()) <= THRESHOLD; + return round(x) >= round(x0) && round(y) >= round(y0) && (x + w) - (x0 + getWidth()) <= THRESHOLD && (y + h) - (y0 + getHeight()) <= THRESHOLD; } + private double round(double value) { + double d = Math.pow(10, 2); return Math.round(value * d) / d; } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedTextPosition.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedTextPosition.java index 2432678e2..026623924 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedTextPosition.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/RedTextPosition.java @@ -59,6 +59,7 @@ public class RedTextPosition { @JsonIgnore private float width; + @JsonAttribute() public float[] getPosition() { @@ -77,7 +78,9 @@ public class RedTextPosition { @JsonAttribute(alternativeNames = {"xdirAdj"}) @JsonProperty public void setXDirAdj(float XDirAdj) { - this.XDirAdj = XDirAdj;} + + this.XDirAdj = XDirAdj; + } @JsonAlias("ydirAdj") diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/TextPositionSequence.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/TextPositionSequence.java index d5924b337..f5c22cd10 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/TextPositionSequence.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/migration/migrations/model/reducetext/TextPositionSequence.java @@ -31,26 +31,31 @@ public class TextPositionSequence { @JsonIgnore private float x2; - // Added private float dir; private int rotation; private float pageHeight; private float pageWidth; + @JsonAttribute @JsonProperty public float getDir() { - return textPositions.get(0).getDir();} + + return textPositions.get(0).getDir(); + } + @JsonAttribute @JsonProperty public int getRotation() {return textPositions.get(0).getRotation();} + @JsonAttribute @JsonProperty public float getPageHeight() {return textPositions.get(0).getPageHeight();} + @JsonAttribute @JsonProperty public float getPageWidth() {return textPositions.get(0).getPageWidth();} diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/model/DownloadJob.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/model/DownloadJob.java index 474982305..c5909918e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/model/DownloadJob.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/model/DownloadJob.java @@ -1,6 +1,10 @@ package com.iqser.red.service.peristence.v1.server.model; -import lombok.*; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; @Data @Builder diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/MasterPersistenceConfig.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/MasterPersistenceConfig.java index 294292c66..2fa2d1af9 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/MasterPersistenceConfig.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/MasterPersistenceConfig.java @@ -42,8 +42,7 @@ public class MasterPersistenceConfig { @Bean - public LocalContainerEntityManagerFactoryBean masterEntityManagerFactory( - @Qualifier("masterDataSource") DataSource dataSource) { + public LocalContainerEntityManagerFactoryBean masterEntityManagerFactory(@Qualifier("masterDataSource") DataSource dataSource) { LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); @@ -63,8 +62,7 @@ public class MasterPersistenceConfig { @Bean - public JpaTransactionManager masterTransactionManager( - @Qualifier("masterEntityManagerFactory") EntityManagerFactory emf) { + public JpaTransactionManager masterTransactionManager(@Qualifier("masterEntityManagerFactory") EntityManagerFactory emf) { JpaTransactionManager transactionManager = new JpaTransactionManager(); transactionManager.setEntityManagerFactory(emf); @@ -105,9 +103,7 @@ public class MasterPersistenceConfig { @ConfigurationProperties("multitenancy.master.datasource.hikari") public DataSource masterDataSource() { - HikariDataSource dataSource = masterDataSourceProperties().initializeDataSourceBuilder() - .type(HikariDataSource.class) - .build(); + HikariDataSource dataSource = masterDataSourceProperties().initializeDataSourceBuilder().type(HikariDataSource.class).build(); dataSource.setPoolName("masterDataSource"); return dataSource; } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/TenantPersistenceConfig.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/TenantPersistenceConfig.java index 90565d880..6b3671c01 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/TenantPersistenceConfig.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/multitenancy/persistence/TenantPersistenceConfig.java @@ -44,9 +44,8 @@ public class TenantPersistenceConfig { @Primary @Bean - public LocalContainerEntityManagerFactoryBean tenantEntityManagerFactory( - DynamicDataSourceBasedMultiTenantConnectionProvider connectionProvider, - CurrentTenantIdentifierResolverImpl tenantResolver) { + public LocalContainerEntityManagerFactoryBean tenantEntityManagerFactory(DynamicDataSourceBasedMultiTenantConnectionProvider connectionProvider, + CurrentTenantIdentifierResolverImpl tenantResolver) { LocalContainerEntityManagerFactoryBean emfBean = new LocalContainerEntityManagerFactoryBean(); emfBean.setPersistenceUnitName("tenant-persistence-unit"); @@ -68,8 +67,7 @@ public class TenantPersistenceConfig { @Primary @Bean - public JpaTransactionManager tenantTransactionManager( - @Qualifier("tenantEntityManagerFactory") EntityManagerFactory emf) { + public JpaTransactionManager tenantTransactionManager(@Qualifier("tenantEntityManagerFactory") EntityManagerFactory emf) { JpaTransactionManager tenantTransactionManager = new JpaTransactionManager(); tenantTransactionManager.setEntityManagerFactory(emf); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/AnalysisFlagsCalculationService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/AnalysisFlagsCalculationService.java index 410698c20..09ea003d3 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/AnalysisFlagsCalculationService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/AnalysisFlagsCalculationService.java @@ -1,5 +1,12 @@ package com.iqser.red.service.peristence.v1.server.service; +import java.time.OffsetDateTime; +import java.util.Map; +import java.util.stream.Collectors; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ViewedPageEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService; @@ -8,14 +15,9 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do import com.iqser.red.service.redaction.v1.model.ChangeType; import com.iqser.red.service.redaction.v1.model.ManualRedactionType; import com.iqser.red.service.redaction.v1.model.RedactionLogEntry; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import java.time.OffsetDateTime; -import java.util.Map; -import java.util.stream.Collectors; @Slf4j @Service @@ -60,15 +62,15 @@ public class AnalysisFlagsCalculationService { if (entry.getManualChanges() != null && !entry.getManualChanges().isEmpty()) { for (var manualChange : entry.getManualChanges()) { - if (!entry.isHint() && !entry.isRecommendation() && StringUtils.isNotEmpty(entry.getReason()) && - (manualChange.getManualRedactionType().equals(ManualRedactionType.ADD_LOCALLY) || manualChange.getManualRedactionType() - .equals(ManualRedactionType.RECATEGORIZE) || manualChange.getManualRedactionType() - .equals(ManualRedactionType.REMOVE_LOCALLY) || manualChange.getManualRedactionType() - .equals(ManualRedactionType.FORCE_REDACT) || manualChange.getManualRedactionType() - .equals(ManualRedactionType.FORCE_HINT) || manualChange.getManualRedactionType() - .equals(ManualRedactionType.LEGAL_BASIS_CHANGE) || manualChange.getManualRedactionType() - .equals(ManualRedactionType.RESIZE)) && manualChange.getProcessedDate() != null && - (lastRedactionModification == null || manualChange.getProcessedDate().isAfter(lastRedactionModification))) { + if (!entry.isHint() && !entry.isRecommendation() && StringUtils.isNotEmpty(entry.getReason()) && (manualChange.getManualRedactionType() + .equals(ManualRedactionType.ADD_LOCALLY) || manualChange.getManualRedactionType() + .equals(ManualRedactionType.RECATEGORIZE) || manualChange.getManualRedactionType() + .equals(ManualRedactionType.REMOVE_LOCALLY) || manualChange.getManualRedactionType() + .equals(ManualRedactionType.FORCE_REDACT) || manualChange.getManualRedactionType() + .equals(ManualRedactionType.FORCE_HINT) || manualChange.getManualRedactionType() + .equals(ManualRedactionType.LEGAL_BASIS_CHANGE) || manualChange.getManualRedactionType() + .equals(ManualRedactionType.RESIZE)) && manualChange.getProcessedDate() != null && (lastRedactionModification == null || manualChange.getProcessedDate() + .isAfter(lastRedactionModification))) { lastRedactionModification = manualChange.getProcessedDate(); } @@ -82,7 +84,8 @@ public class AnalysisFlagsCalculationService { } } - if (lastChange != null && (lastRedactionModification == null || lastChange.getDateTime().isAfter(lastRedactionModification)) && !entry.isHint() && !entry.isRecommendation()) { + if (lastChange != null && (lastRedactionModification == null || lastChange.getDateTime() + .isAfter(lastRedactionModification)) && !entry.isHint() && !entry.isRecommendation()) { lastRedactionModification = lastChange.getDateTime(); } @@ -110,7 +113,8 @@ public class AnalysisFlagsCalculationService { var viewedPage = entry.getPositions().isEmpty() ? null : viewedPages.get(entry.getPositions().get(0).getPage()); - if (file.getWorkflowStatus() != WorkflowStatus.APPROVED && lastChange != null && lastChange.getDateTime() != null && viewedPage != null && viewedPage.isBefore(lastChange.getDateTime())) { + if (file.getWorkflowStatus() != WorkflowStatus.APPROVED && lastChange != null && lastChange.getDateTime() != null && viewedPage != null && viewedPage.isBefore( + lastChange.getDateTime())) { hasUpdates = true; } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DictionaryService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DictionaryService.java index c2a8138d0..253dc3b25 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DictionaryService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DictionaryService.java @@ -21,7 +21,6 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.configur import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.EntryPersistenceService; @@ -41,6 +40,7 @@ public class DictionaryService { private final ColorsService colorsService; private final StopwordService stopwordService; + public Type addType(Type typeRequest) { if (typeRequest.getDossierTemplateId() == null) { @@ -52,8 +52,7 @@ public class DictionaryService { typeRequest.setLabel(label); } - checkForDuplicateLabels(typeRequest.getDossierTemplateId(), typeRequest.getDossierId(), typeRequest.getType(), typeRequest - .getLabel()); + checkForDuplicateLabels(typeRequest.getDossierTemplateId(), typeRequest.getDossierId(), typeRequest.getType(), typeRequest.getLabel()); if (this.checkForExistingType(typeRequest)) { throw new ConflictException("The type already exists, could not be added again."); @@ -75,9 +74,25 @@ public class DictionaryService { validateColor(typeRequest.getRecommendationHexColor()); } - return convert(dictionaryPersistenceService.addType(typeRequest.getType(), typeRequest.getDossierTemplateId(), color, recommendationHexColor, skippedHexColor, typeRequest.getRank(), typeRequest.isHint(), typeRequest.isCaseInsensitive(), typeRequest.isRecommendation(), typeRequest.getDescription(), typeRequest.isAddToDictionaryAction(), typeRequest.getLabel(), typeRequest.getDossierId(), typeRequest.isHasDictionary(), typeRequest.isSystemManaged(), typeRequest.isAutoHideSkipped()), Type.class); + return convert(dictionaryPersistenceService.addType(typeRequest.getType(), + typeRequest.getDossierTemplateId(), + color, + recommendationHexColor, + skippedHexColor, + typeRequest.getRank(), + typeRequest.isHint(), + typeRequest.isCaseInsensitive(), + typeRequest.isRecommendation(), + typeRequest.getDescription(), + typeRequest.isAddToDictionaryAction(), + typeRequest.getLabel(), + typeRequest.getDossierId(), + typeRequest.isHasDictionary(), + typeRequest.isSystemManaged(), + typeRequest.isAutoHideSkipped()), Type.class); } + public void updateTypeValue(String typeId, Type typeRequest) { validateColor(typeRequest.getHexColor()); @@ -100,7 +115,6 @@ public class DictionaryService { validateColor(typeRequest.getRecommendationHexColor()); } - // To check whether the type exists and it is not deleted Type typeResult = convert(dictionaryPersistenceService.getType(typeId), Type.class); @@ -112,8 +126,7 @@ public class DictionaryService { dictionaryPersistenceService.updateType(typeId, convert(typeRequest, TypeEntity.class)); - if (typeResult.isHint() != typeRequest.isHint() || typeResult.isCaseInsensitive() != typeRequest.isCaseInsensitive() || typeResult - .getRank() != typeRequest.getRank()) { + if (typeResult.isHint() != typeRequest.isHint() || typeResult.isCaseInsensitive() != typeRequest.isCaseInsensitive() || typeResult.getRank() != typeRequest.getRank()) { var currentVersion = getCurrentVersion(typeResult); @@ -125,6 +138,7 @@ public class DictionaryService { } + public void addEntries(String typeId, List entries, boolean removeCurrent, boolean ignoreInvalidEntries, DictionaryEntryType dictionaryEntryType) { Set cleanEntries = entries.stream().map(this::cleanDictionaryEntry).collect(toSet()); @@ -159,6 +173,7 @@ public class DictionaryService { dictionaryPersistenceService.incrementVersion(typeId); } + public void deleteEntries(String typeId, List entries, DictionaryEntryType dictionaryEntryType) { // To check whether the type exists @@ -167,13 +182,11 @@ public class DictionaryService { var currentVersion = getCurrentVersion(typeResult); if (typeResult.isCaseInsensitive()) { - List existing = entryPersistenceService.getEntries(typeId, dictionaryEntryType, null) - .stream() - .map(BaseDictionaryEntry::getValue) - .collect(toList()); - entryPersistenceService.deleteEntries(typeId, existing.stream() - .filter(e -> entries.stream().anyMatch(e::equalsIgnoreCase)) - .collect(toList()), currentVersion + 1, dictionaryEntryType); + List existing = entryPersistenceService.getEntries(typeId, dictionaryEntryType, null).stream().map(BaseDictionaryEntry::getValue).collect(toList()); + entryPersistenceService.deleteEntries(typeId, + existing.stream().filter(e -> entries.stream().anyMatch(e::equalsIgnoreCase)).collect(toList()), + currentVersion + 1, + dictionaryEntryType); } else { entryPersistenceService.deleteEntries(typeId, entries, currentVersion + 1, dictionaryEntryType); } @@ -181,7 +194,8 @@ public class DictionaryService { dictionaryPersistenceService.incrementVersion(typeId); } - public void deleteType( String typeId) { + + public void deleteType(String typeId) { // NotFoundException would be thrown if the type not found in database. Type typeResult = convert(dictionaryPersistenceService.getType(typeId), Type.class); @@ -200,7 +214,9 @@ public class DictionaryService { dictionaryPersistenceService.incrementVersion(typeId); } + public long getCurrentVersion(String typeId) { + Type typeResult = convert(dictionaryPersistenceService.getType(typeId), Type.class); long currentVersion; if (typeResult.getDossierId() != null) { @@ -211,6 +227,7 @@ public class DictionaryService { return currentVersion; } + private void validateBoolean(Boolean bool, String name) { Optional errorMessage = DictionaryValidator.validateBoolean(bool, name); @@ -219,6 +236,7 @@ public class DictionaryService { } } + private void validateColor(String hexColor) { Optional errorMessage = DictionaryValidator.validateColor(hexColor); @@ -228,19 +246,21 @@ public class DictionaryService { } + private void checkForDuplicateLabels(String dossierTemplateId, String dossierId, String type, String labelToCheck) { List typeResponse = dictionaryPersistenceService.getCumulatedTypes(dossierTemplateId, dossierId, false); for (TypeEntity res : typeResponse) { var dossierTemplateResponse = res.getDossierTemplateId() == null ? res.getDossierTemplate().getId() : res.getDossierTemplateId(); - if (res.getDossierId() != null && res.getDossierId().equals(dossierId) && !type.equals(res.getType()) && dossierTemplateResponse - .equals(dossierTemplateId) && labelToCheck.equals(res.getLabel()) || !type.equals(res.getType()) && dossierTemplateResponse - .equals(dossierTemplateId) && labelToCheck.equals(res.getLabel())) { + if (res.getDossierId() != null && res.getDossierId() + .equals(dossierId) && !type.equals(res.getType()) && dossierTemplateResponse.equals(dossierTemplateId) && labelToCheck.equals(res.getLabel()) || !type.equals( + res.getType()) && dossierTemplateResponse.equals(dossierTemplateId) && labelToCheck.equals(res.getLabel())) { throw new ConflictException("Label must be unique."); } } } + private String humanizedDictionaryType(String label) { String str = label; @@ -257,21 +277,22 @@ public class DictionaryService { } + private Set getInvalidEntries(Set entries) { Predicate isDictionaryEntryNotValid = entry -> DictionaryValidator.validateDictionaryEntry(entry).isPresent(); Predicate isStopword = stopwordService::isStopword; - return entries.stream() - .filter(isDictionaryEntryNotValid.or(isStopword)) - .collect(toSet()); + return entries.stream().filter(isDictionaryEntryNotValid.or(isStopword)).collect(toSet()); } + private String cleanDictionaryEntry(String entry) { return TextNormalizationUtilities.removeHyphenLineBreaks(entry).replaceAll("\\n", " "); } + private long getCurrentVersion(Type typeResult) { long currentVersion; @@ -283,15 +304,15 @@ public class DictionaryService { return currentVersion; } + public boolean checkForExistingType(Type typeRequest) { + return dictionaryPersistenceService.getCumulatedTypes(typeRequest.getDossierTemplateId(), typeRequest.getDossierId(), false) .stream() - .anyMatch(typeResult -> typeRequest.getDossierId() != null && typeResult.getDossierId() != null - && typeRequest.getDossierId().equals(typeResult.getDossierId()) - && typeRequest.getType().equals(typeResult.getType()) - && typeRequest.getDossierTemplateId().equals(typeResult.getDossierTemplateId()) - || typeRequest.getDossierId() == null && typeRequest.getType().equals(typeResult.getType()) - && typeRequest.getDossierTemplateId().equals(typeResult.getDossierTemplateId())); + .anyMatch(typeResult -> typeRequest.getDossierId() != null && typeResult.getDossierId() != null && typeRequest.getDossierId() + .equals(typeResult.getDossierId()) && typeRequest.getType().equals(typeResult.getType()) && typeRequest.getDossierTemplateId() + .equals(typeResult.getDossierTemplateId()) || typeRequest.getDossierId() == null && typeRequest.getType() + .equals(typeResult.getType()) && typeRequest.getDossierTemplateId().equals(typeResult.getDossierTemplateId())); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierService.java index 7af8c655d..9a871adb2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierService.java @@ -120,6 +120,7 @@ public class DossierService { return dossierPersistenceService.findAllDossiers(); } + public List getAllDossiersForDossierTemplateId(String dossierTemplateId) { return dossierPersistenceService.findAllDossiersForDossierTemplateId(dossierTemplateId); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java index 566a482aa..f06657c5e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateImportService.java @@ -1,9 +1,52 @@ package com.iqser.red.service.peristence.v1.server.service; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.io.BufferedInputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.attribute.FileAttribute; +import java.nio.file.attribute.PosixFilePermission; +import java.nio.file.attribute.PosixFilePermissions; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; +import java.util.function.Function; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; +import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestBody; + import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.*; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.BaseDictionaryEntry; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.ColorsEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.FileAttributesGeneralConfigurationEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.WatermarkEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierAttributeConfigEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierStatusEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; @@ -12,9 +55,22 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.*; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierStatusPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.EntryPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.*; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplate; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.FileAttributesGeneralConfiguration; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; @@ -27,30 +83,9 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.le import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type; import com.iqser.red.storage.commons.service.StorageService; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; -import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.RequestBody; - -import javax.transaction.Transactional; -import java.io.*; -import java.nio.file.Files; -import java.nio.file.attribute.FileAttribute; -import java.nio.file.attribute.PosixFilePermission; -import java.nio.file.attribute.PosixFilePermissions; -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.*; -import java.util.function.Function; -import java.util.stream.Collectors; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @Slf4j @Service @@ -78,13 +113,17 @@ public class DossierTemplateImportService { private final StorageService storageService; private final ObjectMapper objectMapper = new ObjectMapper(); + public String importDossierTemplate(@RequestBody ImportDossierTemplateRequest request) { + ImportTemplateResult archiveResult = this.handleArchive(request); return this.importDossierTemplate(archiveResult); } + @Transactional public String importDossierTemplate(ImportTemplateResult request) { + String dossierTemplateId; var dossierTemplateMeta = request.getDossierTemplate(); DossierTemplateEntity existingDossierTemplate = null; @@ -99,7 +138,8 @@ public class DossierTemplateImportService { // set rules rulesPersistenceService.setRules(request.getRuleSet(), dossierTemplateId); - existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate).name())); + existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate) + .name())); // set colors this.setColors(dossierTemplateId, request.getColors()); @@ -153,8 +193,11 @@ public class DossierTemplateImportService { if (CollectionUtils.isNotEmpty(request.getTypes())) { this.updateTypes(request, dossierTemplateId); } else { // no types to add, but remove existing ones - List currentTypes = dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId).getDossierTypes() - .stream().filter(t -> t.getDossierId() == null).collect(Collectors.toList()); + List currentTypes = dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId) + .getDossierTypes() + .stream() + .filter(t -> t.getDossierId() == null) + .collect(Collectors.toList()); this.deleteTypes(currentTypes, new HashSet<>()); } @@ -182,7 +225,10 @@ public class DossierTemplateImportService { if (CollectionUtils.isNotEmpty(request.getLegalBases())) { legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases()); } else { // delete existing - var existingLegalBasis = legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplateId).stream().map(LegalBasisEntity::getName).collect(Collectors.toList()); + var existingLegalBasis = legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplateId) + .stream() + .map(LegalBasisEntity::getName) + .collect(Collectors.toList()); legalBasisMappingPersistenceService.deleteLegalBasis(dossierTemplateId, existingLegalBasis); } @@ -217,7 +263,6 @@ public class DossierTemplateImportService { }); } - // dossier status if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) { request.getDossierStatusInfos().forEach(state -> { @@ -267,9 +312,8 @@ public class DossierTemplateImportService { } } - // file attribute general configuration - if(request.getFileAttributesGeneralConfiguration() != null) { + if (request.getFileAttributesGeneralConfiguration() != null) { fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(dossierTemplateId, convert(request.getFileAttributesGeneralConfiguration(), FileAttributesGeneralConfigurationEntity.class)); } @@ -277,20 +321,20 @@ public class DossierTemplateImportService { return dossierTemplateId; } + private void addEntries(Map> entries, String typeId, String typeName, DictionaryEntryType dictionaryType) { + if (entries != null && !entries.isEmpty() && entries.get(typeName) != null && !entries.get(typeName).isEmpty()) { dictionaryService.addEntries(typeId, entries.get(typeName), true, true, dictionaryType); } else { // no entries, delete current entries - List existing = entryPersistenceService.getEntries(typeId, dictionaryType, null) - .stream() - .map(BaseDictionaryEntry::getValue) - .collect(Collectors.toList()); + List existing = entryPersistenceService.getEntries(typeId, dictionaryType, null).stream().map(BaseDictionaryEntry::getValue).collect(Collectors.toList()); if (!existing.isEmpty()) { dictionaryService.deleteEntries(typeId, existing, dictionaryType); } } } + private void setColors(String dossierTemplateId, Colors requestedColors) { // set colors if (requestedColors != null) { @@ -300,7 +344,9 @@ public class DossierTemplateImportService { } } + private void updateDossierTemplateMeta(DossierTemplateEntity dossierTemplateEntity, DossierTemplate dossierTemplate, String userId) { + if (!dossierTemplateEntity.getName().equalsIgnoreCase(dossierTemplate.getName())) { this.validateDossierTemplateName(dossierTemplate); } @@ -312,12 +358,14 @@ public class DossierTemplateImportService { dossierTemplateEntity.setValidFrom(dossierTemplate.getValidFrom() == null ? dossierTemplateEntity.getValidFrom() : dossierTemplate.getValidFrom()); dossierTemplateEntity.setValidTo(dossierTemplate.getValidTo() == null ? dossierTemplateEntity.getValidTo() : dossierTemplate.getValidTo()); - dossierTemplateEntity.setDownloadFileTypes(dossierTemplate.getDownloadFileTypes() == null || - dossierTemplate.getDownloadFileTypes().isEmpty() ? dossierTemplateEntity.getDownloadFileTypes() : dossierTemplate.getDownloadFileTypes()); + dossierTemplateEntity.setDownloadFileTypes(dossierTemplate.getDownloadFileTypes() == null || dossierTemplate.getDownloadFileTypes() + .isEmpty() ? dossierTemplateEntity.getDownloadFileTypes() : dossierTemplate.getDownloadFileTypes()); } + private DossierStatusEntity updateDossierStatus(String dossierTemplateId, DossierStatusInfo state) { + var dossierStatusRequest = CreateOrUpdateDossierStatusRequest.builder() .dossierStatusId(state.getId()) .name(state.getName()) @@ -326,10 +374,12 @@ public class DossierTemplateImportService { .dossierTemplateId(dossierTemplateId) .rank(state.getRank()) .build(); - return dossierStatusPersistenceService.createOrUpdateDossierStatus(dossierStatusRequest); + return dossierStatusPersistenceService.createOrUpdateDossierStatus(dossierStatusRequest); } + private void validateDossierTemplateName(DossierTemplate dossierTemplateMeta) { + boolean cond = true; int index = 0; String dossierTemplateName = dossierTemplateMeta.getName(); @@ -348,9 +398,14 @@ public class DossierTemplateImportService { } while (cond); } + private void updateTypes(ImportTemplateResult request, String dossierTemplateId) { - List currentTypes = dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId).getDossierTypes() - .stream().filter(t -> t.getDossierId() == null).collect(Collectors.toList()); + + List currentTypes = dossierTemplatePersistenceService.getDossierTemplate(dossierTemplateId) + .getDossierTypes() + .stream() + .filter(t -> t.getDossierId() == null) + .collect(Collectors.toList()); Set currentTypesId = currentTypes.stream().map(TypeEntity::getId).collect(Collectors.toSet()); Set typeIdsAdded = new HashSet<>(); @@ -383,7 +438,9 @@ public class DossierTemplateImportService { this.deleteTypes(currentTypes, typeIdsAdded); } + private void deleteTypes(List currentTypes, Set typeIdsAdded) { + Set currentTypesIdSystemManaged = currentTypes.stream().filter(TypeEntity::isSystemManaged).map(TypeEntity::getId).collect(Collectors.toSet()); // for types system managed just delete the entries @@ -399,6 +456,8 @@ public class DossierTemplateImportService { Set typesToRemove = currentTypes.stream().map(TypeEntity::getId).filter(t -> !typeIdsAdded.contains(t)).collect(Collectors.toSet()); typesToRemove.forEach(dictionaryService::deleteType); } + + private void updateDossierStates(ImportTemplateResult request, String dossierTemplateId) { List currentStates = dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId); @@ -425,14 +484,17 @@ public class DossierTemplateImportService { statesToRemove.forEach(stateId -> dossierStatusPersistenceService.deleteDossierStatus(stateId, null)); } + private void updateDossierAttributes(ImportTemplateResult request, String dossierTemplateId) { + List currentFileAttributes = dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId); Set currentDossierAttributeIds = currentFileAttributes.stream().map(DossierAttributeConfigEntity::getId).collect(Collectors.toSet()); Set dossierAttributeIdsAdded = new HashSet<>(); request.getDossierAttributesConfigs().forEach(da -> { da.setId(dossierAttributeConfigPersistenceService.getDossierAttributeByIdOrName(dossierTemplateId, da.getId(), da.getLabel())); - DossierAttributeConfigEntity result = dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, convert(da, DossierAttributeConfigEntity.class)); + DossierAttributeConfigEntity result = dossierAttributeConfigPersistenceService.addOrUpdateDossierAttribute(dossierTemplateId, + convert(da, DossierAttributeConfigEntity.class)); dossierAttributeIdsAdded.add(result.getId()); }); // remove existing dossier attributes and not included in archive @@ -440,14 +502,17 @@ public class DossierTemplateImportService { attributesToRemove.forEach(dossierAttributeConfigPersistenceService::deleteDossierAttribute); } + private void updateFileAttributes(ImportTemplateResult request, String dossierTemplateId) { + List currentFileAttributes = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId); Set currentFileAttributeIds = currentFileAttributes.stream().map(FileAttributeConfigEntity::getId).collect(Collectors.toSet()); Set fileAttributeIdsAdded = new HashSet<>(); request.getFileAttributesConfigs().forEach(fa -> { //check by id or by dossierTemplate and label and set the corresponding Id if found fa.setId(fileAttributeConfigPersistenceService.getFileAttributeByIdOrName(dossierTemplateId, fa.getId(), fa.getLabel())); - FileAttributeConfigEntity fileAttributeAdded = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, convert(fa, FileAttributeConfigEntity.class)); + FileAttributeConfigEntity fileAttributeAdded = fileAttributeConfigPersistenceService.addOrUpdateFileAttribute(dossierTemplateId, + convert(fa, FileAttributeConfigEntity.class)); fileAttributeIdsAdded.add(fileAttributeAdded.getId()); if (fa.isPrimaryAttribute()) { fileAttributeConfigPersistenceService.updatePrimaryAttribute(fileAttributeAdded.getId()); @@ -458,6 +523,7 @@ public class DossierTemplateImportService { attributesToRemove.forEach(fileAttributeConfigPersistenceService::deleteFileAttribute); } + public ImportTemplateResult handleArchive(ImportDossierTemplateRequest request) { objectMapper.registerModule(new JavaTimeModule()); @@ -471,8 +537,8 @@ public class DossierTemplateImportService { importTemplateResult.setUserId(request.getUserId()); importTemplateResult.setUpdateExistingTemplate(request.isUpdateExistingDossierTemplate()); - try (FileInputStream fis = new FileInputStream(tempFile); BufferedInputStream bis = new BufferedInputStream(fis); - ZipArchiveInputStream zis = new ZipArchiveInputStream(bis)) { + try (FileInputStream fis = new FileInputStream(tempFile); BufferedInputStream bis = new BufferedInputStream(fis); ZipArchiveInputStream zis = new ZipArchiveInputStream( + bis)) { int totalSizeArchive = 0; int totalEntryArchive = 0; @@ -572,13 +638,13 @@ public class DossierTemplateImportService { var reportTemplateList = objectMapper.readValue(bytes, new TypeReference>() { }); reportTemplateMap = reportTemplateList.stream() - .collect(Collectors.toMap(rt -> - rt.isMultiFileReport()? rt.getFileName() + ExportFilename.REPORT_TEMPLATE_MULTI_FILE.getFilename() : rt.getFileName(), + .collect(Collectors.toMap(rt -> rt.isMultiFileReport() ? rt.getFileName() + ExportFilename.REPORT_TEMPLATE_MULTI_FILE.getFilename() : rt.getFileName(), Function.identity())); - reportTemplateFilenameList = reportTemplateList.stream().map(rt -> - rt.isMultiFileReport()? rt.getFileName() + ExportFilename.REPORT_TEMPLATE_MULTI_FILE.getFilename() : rt.getFileName()).collect(Collectors.toList()); + reportTemplateFilenameList = reportTemplateList.stream() + .map(rt -> rt.isMultiFileReport() ? rt.getFileName() + ExportFilename.REPORT_TEMPLATE_MULTI_FILE.getFilename() : rt.getFileName()) + .collect(Collectors.toList()); } else { - reportTemplateBytesMap.put(ze.getName(), bos); + reportTemplateBytesMap.put(ze.getName(), bos); } bos.close(); } @@ -592,13 +658,14 @@ public class DossierTemplateImportService { for (var reportZe : reportTemplateBytesMap.entrySet()) { if (reportTemplateFilenameList.contains(reportZe.getKey())) { var report = reportTemplateMap.get(reportZe.getKey()); - importTemplateResult.getReportTemplateUploadRequests().add(ReportTemplateUploadRequest.builder() - .fileName(report.getFileName()) - .activeByDefault(report.isActiveByDefault()) - .multiFileReport(report.isMultiFileReport()) - .dossierTemplateId(request.getDossierTemplateId() != null ? request.getDossierTemplateId() : "") - .template(reportZe.getValue().toByteArray()) - .build()); + importTemplateResult.getReportTemplateUploadRequests() + .add(ReportTemplateUploadRequest.builder() + .fileName(report.getFileName()) + .activeByDefault(report.isActiveByDefault()) + .multiFileReport(report.isMultiFileReport()) + .dossierTemplateId(request.getDossierTemplateId() != null ? request.getDossierTemplateId() : "") + .template(reportZe.getValue().toByteArray()) + .build()); } importTemplateResult.getReportTemplateUploadRequests().addAll(reportTemplateUploadRequests); @@ -619,7 +686,9 @@ public class DossierTemplateImportService { } } - private List readEntries(byte[] bytes ) { + + private List readEntries(byte[] bytes) { + ByteArrayInputStream bInput = new ByteArrayInputStream(bytes); DataInputStream in = new DataInputStream(bInput); List entries = new ArrayList<>(); @@ -636,7 +705,9 @@ public class DossierTemplateImportService { return entries; } + private String getType(String filename) { + var index = filename.indexOf('/'); return filename.substring(0, index); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateStatsService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateStatsService.java index 464d2ed88..c55112a46 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateStatsService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/DossierTemplateStatsService.java @@ -44,52 +44,63 @@ public class DossierTemplateStatsService { public DossierTemplateStats getDossierTemplateStats(String dossierTemplateId) { - var dossierTemplate = dossierTemplateRepository.findByIdAndNotDeleted(dossierTemplateId).orElseThrow(() -> new NotFoundException("Dossier Template with id: " + dossierTemplateId + " not found.")); + var dossierTemplate = dossierTemplateRepository.findByIdAndNotDeleted(dossierTemplateId) + .orElseThrow(() -> new NotFoundException("Dossier Template with id: " + dossierTemplateId + " not found.")); dossierTemplate.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(dossierTemplate)); return getDossierTemplateStats(dossierTemplateId, dossierTemplate.getName(), dossierTemplate.getDossierTemplateStatus()); } + public List getDossierTemplateStats() { + var allUnDeletedTemplates = dossierTemplateRepository.findAllWhereDeletedIsFalse(); allUnDeletedTemplates.forEach(dt -> dt.setDossierTemplateStatus(dossierTemplatePersistenceService.computeDossierTemplateStatus(dt))); - List templates = allUnDeletedTemplates.stream().filter(dt -> !DossierTemplateStatus.INCOMPLETE.equals(dt.getDossierTemplateStatus())).collect(Collectors.toList()); + List templates = allUnDeletedTemplates.stream() + .filter(dt -> !DossierTemplateStatus.INCOMPLETE.equals(dt.getDossierTemplateStatus())) + .collect(Collectors.toList()); final List dossierTemplateStatsList = Collections.synchronizedList(new ArrayList<>()); templates.stream().forEach(dt -> dossierTemplateStatsList.add(getDossierTemplateStats(dt.getId(), dt.getName(), dt.getDossierTemplateStatus()))); - List result = dossierTemplateStatsList.stream().filter(stat -> !(DossierTemplateStatus.INACTIVE.equals(stat.getDossierTemplateStatus()) - && stat.getNumberOfActiveDossiers() == 0 && stat.getNumberOfArchivedDossiers() == 0)).collect(Collectors.toList()); + List result = dossierTemplateStatsList.stream() + .filter(stat -> !(DossierTemplateStatus.INACTIVE.equals(stat.getDossierTemplateStatus()) && stat.getNumberOfActiveDossiers() == 0 && stat.getNumberOfArchivedDossiers() == 0)) + .collect(Collectors.toList()); result.sort(Comparator.comparing(DossierTemplateStats::getName)); return result; } + public List getDossierTemplateStats(Set dossierTemplateIds) { + List dictionarySummaryList = dictionaryPersistenceService.getDictionarySummaryForDossierTemplateId(dossierTemplateIds); - Map> dictionarySummaryMap = dictionarySummaryList.stream().collect( - Collectors.groupingBy(DictionarySummaryResponse::getDossierTemplateId, - Collectors.mapping(this::getDossierTemplateStats, Collectors.toList()))); - List dossierTemplateStatsList = dictionarySummaryMap.entrySet().stream() - .map(e -> - e.getValue().size() == 1 && e.getValue().get(0).getId() == null ? - new DossierTemplateDictionaryStats(e.getKey(), 0, new ArrayList<>()) : - new DossierTemplateDictionaryStats(e.getKey(), e.getValue().size(), e.getValue())) + Map> dictionarySummaryMap = dictionarySummaryList.stream() + .collect(Collectors.groupingBy(DictionarySummaryResponse::getDossierTemplateId, Collectors.mapping(this::getDossierTemplateStats, Collectors.toList()))); + List dossierTemplateStatsList = dictionarySummaryMap.entrySet() + .stream() + .map(e -> e.getValue().size() == 1 && e.getValue().get(0).getId() == null ? new DossierTemplateDictionaryStats(e.getKey(), + 0, + new ArrayList<>()) : new DossierTemplateDictionaryStats(e.getKey(), e.getValue().size(), e.getValue())) .collect(Collectors.toList()); // add the dossier templates with no dictionaries but with dossiers Set dossierTemplatesIdsFounded = dossierTemplateStatsList.stream().map(DossierTemplateDictionaryStats::getDossierTemplateId).collect(Collectors.toSet()); dossierTemplateIds.removeAll(dossierTemplatesIdsFounded); List dossierTemplateStatsListForDossierNotFound = dossierTemplateIds.stream() - .map(e -> new DossierTemplateDictionaryStats(e, 0, new ArrayList<>())).collect(Collectors.toList()); + .map(e -> new DossierTemplateDictionaryStats(e, 0, new ArrayList<>())) + .collect(Collectors.toList()); dossierTemplateStatsList.addAll(dossierTemplateStatsListForDossierNotFound); return dossierTemplateStatsList; } + private DictionarySummary getDossierTemplateStats(DictionarySummaryResponse response) { + return new DictionarySummary(response.getId(), response.getType(), response.getName(), response.getEntriesCount()); } + private DossierTemplateStats getDossierTemplateStats(String dossierTemplateId, String dossierTemplateName, DossierTemplateStatus dossierTemplateStatus) { DossierTemplateStats dts = new DossierTemplateStats(); @@ -112,14 +123,18 @@ public class DossierTemplateStatsService { dts.setNumberOfExcludedPages(pageCounts.getNumberOfExcludedPages()); dts.setFileCountPerProcessingStatus(processingCounts.stream() - .map(t -> new DossierTemplateStats.ProcessingStatusCount(t.getProcessingStatus(), t.getCount())).collect(Collectors.toList())); + .map(t -> new DossierTemplateStats.ProcessingStatusCount(t.getProcessingStatus(), t.getCount())) + .collect(Collectors.toList())); dts.setFileCountPerWorkflowStatus(workflowCounts.stream() - .map(t -> new DossierTemplateStats.WorkflowStatusCount(t.getWorkflowStatus(), t.getCount())).collect(Collectors.toList())); + .map(t -> new DossierTemplateStats.WorkflowStatusCount(t.getWorkflowStatus(), t.getCount())) + .collect(Collectors.toList())); dts.setDossierCountByStatus(dossierStatusCounts.stream() - .map(t -> new DossierTemplateStats.DossierStatusCount(t.getDossierStatusId(), t.getCount())).collect(Collectors.toList())); + .map(t -> new DossierTemplateStats.DossierStatusCount(t.getDossierStatusId(), t.getCount())) + .collect(Collectors.toList())); dts.setDossiersInTemplate(dossierRepository.findActiveDossierIdsForTemplate(dossierTemplateId)); return dts; } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ExcludeFromAnalysisService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ExcludeFromAnalysisService.java index f0c76cdac..083b2351e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ExcludeFromAnalysisService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ExcludeFromAnalysisService.java @@ -1,9 +1,11 @@ package com.iqser.red.service.peristence.v1.server.service; +import org.springframework.stereotype.Service; + import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; @Service @RequiredArgsConstructor @@ -11,6 +13,7 @@ public class ExcludeFromAnalysisService { private final FileStatusService fileStatusService; + public void toggleExclusion(String dossierId, String fileId, boolean excluded) { var status = fileStatusService.getStatus(fileId); @@ -41,4 +44,5 @@ public class ExcludeFromAnalysisService { } } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileManagementStorageService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileManagementStorageService.java index 6a2a2f872..fffb9ad28 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileManagementStorageService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileManagementStorageService.java @@ -1,6 +1,10 @@ package com.iqser.red.service.peristence.v1.server.service; -import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.InputStream; + +import org.apache.commons.io.IOUtils; +import org.springframework.stereotype.Service; + import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; @@ -9,14 +13,10 @@ import com.iqser.red.service.redaction.v1.model.RedactionLog; import com.iqser.red.service.redaction.v1.model.SectionGrid; import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; import com.iqser.red.storage.commons.service.StorageService; -import liquibase.pro.packaged.T; + import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.IOUtils; -import org.springframework.stereotype.Service; - -import java.io.InputStream; @Slf4j @Service @@ -29,8 +29,7 @@ public class FileManagementStorageService { @SneakyThrows public byte[] getStoredObjectBytes(String dossierId, String fileId, FileType fileType) { - return IOUtils.toByteArray(storageService.getObject(StorageIdUtils.getStorageId(dossierId, fileId, fileType)) - .getInputStream()); + return IOUtils.toByteArray(storageService.getObject(StorageIdUtils.getStorageId(dossierId, fileId, fileType)).getInputStream()); } @@ -40,12 +39,14 @@ public class FileManagementStorageService { return IOUtils.toByteArray(storageService.getObject(storageId).getInputStream()); } - public void storeObject(String dossierId, String fileId, FileType fileType, InputStream stream){ + + public void storeObject(String dossierId, String fileId, FileType fileType, InputStream stream) { storageService.storeObject(StorageIdUtils.getStorageId(dossierId, fileId, fileType), stream); } - public void storeJSONObject(String dossierId, String fileId, FileType fileType, T jsonObject){ + + public void storeJSONObject(String dossierId, String fileId, FileType fileType, T jsonObject) { storageService.storeJSONObject(StorageIdUtils.getStorageId(dossierId, fileId, fileType), jsonObject); } @@ -58,6 +59,7 @@ public class FileManagementStorageService { public RedactionLog getRedactionLog(String dossierId, String fileId) { + try { return storageService.readJSONObject(StorageIdUtils.getStorageId(dossierId, fileId, FileType.REDACTION_LOG), RedactionLog.class); } catch (StorageObjectDoesNotExist e) { @@ -81,6 +83,7 @@ public class FileManagementStorageService { public ImportedRedactions getImportedRedactions(String dossierId, String fileId) { + try { return storageService.readJSONObject(StorageIdUtils.getStorageId(dossierId, fileId, FileType.IMPORTED_REDACTIONS), ImportedRedactions.class); } catch (StorageObjectDoesNotExist e) { @@ -90,7 +93,9 @@ public class FileManagementStorageService { } } + public boolean objectExists(String dossierId, String fileId, FileType origin) { + return storageService.objectExists(StorageIdUtils.getStorageId(dossierId, fileId, origin)); } @@ -106,5 +111,4 @@ public class FileManagementStorageService { storageService.deleteObject(storageId); } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java index 9c88b19be..84c439a33 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileService.java @@ -59,8 +59,7 @@ public class FileService { throw new ConflictException("File already exists in status APPROVED"); } - if (existingStatus.getAssignee() != null && !request.getUploader() - .equalsIgnoreCase(existingStatus.getAssignee())) { + if (existingStatus.getAssignee() != null && !request.getUploader().equalsIgnoreCase(existingStatus.getAssignee())) { throw new ConflictException("Only the current assignee can overwrite a file"); } } @@ -111,10 +110,9 @@ public class FileService { }); recategorizationPersistenceService.findRecategorizations(fileId, false).forEach(recatigorization -> { - recategorizationPersistenceService.softDelete(fileId, recatigorization.getId() - .getAnnotationId(), softDeletedTime); - commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId() - .getAnnotationId(), false).forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); + recategorizationPersistenceService.softDelete(fileId, recatigorization.getId().getAnnotationId(), softDeletedTime); + commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId().getAnnotationId(), false) + .forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); }); resizeRedactionPersistenceService.findResizeRedactions(fileId, false).forEach(annotation -> { @@ -124,10 +122,9 @@ public class FileService { }); legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false).forEach(legalBasisChange -> { - legalBasisChangePersistenceService.softDelete(fileId, legalBasisChange.getId() - .getAnnotationId(), softDeletedTime); - commentPersistenceService.findCommentsByAnnotationId(fileId, legalBasisChange.getId() - .getAnnotationId(), false).forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); + legalBasisChangePersistenceService.softDelete(fileId, legalBasisChange.getId().getAnnotationId(), softDeletedTime); + commentPersistenceService.findCommentsByAnnotationId(fileId, legalBasisChange.getId().getAnnotationId(), false) + .forEach(comment -> commentPersistenceService.softDelete(comment.getId(), softDeletedTime)); }); viewedPagesPersistenceService.deleteForFile(fileId); @@ -165,8 +162,8 @@ public class FileService { recategorizationPersistenceService.findRecategorizations(fileId, true).forEach(recatigorization -> { recategorizationPersistenceService.hardDelete(fileId, recatigorization.getId().getAnnotationId()); - commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId() - .getAnnotationId(), true).forEach(comment -> commentPersistenceService.hardDelete(comment.getId())); + commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId().getAnnotationId(), true) + .forEach(comment -> commentPersistenceService.hardDelete(comment.getId())); }); resizeRedactionPersistenceService.findResizeRedactions(fileId, true).forEach(annotation -> { @@ -179,34 +176,27 @@ public class FileService { } - public void undeleteFile(String dossierTemplateId, String dossierId, String fileId, - OffsetDateTime softDeletedTime) { + public void undeleteFile(String dossierTemplateId, String dossierId, String fileId, OffsetDateTime softDeletedTime) { forceRedactionPersistenceService.findForceRedactions(fileId, true).forEach(annotation -> { - if (annotation.getSoftDeletedTime().equals(softDeletedTime) || annotation.getSoftDeletedTime() - .isAfter(softDeletedTime)) { + if (annotation.getSoftDeletedTime().equals(softDeletedTime) || annotation.getSoftDeletedTime().isAfter(softDeletedTime)) { forceRedactionPersistenceService.undelete(fileId, annotation.getId().getAnnotationId()); - commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true) - .forEach(comment -> { - if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime() - .isAfter(softDeletedTime)) { - commentPersistenceService.undelete(comment.getId()); - } - }); + commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true).forEach(comment -> { + if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime().isAfter(softDeletedTime)) { + commentPersistenceService.undelete(comment.getId()); + } + }); } }); removeRedactionPersistenceService.findRemoveRedactions(fileId, true).forEach(annotation -> { - if (annotation.getSoftDeletedTime().equals(softDeletedTime) || annotation.getSoftDeletedTime() - .isAfter(softDeletedTime)) { + if (annotation.getSoftDeletedTime().equals(softDeletedTime) || annotation.getSoftDeletedTime().isAfter(softDeletedTime)) { removeRedactionPersistenceService.undelete(fileId, annotation.getId().getAnnotationId()); - commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true) - .forEach(comment -> { - if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime() - .isAfter(softDeletedTime)) { - commentPersistenceService.undelete(comment.getId()); - } - }); + commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true).forEach(comment -> { + if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime().isAfter(softDeletedTime)) { + commentPersistenceService.undelete(comment.getId()); + } + }); } }); @@ -214,24 +204,19 @@ public class FileService { if (annotation != null && annotation.getSoftDeletedTime() != null && (annotation.getSoftDeletedTime().equals(softDeletedTime) || annotation.getSoftDeletedTime() .isAfter(softDeletedTime))) { addRedactionPersistenceService.undelete(fileId, annotation.getId().getAnnotationId()); - commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true) - .forEach(comment -> { - if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime() - .isAfter(softDeletedTime)) { - commentPersistenceService.undelete(comment.getId()); - } - }); + commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true).forEach(comment -> { + if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime().isAfter(softDeletedTime)) { + commentPersistenceService.undelete(comment.getId()); + } + }); } }); recategorizationPersistenceService.findRecategorizations(fileId, true).forEach(recatigorization -> { - if (recatigorization.getSoftDeletedTime().equals(softDeletedTime) || recatigorization.getSoftDeletedTime() - .isAfter(softDeletedTime)) { + if (recatigorization.getSoftDeletedTime().equals(softDeletedTime) || recatigorization.getSoftDeletedTime().isAfter(softDeletedTime)) { recategorizationPersistenceService.undelete(fileId, recatigorization.getId().getAnnotationId()); - commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId() - .getAnnotationId(), true).forEach(comment -> { - if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime() - .isAfter(softDeletedTime)) { + commentPersistenceService.findCommentsByAnnotationId(fileId, recatigorization.getId().getAnnotationId(), true).forEach(comment -> { + if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime().isAfter(softDeletedTime)) { commentPersistenceService.undelete(comment.getId()); } }); @@ -239,30 +224,24 @@ public class FileService { }); resizeRedactionPersistenceService.findResizeRedactions(fileId, true).forEach(annotation -> { - if (annotation.getSoftDeletedTime().equals(softDeletedTime) || annotation.getSoftDeletedTime() - .isAfter(softDeletedTime)) { + if (annotation.getSoftDeletedTime().equals(softDeletedTime) || annotation.getSoftDeletedTime().isAfter(softDeletedTime)) { resizeRedactionPersistenceService.undelete(fileId, annotation.getId().getAnnotationId()); - commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true) - .forEach(comment -> { - if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime() - .isAfter(softDeletedTime)) { - commentPersistenceService.undelete(comment.getId()); - } - }); + commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true).forEach(comment -> { + if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime().isAfter(softDeletedTime)) { + commentPersistenceService.undelete(comment.getId()); + } + }); } }); legalBasisChangePersistenceService.findLegalBasisChanges(fileId, true).forEach(annotation -> { - if (annotation.getSoftDeletedTime().equals(softDeletedTime) || annotation.getSoftDeletedTime() - .isAfter(softDeletedTime)) { + if (annotation.getSoftDeletedTime().equals(softDeletedTime) || annotation.getSoftDeletedTime().isAfter(softDeletedTime)) { legalBasisChangePersistenceService.undelete(fileId, annotation.getId().getAnnotationId()); - commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true) - .forEach(comment -> { - if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime() - .isAfter(softDeletedTime)) { - commentPersistenceService.undelete(comment.getId()); - } - }); + commentPersistenceService.findCommentsByAnnotationId(fileId, annotation.getId().getAnnotationId(), true).forEach(comment -> { + if (comment.getSoftDeletedTime().equals(softDeletedTime) || comment.getSoftDeletedTime().isAfter(softDeletedTime)) { + commentPersistenceService.undelete(comment.getId()); + } + }); } }); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusProcessingUpdateService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusProcessingUpdateService.java index a3376d80a..fa0a557dc 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusProcessingUpdateService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusProcessingUpdateService.java @@ -1,12 +1,12 @@ package com.iqser.red.service.peristence.v1.server.service; -import com.iqser.red.service.persistence.management.v1.processor.model.OCRStatusUpdateResponse; import org.springframework.retry.support.RetryTemplate; import org.springframework.web.bind.annotation.RestController; import com.iqser.red.service.pdftron.redaction.v1.api.model.UntouchedDocumentResponse; import com.iqser.red.service.peristence.v1.server.settings.FileManagementServiceSettings; import com.iqser.red.service.persistence.management.v1.processor.exception.ConflictException; +import com.iqser.red.service.persistence.management.v1.processor.model.OCRStatusUpdateResponse; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; @@ -33,7 +33,6 @@ public class FileStatusProcessingUpdateService { private final FileStatusPersistenceService fileStatusPersistenceService; - public void analysisSuccessful(String dossierId, String fileId, AnalyzeResult analyzeResult) { var dossier = dossierPersistenceService.getAndValidateDossier(dossierId); @@ -90,14 +89,18 @@ public class FileStatusProcessingUpdateService { retryTemplate.execute(retryContext -> { log.info("Preprocessing dossier {} and file {}, Attempt to update status: {}", dossierId, fileId, retryContext.getRetryCount()); - fileStatusService.setStatusPreProcessing(fileId, fileEntity.getProcessingStatus().equals(ProcessingStatus.PRE_PROCESSING) ? fileEntity.getProcessingErrorCounter() + 1 : 0); + fileStatusService.setStatusPreProcessing(fileId, + fileEntity.getProcessingStatus().equals(ProcessingStatus.PRE_PROCESSING) ? fileEntity.getProcessingErrorCounter() + 1 : 0); return null; }); - var updatedFileEntity = fileStatusPersistenceService.getStatus(fileId); - if(updatedFileEntity.getProcessingErrorCounter() > settings.getMaxErrorRetries()){ - throw new ConflictException(String.format("Max Processing Retries exhausted for dossier %s and file %s with errorCount: %s", dossierId, fileId, updatedFileEntity.getProcessingErrorCounter())); - } + var updatedFileEntity = fileStatusPersistenceService.getStatus(fileId); + if (updatedFileEntity.getProcessingErrorCounter() > settings.getMaxErrorRetries()) { + throw new ConflictException(String.format("Max Processing Retries exhausted for dossier %s and file %s with errorCount: %s", + dossierId, + fileId, + updatedFileEntity.getProcessingErrorCounter())); + } } @@ -113,13 +116,17 @@ public class FileStatusProcessingUpdateService { retryTemplate.execute(retryContext -> { log.info("Ocr processing dossier {} and file {}, Attempt to update status: {}", dossierId, fileId, retryContext.getRetryCount()); - fileStatusService.setStatusOcrProcessing(fileId, fileEntity.getProcessingStatus().equals(ProcessingStatus.PRE_PROCESSING) ? fileEntity.getProcessingErrorCounter() + 1 : 0); + fileStatusService.setStatusOcrProcessing(fileId, + fileEntity.getProcessingStatus().equals(ProcessingStatus.PRE_PROCESSING) ? fileEntity.getProcessingErrorCounter() + 1 : 0); return null; }); var updatedFileEntity = fileStatusPersistenceService.getStatus(fileId); - if(updatedFileEntity.getProcessingErrorCounter() > settings.getMaxErrorRetries()){ - throw new ConflictException(String.format("Max Ocr Retries exhausted for dossier %s and file %s with errorCount: %s", dossierId, fileId, updatedFileEntity.getProcessingErrorCounter())); + if (updatedFileEntity.getProcessingErrorCounter() > settings.getMaxErrorRetries()) { + throw new ConflictException(String.format("Max Ocr Retries exhausted for dossier %s and file %s with errorCount: %s", + dossierId, + fileId, + updatedFileEntity.getProcessingErrorCounter())); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java index 490762a21..aefcb50df 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java @@ -1,5 +1,19 @@ package com.iqser.red.service.peristence.v1.server.service; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Service; + import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Sets; @@ -19,7 +33,13 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileStatusPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ViewedPagesPersistenceService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.*; +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.CommentPersistenceService; +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.ImageRecategorizationPersistenceService; +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.RemoveRedactionPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.annotations.ResizeRedactionPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; @@ -27,21 +47,10 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do import com.iqser.red.service.redaction.v1.model.AnalyzeRequest; import com.iqser.red.service.redaction.v1.model.AnalyzeResult; import com.iqser.red.service.redaction.v1.model.MessageType; + import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.stereotype.Service; - -import javax.transaction.Transactional; -import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @Slf4j @Service @@ -166,8 +175,7 @@ public class FileStatusService { public void setStatusSuccessful(String fileId, AnalyzeResult analyzeResult) { - fileStatusPersistenceService.updateProcessingStatus( - fileId, + fileStatusPersistenceService.updateProcessingStatus(fileId, analyzeResult.getNumberOfPages(), analyzeResult.getDictionaryVersion(), analyzeResult.getRulesVersion(), @@ -180,8 +188,12 @@ public class FileStatusService { @Transactional - public void setStatusReprocess( - String dossierId, String fileId, boolean priority, Set sectionsToReanalyse, boolean triggeredManually, boolean manualRedactionReanalyse) { + public void setStatusReprocess(String dossierId, + String fileId, + boolean priority, + Set sectionsToReanalyse, + boolean triggeredManually, + boolean manualRedactionReanalyse) { log.info("Reprocessing file: {} from dossier {}", fileId, dossierId); @@ -387,8 +399,7 @@ public class FileStatusService { setStatusImageAnalyzing(fileId); try { - rabbitTemplate.convertAndSend( - MessagingConfiguration.IMAGE_SERVICE_QUEUE, + rabbitTemplate.convertAndSend(MessagingConfiguration.IMAGE_SERVICE_QUEUE, objectMapper.writeValueAsString(ImageServiceRequest.builder() .dossierId(dossierId) .fileId(fileId) @@ -410,16 +421,18 @@ public class FileStatusService { fileStatusPersistenceService.updateProcessingStatus(fileId, ProcessingStatus.FIGURE_DETECTION_ANALYZING); try { - rabbitTemplate.convertAndSend(MessagingConfiguration.CV_ANALYSIS_QUEUE, objectMapper.writeValueAsString(CvAnalysisServiceRequest.builder() - .dossierId(dossierId) - .fileId(fileId) - .operation(CvAnalysisServiceRequest.OPERATION_FIGURE_DETECTION) - .targetFileExtension(CvAnalysisServiceRequest.TARGET_FILE_EXTENSION) - .responseFileExtension(CvAnalysisServiceRequest.FIGURE_DETECTION_FILE_EXTENSION) - .build()), message -> { - message.getMessageProperties().setPriority(1); - return message; - }); + rabbitTemplate.convertAndSend(MessagingConfiguration.CV_ANALYSIS_QUEUE, + objectMapper.writeValueAsString(CvAnalysisServiceRequest.builder() + .dossierId(dossierId) + .fileId(fileId) + .operation(CvAnalysisServiceRequest.OPERATION_FIGURE_DETECTION) + .targetFileExtension(CvAnalysisServiceRequest.TARGET_FILE_EXTENSION) + .responseFileExtension(CvAnalysisServiceRequest.FIGURE_DETECTION_FILE_EXTENSION) + .build()), + message -> { + message.getMessageProperties().setPriority(1); + return message; + }); } catch (JsonProcessingException e) { throw new RuntimeException(e); } @@ -431,16 +444,18 @@ public class FileStatusService { fileStatusPersistenceService.updateProcessingStatus(fileId, ProcessingStatus.TABLE_PARSING_ANALYZING); try { - rabbitTemplate.convertAndSend(MessagingConfiguration.CV_ANALYSIS_QUEUE, objectMapper.writeValueAsString(CvAnalysisServiceRequest.builder() - .dossierId(dossierId) - .fileId(fileId) - .operation(CvAnalysisServiceRequest.OPERATION_TABLE_PARSING) - .targetFileExtension(CvAnalysisServiceRequest.TARGET_FILE_EXTENSION) - .responseFileExtension(CvAnalysisServiceRequest.TABLE_PARSING_FILE_EXTENSION) - .build()), message -> { - message.getMessageProperties().setPriority(1); - return message; - }); + rabbitTemplate.convertAndSend(MessagingConfiguration.CV_ANALYSIS_QUEUE, + objectMapper.writeValueAsString(CvAnalysisServiceRequest.builder() + .dossierId(dossierId) + .fileId(fileId) + .operation(CvAnalysisServiceRequest.OPERATION_TABLE_PARSING) + .targetFileExtension(CvAnalysisServiceRequest.TARGET_FILE_EXTENSION) + .responseFileExtension(CvAnalysisServiceRequest.TABLE_PARSING_FILE_EXTENSION) + .build()), + message -> { + message.getMessageProperties().setPriority(1); + return message; + }); } catch (JsonProcessingException e) { throw new RuntimeException(e); } @@ -557,7 +572,6 @@ public class FileStatusService { return; } - if (fileEntity.isExcluded()) { log.debug("File {} is excluded", fileEntity.getId()); return; @@ -631,8 +645,7 @@ public class FileStatusService { setStatusNerAnalyzing(fileId); try { - rabbitTemplate.convertAndSend( - MessagingConfiguration.NER_SERVICE_QUEUE, + rabbitTemplate.convertAndSend(MessagingConfiguration.NER_SERVICE_QUEUE, objectMapper.writeValueAsString(NerServiceRequest.builder() .dossierId(dossierId) .fileId(fileId) @@ -705,7 +718,10 @@ public class FileStatusService { return fileAttributeList; } + public void updateOCRStatus(OCRStatusUpdateResponse response) { + fileStatusPersistenceService.updateOCRStatus(response); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ImageMessageReceiver.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ImageMessageReceiver.java index 64e8c3fd2..a1c705abc 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ImageMessageReceiver.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ImageMessageReceiver.java @@ -1,21 +1,23 @@ package com.iqser.red.service.peristence.v1.server.service; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.util.HashMap; + +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Service; + import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration; import com.iqser.red.service.peristence.v1.server.settings.FileManagementServiceSettings; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; + import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Service; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.util.HashMap; @Slf4j @Service diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/IndexingService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/IndexingService.java index 5e19cbab9..492f4928a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/IndexingService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/IndexingService.java @@ -69,11 +69,17 @@ public class IndexingService { public void addToIndexingQueue(IndexMessageType indexMessageType, String dossierTemplateId, String dossierId, String fileId, int priority) { try { - rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, objectMapper.writeValueAsString( - IndexMessage.builder().messageType(indexMessageType).dossierTemplateId(dossierTemplateId).dossierId(dossierId).fileId(fileId).build()), message -> { - message.getMessageProperties().setPriority(priority); - return message; - }); + rabbitTemplate.convertAndSend(MessagingConfiguration.INDEXING_QUEUE, + objectMapper.writeValueAsString(IndexMessage.builder() + .messageType(indexMessageType) + .dossierTemplateId(dossierTemplateId) + .dossierId(dossierId) + .fileId(fileId) + .build()), + message -> { + message.getMessageProperties().setPriority(priority); + return message; + }); } catch (JsonProcessingException e) { throw new RuntimeException(e); } @@ -84,7 +90,8 @@ public class IndexingService { try { rabbitTemplate.convertAndSend(MessagingConfiguration.DELETE_FROM_INDEX_QUEUE, - objectMapper.writeValueAsString(IndexMessage.builder().dossierId(dossierId).fileId(fileId).build()), message -> { + objectMapper.writeValueAsString(IndexMessage.builder().dossierId(dossierId).fileId(fileId).build()), + message -> { message.getMessageProperties().setPriority(priority); return message; }); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/LicenseReportService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/LicenseReportService.java index dfbac0b7a..b50047ed5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/LicenseReportService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/LicenseReportService.java @@ -34,6 +34,7 @@ public class LicenseReportService { private final FileStatusService fileStatusService; private final DossierService dossierService; + public LicenseReport getLicenseReport(LicenseReportRequest licenseReportRequest, int offset, int limit) { log.info("Generating licence-report"); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionProviderService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionProviderService.java index ac8d9d51e..47ac59c35 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionProviderService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionProviderService.java @@ -61,13 +61,15 @@ public class ManualRedactionProviderService { Set forceRedactions = convert(forceRedactionPersistenceService.findForceRedactions(fileId, false), ManualForceRedaction.class); - Set recategorizations = new HashSet<>( - convert(recategorizationPersistenceService.findRecategorizations(fileId, false), ManualImageRecategorization.class, new ManualImageRecategorizationMapper())); + Set recategorizations = new HashSet<>(convert(recategorizationPersistenceService.findRecategorizations(fileId, false), + ManualImageRecategorization.class, + new ManualImageRecategorizationMapper())); Set legalBasisChanges = convert(legalBasisChangePersistenceService.findLegalBasisChanges(fileId, false), ManualLegalBasisChange.class); - Set resizeRedactions = new HashSet<>( - convert(resizeRedactionPersistenceService.findResizeRedactions(fileId, false), ManualResizeRedaction.class, new ManualResizeRedactionMapper())); + Set resizeRedactions = new HashSet<>(convert(resizeRedactionPersistenceService.findResizeRedactions(fileId, false), + ManualResizeRedaction.class, + new ManualResizeRedactionMapper())); Map> commentEntities = commentPersistenceService.findCommentsByFileID(fileId, false); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java index 63c6ddc90..cd9eb9202 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ManualRedactionService.java @@ -121,8 +121,16 @@ public class ManualRedactionService { commentId = addComment(fileId, annotationId, addRedactionRequest.getComment(), addRedactionRequest.getUser()).getId(); } - var addedToDictionary = handleAddToDictionary(fileId, annotationId, addRedactionRequest.getTypeId(), addRedactionRequest.getValue(), addRedactionRequest.getStatus(), - addRedactionRequest.isAddToDictionary(), addRedactionRequest.isAddToDossierDictionary(), false, dossierId, addRedactionRequest.getDictionaryEntryType()); + var addedToDictionary = handleAddToDictionary(fileId, + annotationId, + addRedactionRequest.getTypeId(), + addRedactionRequest.getValue(), + addRedactionRequest.getStatus(), + addRedactionRequest.isAddToDictionary(), + addRedactionRequest.isAddToDossierDictionary(), + false, + dossierId, + addRedactionRequest.getDictionaryEntryType()); actionPerformed = actionPerformed || addedToDictionary; @@ -168,11 +176,7 @@ public class ManualRedactionService { private void validatePositions(String fileId, AddRedactionRequest addRedactionRequest) { var numberOfPages = fileStatusService.getStatus(fileId).getNumberOfPages(); - addRedactionRequest.getPositions() - .stream() - .filter(p -> p.getPage() > numberOfPages) - .findAny() - .ifPresent(p -> new BadRequestException("Invalid page found in the request")); + addRedactionRequest.getPositions().stream().filter(p -> p.getPage() > numberOfPages).findAny().ifPresent(p -> new BadRequestException("Invalid page found in the request")); } @@ -212,8 +216,13 @@ public class ManualRedactionService { actionPerformed = actionPerformed || redactionLogEntryOptional.isPresent() && redactionLogEntryOptional.get().isHint(); } - var removedFromDictionary = handleRemoveFromDictionary(redactionLog, dossier, fileId, removeRedactionRequest.getAnnotationId(), removeRedactionRequest.getStatus(), - removeRedactionRequest.isRemoveFromDictionary(), false); + var removedFromDictionary = handleRemoveFromDictionary(redactionLog, + dossier, + fileId, + removeRedactionRequest.getAnnotationId(), + removeRedactionRequest.getStatus(), + removeRedactionRequest.isRemoveFromDictionary(), + false); actionPerformed = actionPerformed || removedFromDictionary; @@ -293,7 +302,9 @@ public class ManualRedactionService { Long commentId = null; if (imageRecategorizationRequest.getComment() != null) { - commentId = addComment(fileId, imageRecategorizationRequest.getAnnotationId(), imageRecategorizationRequest.getComment(), + commentId = addComment(fileId, + imageRecategorizationRequest.getAnnotationId(), + imageRecategorizationRequest.getComment(), imageRecategorizationRequest.getUser()).getId(); } @@ -370,8 +381,16 @@ public class ManualRedactionService { for (var annotationId : annotationIds) { var addRedaction = getAddRedaction(fileId, annotationId); - actionPerformed = actionPerformed || handleAddToDictionary(fileId, annotationId, addRedaction.getTypeId(), addRedaction.getValue(), addRedaction.getStatus(), - addRedaction.isAddToDictionary(), addRedaction.isAddToDossierDictionary(), true, dossier.getId(), addRedaction.getDictionaryEntryType()); + actionPerformed = actionPerformed || handleAddToDictionary(fileId, + annotationId, + addRedaction.getTypeId(), + addRedaction.getValue(), + addRedaction.getStatus(), + addRedaction.isAddToDictionary(), + addRedaction.isAddToDossierDictionary(), + true, + dossier.getId(), + addRedaction.getDictionaryEntryType()); addRedactionPersistenceService.softDelete(fileId, annotationId, OffsetDateTime.now()); } @@ -393,8 +412,13 @@ public class ManualRedactionService { var removeRedaction = getRemoveRedaction(fileId, annotationId); - var removedFromDictionary = handleRemoveFromDictionary(redactionLog, dossier, fileId, annotationId, removeRedaction.getStatus(), - removeRedaction.isRemoveFromDictionary(), true); + var removedFromDictionary = handleRemoveFromDictionary(redactionLog, + dossier, + fileId, + annotationId, + removeRedaction.getStatus(), + removeRedaction.isRemoveFromDictionary(), + true); actionPerformed = actionPerformed || removedFromDictionary; removeRedactionPersistenceService.softDelete(fileId, annotationId, OffsetDateTime.now()); @@ -687,7 +711,9 @@ public class ManualRedactionService { if (annotationStatus == AnnotationStatus.APPROVED) { addToDictionary(manualRedactionEntry.getTypeId(), manualRedactionEntry.getValue(), dossierId, fileId, manualRedactionEntry.getDictionaryEntryType()); reprocess(dossierId, fileId); - approveStatusForRedactionsWithSameValue(dossier, manualRedactionEntry.isAddToDictionary(), manualRedactionEntry.isAddToDossierDictionary(), + approveStatusForRedactionsWithSameValue(dossier, + manualRedactionEntry.isAddToDictionary(), + manualRedactionEntry.isAddToDossierDictionary(), manualRedactionEntry.getValue()); } else if (annotationStatus == AnnotationStatus.DECLINED) { @@ -789,8 +815,13 @@ public class ManualRedactionService { } - private boolean handleRemoveFromDictionary(RedactionLog redactionLog, DossierEntity dossier, String fileId, String annotationId, AnnotationStatus status, - boolean removeFromDictionary, boolean revert) { + private boolean handleRemoveFromDictionary(RedactionLog redactionLog, + DossierEntity dossier, + String fileId, + String annotationId, + AnnotationStatus status, + boolean removeFromDictionary, + boolean revert) { if (status == AnnotationStatus.APPROVED) { removeRedactionPersistenceService.updateStatus(fileId, annotationId, status, removeFromDictionary); @@ -859,13 +890,26 @@ public class ManualRedactionService { private CommentEntity addComment(String fileId, String annotationId, String comment, String user) { - return commentPersistenceService.insert( - CommentEntity.builder().text(comment).fileId(fileId).annotationId(annotationId).user(user).date(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)).build()); + return commentPersistenceService.insert(CommentEntity.builder() + .text(comment) + .fileId(fileId) + .annotationId(annotationId) + .user(user) + .date(OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)) + .build()); } - private boolean handleAddToDictionary(String fileId, String annotationId, String typeId, String value, AnnotationStatus status, boolean addToDictionary, - boolean addToDossierDictionary, boolean revert, String dossierId, DictionaryEntryType dictionaryEntryType) { + private boolean handleAddToDictionary(String fileId, + String annotationId, + String typeId, + String value, + AnnotationStatus status, + boolean addToDictionary, + boolean addToDossierDictionary, + boolean revert, + String dossierId, + DictionaryEntryType dictionaryEntryType) { if (status == AnnotationStatus.APPROVED) { addRedactionPersistenceService.updateStatus(fileId, annotationId, status, addToDictionary, addToDossierDictionary); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/OCRProcessingMessageReceiver.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/OCRProcessingMessageReceiver.java index 4967390ab..34961d76e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/OCRProcessingMessageReceiver.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/OCRProcessingMessageReceiver.java @@ -1,14 +1,16 @@ package com.iqser.red.service.peristence.v1.server.service; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Service; + import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration; import com.iqser.red.service.persistence.management.v1.processor.model.OCRStatusUpdateResponse; + import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Service; @Slf4j @Service diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ReanalysisRequiredStatusService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ReanalysisRequiredStatusService.java index 427871ec4..8ecd8c7bc 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ReanalysisRequiredStatusService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ReanalysisRequiredStatusService.java @@ -37,17 +37,23 @@ public class ReanalysisRequiredStatusService { public FileModel enhanceFileStatusWithAnalysisRequirements(FileModel fileModel) { + return enhanceFileStatusWithAnalysisRequirements(Collections.singletonList(fileModel), false).iterator().next(); } + public FileModel enhanceFileStatusWithAnalysisRequirements(FileModel fileModel, boolean ignoreProcessingStates) { + return enhanceFileStatusWithAnalysisRequirements(Collections.singletonList(fileModel), ignoreProcessingStates).iterator().next(); } + public List enhanceFileStatusWithAnalysisRequirements(List fileModels) { + return enhanceFileStatusWithAnalysisRequirements(fileModels, false); } + public List enhanceFileStatusWithAnalysisRequirements(List fileModels, boolean ignoreProcessingStates) { Map> dossierTemplateVersionMap = new HashMap<>(); @@ -59,10 +65,10 @@ public class ReanalysisRequiredStatusService { entry.setFullAnalysisRequired(analysisRequiredResult.isFullAnalysisRequired()); }); - return fileModels; } + private AnalysisRequiredResult computeAnalysisRequired(FileModel fileStatus, boolean ignoreProcessingStates, Map> dossierTemplateVersionMap, @@ -91,9 +97,7 @@ public class ReanalysisRequiredStatusService { return new AnalysisRequiredResult(false, true); } - if (ProcessingStatus.PROCESSED.equals(fileStatus.getProcessingStatus()) - || ProcessingStatus.PRE_PROCESSED.equals(fileStatus.getProcessingStatus()) - || ignoreProcessingStates) { + if (ProcessingStatus.PROCESSED.equals(fileStatus.getProcessingStatus()) || ProcessingStatus.PRE_PROCESSED.equals(fileStatus.getProcessingStatus()) || ignoreProcessingStates) { switch (fileStatus.getWorkflowStatus()) { case NEW: @@ -115,17 +119,15 @@ public class ReanalysisRequiredStatusService { } + private AnalysisRequiredResult requiresReanalysisBasedOnVersionDifference(FileModel fileStatus, DossierEntity dossier, Map> dossierTemplateVersionMap, Map dossierVersionMap) { - // get relevant versions - var dossierTemplateVersions = dossierTemplateVersionMap.computeIfAbsent(dossier.getDossierTemplateId(), - k -> buildVersionData(dossier.getDossierTemplateId())); - var dossierDictionaryVersion = dossierVersionMap.computeIfAbsent(fileStatus.getDossierId(), - k -> getDossierVersionData(fileStatus.getDossierId())); + var dossierTemplateVersions = dossierTemplateVersionMap.computeIfAbsent(dossier.getDossierTemplateId(), k -> buildVersionData(dossier.getDossierTemplateId())); + var dossierDictionaryVersion = dossierVersionMap.computeIfAbsent(fileStatus.getDossierId(), k -> getDossierVersionData(fileStatus.getDossierId())); // compute matches var rulesVersionMatches = fileStatus.getRulesVersion() == dossierTemplateVersions.getOrDefault(RULES, -1L); @@ -136,20 +138,29 @@ public class ReanalysisRequiredStatusService { var reanalysisRequired = !dictionaryVersionMatches || !dossierDictionaryVersionMatches; var fullAnalysisRequired = !rulesVersionMatches || !legalBasisVersionMatches; if (reanalysisRequired || fullAnalysisRequired) { - log.info("For file: {} analysis is required because -> ruleVersionMatches: {}/{}, dictionaryVersionMatches: {}/{}, legalBasisVersionMatches: {}/{}, dossierDictionaryVersionMatches: {}/{}", - fileStatus.getFilename(), fileStatus.getRulesVersion(), dossierTemplateVersions.getOrDefault(RULES, -1L), - fileStatus.getDictionaryVersion(), dossierTemplateVersions.getOrDefault(DICTIONARY, -1L), - fileStatus.getLegalBasisVersion(), dossierTemplateVersions.getOrDefault(LEGAL_BASIS, -1L), - fileStatus.getDossierDictionaryVersion(), dossierDictionaryVersion); + log.info( + "For file: {} analysis is required because -> ruleVersionMatches: {}/{}, dictionaryVersionMatches: {}/{}, legalBasisVersionMatches: {}/{}, dossierDictionaryVersionMatches: {}/{}", + fileStatus.getFilename(), + fileStatus.getRulesVersion(), + dossierTemplateVersions.getOrDefault(RULES, -1L), + fileStatus.getDictionaryVersion(), + dossierTemplateVersions.getOrDefault(DICTIONARY, -1L), + fileStatus.getLegalBasisVersion(), + dossierTemplateVersions.getOrDefault(LEGAL_BASIS, -1L), + fileStatus.getDossierDictionaryVersion(), + dossierDictionaryVersion); } return new AnalysisRequiredResult(reanalysisRequired, fullAnalysisRequired); } + private Long getDossierVersionData(String dossierId) { + return dictionaryPersistenceService.getVersionForDossier(dossierId); } + private Map buildVersionData(String dossierTemplateId) { var versions = new HashMap(); @@ -158,19 +169,23 @@ public class ReanalysisRequiredStatusService { versions.put(DICTIONARY, dictionaryPersistenceService.getVersion(dossierTemplateId)); versions.put(LEGAL_BASIS, legalBasisMappingPersistenceService.getVersion(dossierTemplateId)); - return versions; } + public enum VersionType { - RULES, DICTIONARY, LEGAL_BASIS + RULES, + DICTIONARY, + LEGAL_BASIS } @Data @AllArgsConstructor public static class AnalysisRequiredResult { + private boolean reanalysisRequired; private boolean fullAnalysisRequired; + } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/RedactionLogService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/RedactionLogService.java index c66761ecd..cdc9c5063 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/RedactionLogService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/RedactionLogService.java @@ -33,15 +33,13 @@ public class RedactionLogService { private final DictionaryController dictionaryController; - public RedactionLog getRedactionLog(String dossierId, String fileId, boolean withManualRedactions, - boolean includeFalsePositives) { + public RedactionLog getRedactionLog(String dossierId, String fileId, boolean withManualRedactions, boolean includeFalsePositives) { return getRedactionLog(dossierId, fileId, null, withManualRedactions, includeFalsePositives); } - public RedactionLog getRedactionLog(String dossierId, String fileId, List excludedTypes, - boolean withManualRedactions, boolean includeFalsePositives) { + public RedactionLog getRedactionLog(String dossierId, String fileId, List excludedTypes, boolean withManualRedactions, boolean includeFalsePositives) { var fileStatus = fileStatusService.getStatus(fileId); @@ -94,14 +92,17 @@ public class RedactionLogService { } - public RedactionLog getFilteredRedactionLog(String dossierId, String fileId, - FilteredRedactionLogRequest filteredRedactionLogRequest) { + public RedactionLog getFilteredRedactionLog(String dossierId, String fileId, FilteredRedactionLogRequest filteredRedactionLogRequest) { if (filteredRedactionLogRequest.getSpecifiedDate() == null) { filteredRedactionLogRequest.setSpecifiedDate(OffsetDateTime.MIN); } - var redactionLog = getRedactionLog(dossierId, fileId, filteredRedactionLogRequest.getExcludedTypes(), filteredRedactionLogRequest.isWithManualRedactions(), filteredRedactionLogRequest.isIncludeFalsePositives()); + var redactionLog = getRedactionLog(dossierId, + fileId, + filteredRedactionLogRequest.getExcludedTypes(), + filteredRedactionLogRequest.isWithManualRedactions(), + filteredRedactionLogRequest.isIncludeFalsePositives()); var redactionLogEntries = redactionLog.getRedactionLogEntry(); Iterator it = redactionLogEntries.iterator(); @@ -109,8 +110,7 @@ public class RedactionLogService { var redactionLogEntry = it.next(); boolean isAfterSpecifiedDate = false; for (var change : redactionLogEntry.getChanges()) { - if (change.getDateTime() != null && change.getDateTime() - .isAfter(filteredRedactionLogRequest.getSpecifiedDate())) { + if (change.getDateTime() != null && change.getDateTime().isAfter(filteredRedactionLogRequest.getSpecifiedDate())) { isAfterSpecifiedDate = true; } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ReportTemplateService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ReportTemplateService.java index 27e873deb..e168f9834 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ReportTemplateService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ReportTemplateService.java @@ -1,5 +1,13 @@ package com.iqser.red.service.peristence.v1.server.service; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.io.ByteArrayInputStream; +import java.util.List; +import java.util.UUID; + +import org.springframework.stereotype.Service; + import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; @@ -7,15 +15,9 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.Re import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest; import com.iqser.red.storage.commons.service.StorageService; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.io.ByteArrayInputStream; -import java.util.List; -import java.util.UUID; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @Slf4j @Service @@ -25,37 +27,41 @@ public class ReportTemplateService { private final StorageService storageService; private final ReportTemplatePersistenceService reportTemplatePersistenceService; + public ReportTemplate uploadTemplate(ReportTemplateUploadRequest reportTemplateUploadRequest) { + String templateId = null; - List reportTemplates = reportTemplatePersistenceService.findByDossierTemplateId(reportTemplateUploadRequest - .getDossierTemplateId()); + List reportTemplates = reportTemplatePersistenceService.findByDossierTemplateId(reportTemplateUploadRequest.getDossierTemplateId()); for (ReportTemplateEntity reportTemplate : reportTemplates) { if (reportTemplate.getFileName() - .equals(reportTemplateUploadRequest.getFileName()) && reportTemplate.isMultiFileReport() && reportTemplateUploadRequest - .isMultiFileReport() || reportTemplate.getFileName() - .equals(reportTemplateUploadRequest.getFileName()) && !reportTemplate.isMultiFileReport() && !reportTemplateUploadRequest - .isMultiFileReport()) { + .equals(reportTemplateUploadRequest.getFileName()) && reportTemplate.isMultiFileReport() && reportTemplateUploadRequest.isMultiFileReport() || reportTemplate.getFileName() + .equals(reportTemplateUploadRequest.getFileName()) && !reportTemplate.isMultiFileReport() && !reportTemplateUploadRequest.isMultiFileReport()) { templateId = reportTemplate.getTemplateId(); } } - String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), reportTemplateUploadRequest - .getFileName()); + String storageId = StorageIdUtils.getReportStorageId(reportTemplateUploadRequest.getDossierTemplateId(), reportTemplateUploadRequest.getFileName()); storageService.storeObject(storageId, new ByteArrayInputStream(reportTemplateUploadRequest.getTemplate())); if (templateId != null) { - reportTemplatePersistenceService.updateTemplate(reportTemplateUploadRequest.getDossierTemplateId(), templateId, ReportTemplateUpdateRequest - .builder() - .fileName(reportTemplateUploadRequest.getFileName()) - .multiFileReport(reportTemplateUploadRequest.isMultiFileReport()) - .activeByDefault(reportTemplateUploadRequest.isActiveByDefault()) - .build()); + reportTemplatePersistenceService.updateTemplate(reportTemplateUploadRequest.getDossierTemplateId(), + templateId, + ReportTemplateUpdateRequest.builder() + .fileName(reportTemplateUploadRequest.getFileName()) + .multiFileReport(reportTemplateUploadRequest.isMultiFileReport()) + .activeByDefault(reportTemplateUploadRequest.isActiveByDefault()) + .build()); } else { templateId = UUID.randomUUID().toString(); - reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), templateId, storageId, reportTemplateUploadRequest - .getFileName(), reportTemplateUploadRequest.isActiveByDefault(), reportTemplateUploadRequest.isMultiFileReport()); + reportTemplatePersistenceService.insert(reportTemplateUploadRequest.getDossierTemplateId(), + templateId, + storageId, + reportTemplateUploadRequest.getFileName(), + reportTemplateUploadRequest.isActiveByDefault(), + reportTemplateUploadRequest.isMultiFileReport()); } return convert(reportTemplatePersistenceService.find(templateId), ReportTemplate.class); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/StopwordService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/StopwordService.java index 3795f25a0..af6c7606b 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/StopwordService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/StopwordService.java @@ -15,14 +15,20 @@ import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor public class StopwordService { + Set stopwords = new HashSet<>(); + @PostConstruct - public void init(){ + public void init() { + stopwords = ResourceLoader.load("files/stopwords.txt"); } - public boolean isStopword(String word){ + + public boolean isStopword(String word) { + return stopwords.contains(word.toLowerCase(Locale.ROOT)); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/TenantManagementService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/TenantManagementService.java index f205b5769..756da76a7 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/TenantManagementService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/TenantManagementService.java @@ -90,12 +90,12 @@ public class TenantManagementService { private TenantResponse convert(TenantEntity entity) { return TenantResponse.builder() - .tenantId(entity.getTenantId()) - .displayName(entity.getDisplayName()) - .guid(entity.getGuid()) - .jdbcUrl(entity.getJdbcUrl()) - .user(entity.getUsername()) - .build(); + .tenantId(entity.getTenantId()) + .displayName(entity.getDisplayName()) + .guid(entity.getGuid()) + .jdbcUrl(entity.getJdbcUrl()) + .user(entity.getUsername()) + .build(); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadDLQMessageReceiver.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadDLQMessageReceiver.java index 0763534b3..04c3eac27 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadDLQMessageReceiver.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadDLQMessageReceiver.java @@ -1,5 +1,12 @@ package com.iqser.red.service.peristence.v1.server.service.download; +import java.io.IOException; + +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.retry.support.RetryTemplate; +import org.springframework.stereotype.Service; + import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration; import com.iqser.red.service.peristence.v1.server.model.DownloadJob; @@ -7,14 +14,9 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadStatusValue; import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage; import com.iqser.red.service.redaction.report.v1.api.model.ReportResultMessage; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.retry.support.RetryTemplate; -import org.springframework.stereotype.Service; - -import java.io.IOException; @Slf4j @Service @@ -30,8 +32,7 @@ public class DownloadDLQMessageReceiver { public void handleDlqMessage(Message failedMessage) throws IOException { DownloadJob downloadJob = objectMapper.readValue(failedMessage.getBody(), DownloadJob.class); - log.warn("Handling download job in DLQ userId: {} storageId: {} - setting status to error!", downloadJob.getUserId(), downloadJob - .getStorageId()); + log.warn("Handling download job in DLQ userId: {} storageId: {} - setting status to error!", downloadJob.getUserId(), downloadJob.getStorageId()); setDownloadFailed(downloadJob.getUserId(), downloadJob.getStorageId()); } @@ -40,8 +41,7 @@ public class DownloadDLQMessageReceiver { public void handleReportDlqMessage(Message failedMessage) throws IOException { ReportRequestMessage reportRequestMessage = objectMapper.readValue(failedMessage.getBody(), ReportRequestMessage.class); - log.warn("Handling report request in DLQ userId: {} storageId: {} - setting status to error!", reportRequestMessage - .getUserId(), reportRequestMessage.getDownloadId()); + log.warn("Handling report request in DLQ userId: {} storageId: {} - setting status to error!", reportRequestMessage.getUserId(), reportRequestMessage.getDownloadId()); setDownloadFailed(reportRequestMessage.getUserId(), reportRequestMessage.getDownloadId()); } @@ -50,8 +50,7 @@ public class DownloadDLQMessageReceiver { public void handleReportResponseDlqMessage(Message failedMessage) throws IOException { ReportResultMessage reportResultMessage = objectMapper.readValue(failedMessage.getBody(), ReportResultMessage.class); - log.warn("Handling report request in DLQ userId: {} storageId: {} - setting status to error!", reportResultMessage - .getUserId(), reportResultMessage.getDownloadId()); + log.warn("Handling report request in DLQ userId: {} storageId: {} - setting status to error!", reportResultMessage.getUserId(), reportResultMessage.getDownloadId()); setDownloadFailed(reportResultMessage.getUserId(), reportResultMessage.getDownloadId()); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadMessageReceiver.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadMessageReceiver.java index 7ea799461..46796ff3e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadMessageReceiver.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadMessageReceiver.java @@ -32,7 +32,7 @@ public class DownloadMessageReceiver { DownloadJob downloadJob = objectMapper.readValue(message.getBody(), DownloadJob.class); // This prevents from endless retries oom errors. - if(message.getMessageProperties().isRedelivered()){ + if (message.getMessageProperties().isRedelivered()) { throw new AmqpRejectAndDontRequeueException(String.format("Error during last processing of request with downloadId: %s, do not retry.", downloadJob.getStorageId())); } @@ -46,5 +46,4 @@ public class DownloadMessageReceiver { downloadProcessorService.processDownload(downloadJob); } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadPreparationService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadPreparationService.java index 1fc8a4d26..8517799fe 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadPreparationService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadPreparationService.java @@ -131,10 +131,7 @@ public class DownloadPreparationService { .build()); } - downloadReportCleanupService.deleteTmpReportFiles(storedFileInformations - .stream() - .map(StoredFileInformation::getStorageId) - .collect(Collectors.toSet())); + downloadReportCleanupService.deleteTmpReportFiles(storedFileInformations.stream().map(StoredFileInformation::getStorageId).collect(Collectors.toSet())); downloadReportCleanupService.deleteTmpReportFiles(reportResultMessage.getRedactionResultDetails() .stream() .map(RedactionResultDetail::getStorageId) @@ -225,14 +222,18 @@ public class DownloadPreparationService { ReportTemplateEntity reportTemplate = reportTemplatePersistenceService.find(storedFileInformation.getTemplateId()); byte[] report = fileManagementStorageService.getStoredObjectBytes(storedFileInformation.getStorageId()); - fileSystemBackedArchiver.addEntry(new FileSystemBackedArchiver.ArchiveModel(removeExtension(reportTemplate.getFileName()) + (reportTemplate.isMultiFileReport() ? " (multifile)" : ""), addSuffix(createFileName(fileStatus, reportTemplate), "justification" + (storedFileInformation.getDocumentPartNr() != 0 ? "_" + storedFileInformation.getDocumentPartNr() : "")), report)); + fileSystemBackedArchiver.addEntry(new FileSystemBackedArchiver.ArchiveModel(removeExtension(reportTemplate.getFileName()) + (reportTemplate.isMultiFileReport() ? " (multifile)" : ""), + addSuffix(createFileName(fileStatus, reportTemplate), + "justification" + (storedFileInformation.getDocumentPartNr() != 0 ? "_" + storedFileInformation.getDocumentPartNr() : "")), + report)); } log.info("Successfully added {} reports for downloadId {}, took {}", storedFileInformations.size(), downloadId, System.currentTimeMillis() - addReportsStart); } + @SneakyThrows - private List getStoredFileInformation(String downloadId){ + private List getStoredFileInformation(String downloadId) { var storageId = downloadId.substring(0, downloadId.length() - 3) + "/REPORT_INFO.json"; @@ -240,6 +241,7 @@ public class DownloadPreparationService { }); } + private String createFileName(FileEntity fileStatus, ReportTemplateEntity reportTemplate) { if (fileStatus != null) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadProcessorService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadProcessorService.java index 59039d256..b2b6444ce 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadProcessorService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadProcessorService.java @@ -1,5 +1,14 @@ package com.iqser.red.service.peristence.v1.server.service.download; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Service; + import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration; @@ -11,14 +20,8 @@ import com.iqser.red.service.persistence.management.v1.processor.entity.download import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadStatusValue; import com.iqser.red.service.redaction.report.v1.api.model.ReportRequestMessage; -import lombok.RequiredArgsConstructor; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.stereotype.Service; -import javax.transaction.Transactional; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor @@ -29,6 +32,7 @@ public class DownloadProcessorService { private final RabbitTemplate rabbitTemplate; private final ObjectMapper objectMapper; + @Transactional public void processDownload(DownloadJob downloadJob) { @@ -66,5 +70,4 @@ public class DownloadProcessorService { } } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadReportCleanupService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadReportCleanupService.java index 415e4baf5..aebb291c2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadReportCleanupService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadReportCleanupService.java @@ -17,6 +17,7 @@ public class DownloadReportCleanupService { private final FileManagementStorageService fileManagementStorageService; + @Async public void deleteTmpReportFiles(Collection storageIds) { @@ -25,4 +26,5 @@ public class DownloadReportCleanupService { log.info("Deleted tmp report file {}", storageId); } } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadReportMessageReceiver.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadReportMessageReceiver.java index e2b24366f..f2c7b205a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadReportMessageReceiver.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/DownloadReportMessageReceiver.java @@ -30,18 +30,20 @@ public class DownloadReportMessageReceiver { @SneakyThrows @RabbitHandler @RabbitListener(queues = MessagingConfiguration.REPORT_RESULT_QUEUE) - public void receive(Message message){ + public void receive(Message message) { ReportResultMessage reportResultMessage = objectMapper.readValue(message.getBody(), ReportResultMessage.class); // This prevents from endless retries oom errors. - if(message.getMessageProperties().isRedelivered()){ - throw new AmqpRejectAndDontRequeueException(String.format("Error during last processing of request with downloadId: %s, do not retry.", reportResultMessage.getDownloadId())); + if (message.getMessageProperties().isRedelivered()) { + throw new AmqpRejectAndDontRequeueException(String.format("Error during last processing of request with downloadId: %s, do not retry.", + reportResultMessage.getDownloadId())); } receive(reportResultMessage); } + public void receive(ReportResultMessage reportResultMessage) throws JsonProcessingException { log.info("Received request for userId:{} downloadId:{}", reportResultMessage.getUserId(), reportResultMessage.getDownloadId()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/RedactionResultMessageReceiver.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/RedactionResultMessageReceiver.java index 6fbd29b41..e7d053d4d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/RedactionResultMessageReceiver.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/download/RedactionResultMessageReceiver.java @@ -35,8 +35,9 @@ public class RedactionResultMessageReceiver { RedactionResultMessage redactionResultMessage = objectMapper.readValue(message.getBody(), RedactionResultMessage.class); // This prevents from endless retries oom errors. - if(message.getMessageProperties().isRedelivered()){ - throw new AmqpRejectAndDontRequeueException(String.format("Error during last processing of request with downloadId: %s, do not retry.", redactionResultMessage.getDownloadId())); + if (message.getMessageProperties().isRedelivered()) { + throw new AmqpRejectAndDontRequeueException(String.format("Error during last processing of request with downloadId: %s, do not retry.", + redactionResultMessage.getDownloadId())); } log.info("Received redaction results for downloadId:{}", redactionResultMessage.getDownloadId()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/DossierTemplateExportService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/DossierTemplateExportService.java index 96caca6a8..1a797c8bb 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/DossierTemplateExportService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/DossierTemplateExportService.java @@ -1,5 +1,18 @@ package com.iqser.red.service.peristence.v1.server.service.export; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.List; +import java.util.stream.Collectors; + +import javax.transaction.Transactional; + +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.stereotype.Service; + import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -15,9 +28,21 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.*; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierStatusPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.EntryPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.*; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplate; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.FileAttributesGeneralConfiguration; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; @@ -28,18 +53,10 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.le import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type; import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadStatusValue; + import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.rabbit.core.RabbitTemplate; -import org.springframework.stereotype.Service; - -import javax.transaction.Transactional; -import java.io.*; -import java.util.List; -import java.util.stream.Collectors; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; @Slf4j @Service @@ -66,6 +83,7 @@ public class DossierTemplateExportService { private final RabbitTemplate rabbitTemplate; + public JSONPrimitive prepareExportDownload(ExportDownloadRequest request) { var mimeType = "application/zip"; @@ -79,9 +97,11 @@ public class DossierTemplateExportService { return new JSONPrimitive<>(storageId); } + @SneakyThrows @Transactional public void createDownloadArchive(DownloadJob downloadJob) { + objectMapper.registerModule(new JavaTimeModule()); DownloadStatusEntity downloadStatus = downloadStatusPersistenceService.getStatus(downloadJob.getStorageId()); @@ -90,43 +110,51 @@ public class DossierTemplateExportService { try (FileSystemBackedArchiver fileSystemBackedArchiver = new FileSystemBackedArchiver()) { // add dossier template name and meta data - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.DOSSIER_TEMPLATE_META, JSON_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.DOSSIER_TEMPLATE_META, JSON_EXT), objectMapper.writeValueAsBytes(convert(dossierTemplate, DossierTemplate.class)))); //add watermark json file - var watermarkList = watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId); - fileSystemBackedArchiver.addEntry(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.WATERMARK, JSON_EXT), - objectMapper.writeValueAsBytes(convert(watermarkList, Watermark.class)))); + var watermarkList = watermarkService.getWatermarksForDossierTemplateId(dossierTemplateId); + fileSystemBackedArchiver.addEntry(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.WATERMARK, JSON_EXT), + objectMapper.writeValueAsBytes(convert(watermarkList, Watermark.class)))); //add colors json file var colors = colorsService.getColors(dossierTemplateId); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.COLORS, JSON_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.COLORS, JSON_EXT), objectMapper.writeValueAsBytes(convert(colors, Colors.class)))); // add dossier statuses var dossierStatusList = dossierStatusPersistenceService.getAllDossierStatusForTemplate(dossierTemplateId); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.DOSSIER_STATUS, JSON_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.DOSSIER_STATUS, JSON_EXT), objectMapper.writeValueAsBytes(convert(dossierStatusList, DossierStatusInfo.class)))); // add dossier attributes config json var dossierAttributesConfig = dossierAttributeConfigPersistenceService.getDossierAttributes(dossierTemplateId); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.DOSSIER_ATTRIBUTES_CONFIG, JSON_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.DOSSIER_ATTRIBUTES_CONFIG, JSON_EXT), objectMapper.writeValueAsBytes(convert(dossierAttributesConfig, DossierAttributeConfig.class)))); // add file attribute configs var fileAttributeConfigList = fileAttributeConfigPersistenceService.getFileAttributes(dossierTemplateId); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.FILE_ATTRIBUTE_CONFIG, JSON_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.FILE_ATTRIBUTE_CONFIG, JSON_EXT), objectMapper.writeValueAsBytes(convert(fileAttributeConfigList, FileAttributeConfig.class)))); // add legal basis mapping var legalBasisMappingList = legalBasisMappingPersistenceService.getLegalBasisMapping(dossierTemplateId); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.LEGAL_BASIS, JSON_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.LEGAL_BASIS, JSON_EXT), objectMapper.writeValueAsBytes(convert(legalBasisMappingList, LegalBasis.class)))); // add file attributes general configuration try { var fileAttributesGeneralConfig = fileAttributeConfigPersistenceService.getFileAttributesGeneralConfiguration(dossierTemplateId); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.FILE_ATTRIBUTE_GENERAL_CONFIG, JSON_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.FILE_ATTRIBUTE_GENERAL_CONFIG, JSON_EXT), objectMapper.writeValueAsBytes(convert(fileAttributesGeneralConfig, FileAttributesGeneralConfiguration.class)))); } catch (NotFoundException e) { log.debug("file attributes general config not found"); @@ -134,18 +162,20 @@ public class DossierTemplateExportService { // add rule set var ruleSet = rulesPersistenceService.getRules(dossierTemplateId); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.RULES, TXT_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.RULES, TXT_EXT), objectMapper.writeValueAsBytes(ruleSet.getValue()))); //N files with the related report templates var reportTemplateList = reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplate.getId()); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, getFilename(ExportFilename.REPORT_TEMPLATE, JSON_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + getFilename(ExportFilename.REPORT_TEMPLATE, JSON_EXT), objectMapper.writeValueAsBytes(convert(reportTemplateList, ReportTemplate.class)))); reportTemplateList.forEach(reportTemplate -> { - var report = fileManagementStorageService.getStoredObjectBytes(reportTemplate.getStorageId()); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, - reportTemplate.isMultiFileReport()? reportTemplate.getFileName() + ExportFilename.REPORT_TEMPLATE_MULTI_FILE.getFilename() : reportTemplate.getFileName(), - report)); + var report = fileManagementStorageService.getStoredObjectBytes(reportTemplate.getStorageId()); + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(null, + reportTemplate.isMultiFileReport() ? reportTemplate.getFileName() + ExportFilename.REPORT_TEMPLATE_MULTI_FILE.getFilename() : reportTemplate.getFileName(), + report)); }); // for every type 1 folder with: // 1 json file containing meta info of the type @@ -155,15 +185,22 @@ public class DossierTemplateExportService { var dossierTypes = dictionaryPersistenceService.getAllTypesForDossierTemplate(dossierTemplateId, false); for (TypeEntity typeEntity : dossierTypes) { // log.info("type: " + typeEntity.getType() + " " + typeEntity.getDossierId() + " " + typeEntity.isDeleted()); - fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(typeEntity.getType(), getFilename(ExportFilename.DOSSIER_TYPE, JSON_EXT), + fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(typeEntity.getType(), + getFilename(ExportFilename.DOSSIER_TYPE, JSON_EXT), objectMapper.writeValueAsBytes(convert(typeEntity, Type.class)))); var entriesValuesList = entryPersistenceService.getEntries(typeEntity.getId(), DictionaryEntryType.ENTRY, null) - .stream().map(BaseDictionaryEntry::getValue).collect(Collectors.toList()); + .stream() + .map(BaseDictionaryEntry::getValue) + .collect(Collectors.toList()); var falsePositiveValuesList = entryPersistenceService.getEntries(typeEntity.getId(), DictionaryEntryType.FALSE_POSITIVE, null) - .stream().map(BaseDictionaryEntry::getValue).collect(Collectors.toList()); + .stream() + .map(BaseDictionaryEntry::getValue) + .collect(Collectors.toList()); var falseRecommendationValuesList = entryPersistenceService.getEntries(typeEntity.getId(), DictionaryEntryType.FALSE_RECOMMENDATION, null) - .stream().map(BaseDictionaryEntry::getValue).collect(Collectors.toList()); + .stream() + .map(BaseDictionaryEntry::getValue) + .collect(Collectors.toList()); writeEntriesListToFile(fileSystemBackedArchiver, entriesValuesList, typeEntity.getType(), getFilename(ExportFilename.ENTRIES, TXT_EXT)); writeEntriesListToFile(fileSystemBackedArchiver, falsePositiveValuesList, typeEntity.getType(), getFilename(ExportFilename.FALSE_POSITIVES, TXT_EXT)); @@ -180,15 +217,19 @@ public class DossierTemplateExportService { } + private String getFilename(ExportFilename exportFilename, String extension) { + return exportFilename.getFilename() + extension; } + private void writeEntriesListToFile(FileSystemBackedArchiver fileSystemBackedArchiver, List entriesValuesList, String folderName, String filename) { + try { ByteArrayOutputStream bt = new ByteArrayOutputStream(); DataOutputStream dt = new DataOutputStream(bt); - for(String entry : entriesValuesList) { + for (String entry : entriesValuesList) { dt.writeUTF(entry); } fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(folderName, filename, bt.toByteArray())); @@ -199,17 +240,22 @@ public class DossierTemplateExportService { } } + private void storeZipFile(String storageId, FileSystemBackedArchiver fileSystemBackedArchiver) { + long start = System.currentTimeMillis(); fileManagementStorageService.storeObject(storageId, fileSystemBackedArchiver.toInputStream()); log.info("Successfully stored zip for downloadId {}, took {}", storageId, System.currentTimeMillis() - start); } + private String extractDossierTemplateId(String fileName) { + var lastIndexOfDot = fileName.lastIndexOf("."); return fileName.substring(0, lastIndexOfDot); } + private void addToExportDownloadQueue(DownloadJob downloadJob, int priority) { try { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/ExportDownloadMessageReceiver.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/ExportDownloadMessageReceiver.java index c5b97a751..8c85e7f8e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/ExportDownloadMessageReceiver.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/export/ExportDownloadMessageReceiver.java @@ -1,23 +1,27 @@ package com.iqser.red.service.peristence.v1.server.service.export; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.stereotype.Service; + import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.peristence.v1.server.configuration.MessagingConfiguration; import com.iqser.red.service.peristence.v1.server.model.DownloadJob; + import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.stereotype.Service; @Slf4j @Service @RequiredArgsConstructor @RabbitListener(queues = MessagingConfiguration.EXPORT_DOWNLOAD_QUEUE) public class ExportDownloadMessageReceiver { + private final DossierTemplateExportService dossierTemplateService; private final ObjectMapper objectMapper; + @RabbitHandler public void receive(String in) throws JsonProcessingException { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/AutomaticAnalysisJob.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/AutomaticAnalysisJob.java index b6f493379..11e8d0444 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/AutomaticAnalysisJob.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/AutomaticAnalysisJob.java @@ -37,14 +37,16 @@ public class AutomaticAnalysisJob implements Job { return; } - tenantRepository.findAll().forEach(tenant -> { TenantContext.setTenantId(tenant.getTenantId()); var redactionQueueInfo = amqpAdmin.getQueueInfo(MessagingConfiguration.REDACTION_QUEUE); if (redactionQueueInfo != null) { - log.info("Checking queue status to see if background analysis can happen. Currently {} holds {} elements and has {} consumers", MessagingConfiguration.REDACTION_QUEUE, redactionQueueInfo.getMessageCount(), redactionQueueInfo.getConsumerCount()); + log.info("Checking queue status to see if background analysis can happen. Currently {} holds {} elements and has {} consumers", + MessagingConfiguration.REDACTION_QUEUE, + redactionQueueInfo.getMessageCount(), + redactionQueueInfo.getConsumerCount()); // only 1 file in queue var consumerCount = redactionQueueInfo.getConsumerCount(); if (redactionQueueInfo.getMessageCount() <= consumerCount * 5) { @@ -83,8 +85,8 @@ public class AutomaticAnalysisJob implements Job { private List getAllRelevantStatuses() { + return fileStatusService.getAllRelevantStatusesForReanalysisScheduler(); } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/DeletedFilesCleanupJob.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/DeletedFilesCleanupJob.java index 44938f318..2099863c5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/DeletedFilesCleanupJob.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/DeletedFilesCleanupJob.java @@ -31,7 +31,7 @@ public class DeletedFilesCleanupJob implements Job { @Override - public void execute(JobExecutionContext jobExecutionContext) { + public void execute(JobExecutionContext jobExecutionContext) { tenantRepository.findAll().forEach(tenant -> { @@ -50,7 +50,8 @@ public class DeletedFilesCleanupJob implements Job { } else { var files = fileStatusService.getDossierStatus(dossierEntity.getId()); for (var file : files) { - if (file.getHardDeletedTime() == null && file.getDeleted() != null && file.getDeleted().isBefore(now.minusHours(applicationConfigurationEntity.getSoftDeleteCleanupTime()))) { + if (file.getHardDeletedTime() == null && file.getDeleted() != null && file.getDeleted() + .isBefore(now.minusHours(applicationConfigurationEntity.getSoftDeleteCleanupTime()))) { fileService.hardDeleteFile(dossierEntity.getId(), file.getId()); fileStatusService.setFileStatusHardDeleted(file.getId()); log.info("Hard deleted file with dossier id {} and file id {}", dossierEntity.getId(), file.getId()); @@ -62,5 +63,4 @@ public class DeletedFilesCleanupJob implements Job { }); } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/DownloadCleanupJob.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/DownloadCleanupJob.java index 4958eafcd..e94e77504 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/DownloadCleanupJob.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/job/DownloadCleanupJob.java @@ -30,6 +30,7 @@ public class DownloadCleanupJob implements Job { private final ApplicationConfigService applicationConfigService; private final TenantRepository tenantRepository; + @Override public void execute(JobExecutionContext jobExecutionContext) { @@ -47,14 +48,20 @@ public class DownloadCleanupJob implements Job { if (downloadStatus.getLastDownload() != null && downloadStatus.getLastDownload() .plusHours(applicationConfigurationEntity.getDownloadCleanupDownloadFilesHours()) .isBefore(now)) { - log.info("1. Deleting download status {} because DownloadCleanupDownloadFilesHours is {} and c+h {} is after {}", downloadStatus, applicationConfigurationEntity.getDownloadCleanupDownloadFilesHours(), downloadStatus.getCreationDate() - .plusHours(applicationConfigurationEntity.getDownloadCleanupDownloadFilesHours()), now); + log.info("1. Deleting download status {} because DownloadCleanupDownloadFilesHours is {} and c+h {} is after {}", + downloadStatus, + applicationConfigurationEntity.getDownloadCleanupDownloadFilesHours(), + downloadStatus.getCreationDate().plusHours(applicationConfigurationEntity.getDownloadCleanupDownloadFilesHours()), + now); deleteDownload(downloadStatus); } else if (downloadStatus.getLastDownload() == null && downloadStatus.getCreationDate() .plusHours(applicationConfigurationEntity.getDownloadCleanupNotDownloadFilesHours()) .isBefore(now)) { - log.info("2. Deleting download status {} because DownloadCleanupNotDownloadFilesHours is {} and c+h {} is after {}", downloadStatus, applicationConfigurationEntity.getDownloadCleanupNotDownloadFilesHours(), downloadStatus.getCreationDate() - .plusHours(applicationConfigurationEntity.getDownloadCleanupNotDownloadFilesHours()), now); + log.info("2. Deleting download status {} because DownloadCleanupNotDownloadFilesHours is {} and c+h {} is after {}", + downloadStatus, + applicationConfigurationEntity.getDownloadCleanupNotDownloadFilesHours(), + downloadStatus.getCreationDate().plusHours(applicationConfigurationEntity.getDownloadCleanupNotDownloadFilesHours()), + now); deleteDownload(downloadStatus); } else if (dossier != null && dossierService.getDossierById(dossier.getId()).getSoftDeletedTime() != null) { log.info("3. Deleting download {}, because dossier does not exist", downloadStatus.getStorageId()); diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/DossierMapper.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/DossierMapper.java index 554a5c8ad..72a4868da 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/DossierMapper.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/DossierMapper.java @@ -1,16 +1,18 @@ package com.iqser.red.service.peristence.v1.server.utils; +import java.util.function.BiConsumer; +import java.util.stream.Collectors; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier; -import java.util.function.BiConsumer; -import java.util.stream.Collectors; - public class DossierMapper implements BiConsumer { @Override public void accept(DossierEntity dossierEntity, Dossier dossier) { + dossier.setReportTemplateIds(dossierEntity.getReportTemplates().stream().map(ReportTemplateEntity::getTemplateId).collect(Collectors.toSet())); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/FileModelMapper.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/FileModelMapper.java index fa19e44f4..c0431cacd 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/FileModelMapper.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/FileModelMapper.java @@ -1,18 +1,17 @@ package com.iqser.red.service.peristence.v1.server.utils; +import java.util.function.BiConsumer; + import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; -import java.util.function.BiConsumer; - public class FileModelMapper implements BiConsumer { @Override public void accept(FileEntity fileEntity, FileModel fileModel) { - fileEntity.getFileAttributes().forEach(fa -> - fileModel.getFileAttributes().put(fa.getFileAttributeId().getFileAttributeConfigId(), fa.getValue()) - ); + fileEntity.getFileAttributes().forEach(fa -> fileModel.getFileAttributes().put(fa.getFileAttributeId().getFileAttributeConfigId(), fa.getValue())); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/FileSystemBackedArchiver.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/FileSystemBackedArchiver.java index 1c0e408a6..84778a5d5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/FileSystemBackedArchiver.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/FileSystemBackedArchiver.java @@ -1,12 +1,11 @@ package com.iqser.red.service.peristence.v1.server.utils; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; - -import java.io.*; -import java.nio.file.FileSystems; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.nio.file.Files; import java.nio.file.attribute.FileAttribute; import java.nio.file.attribute.PosixFilePermission; @@ -20,6 +19,11 @@ import java.util.zip.ZipOutputStream; import org.apache.commons.lang3.SystemUtils; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; + @Slf4j public class FileSystemBackedArchiver implements AutoCloseable { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualImageRecategorizationMapper.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualImageRecategorizationMapper.java index 86675779f..a404eb794 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualImageRecategorizationMapper.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualImageRecategorizationMapper.java @@ -1,14 +1,15 @@ package com.iqser.red.service.peristence.v1.server.utils; +import java.util.function.BiConsumer; + import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualImageRecategorizationEntity; import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualImageRecategorization; -import java.util.function.BiConsumer; - public class ManualImageRecategorizationMapper implements BiConsumer { @Override public void accept(ManualImageRecategorizationEntity manualRedactionEntryEntity, ManualImageRecategorization manualRedactionEntry) { + manualRedactionEntry.setType(manualRedactionEntryEntity.getTypeId().substring(0, manualRedactionEntryEntity.getTypeId().indexOf(":"))); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualRedactionMapper.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualRedactionMapper.java index 271e2d7a6..982274c52 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualRedactionMapper.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualRedactionMapper.java @@ -1,17 +1,18 @@ package com.iqser.red.service.peristence.v1.server.utils; -import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualRedactionEntry; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.Rectangle; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; import java.util.function.BiConsumer; -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; +import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualRedactionEntryEntity; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.Rectangle; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualRedactionEntry; public class ManualRedactionMapper implements BiConsumer { @Override public void accept(ManualRedactionEntryEntity manualRedactionEntryEntity, ManualRedactionEntry manualRedactionEntry) { + manualRedactionEntry.setType(manualRedactionEntryEntity.getTypeId().substring(0, manualRedactionEntryEntity.getTypeId().indexOf(":"))); manualRedactionEntry.setPositions(convert(manualRedactionEntryEntity.getPositions(), Rectangle.class)); } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualResizeRedactionMapper.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualResizeRedactionMapper.java index b4bbd48a0..f56ee97dd 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualResizeRedactionMapper.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/ManualResizeRedactionMapper.java @@ -5,8 +5,8 @@ import static com.iqser.red.service.persistence.management.v1.processor.utils.Ma import java.util.function.BiConsumer; import com.iqser.red.service.persistence.management.v1.processor.entity.annotations.ManualResizeRedactionEntity; -import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualResizeRedaction; import com.iqser.red.service.persistence.service.v1.api.model.annotations.Rectangle; +import com.iqser.red.service.persistence.service.v1.api.model.annotations.entitymapped.ManualResizeRedaction; public class ManualResizeRedactionMapper implements BiConsumer { diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/StorageIdUtils.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/StorageIdUtils.java index ac1a34c38..4fa314ca3 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/StorageIdUtils.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/utils/StorageIdUtils.java @@ -1,13 +1,14 @@ package com.iqser.red.service.peristence.v1.server.utils; - import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; public final class StorageIdUtils { private StorageIdUtils() {} + public static String getStorageId(String dossierId, String fileId, FileType fileType) { + return dossierId + "/" + fileId + "." + fileType.name() + fileType.getExtension(); } @@ -17,12 +18,15 @@ public final class StorageIdUtils { return userId + "/" + dossierId + "/" + filename; } + public static String getStorageId(String userId, String dossierTemplateId) { return userId + "/" + dossierTemplateId; } + public static String getReportStorageId(String dossierTemplateId, String fileName) { + return dossierTemplateId + "/" + fileName; } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/validation/DictionaryValidator.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/validation/DictionaryValidator.java index cf4cf35e3..ec43c65bb 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/validation/DictionaryValidator.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/validation/DictionaryValidator.java @@ -1,10 +1,11 @@ package com.iqser.red.service.peristence.v1.server.validation; -import lombok.experimental.UtilityClass; +import java.awt.Color; +import java.util.Optional; + import org.apache.commons.lang3.StringUtils; -import java.awt.*; -import java.util.Optional; +import lombok.experimental.UtilityClass; @UtilityClass public class DictionaryValidator { @@ -68,7 +69,8 @@ public class DictionaryValidator { enum ValueType { - TYPE("Dictionary type"), ENTRY("Dictionary entry"); + TYPE("Dictionary type"), + ENTRY("Dictionary entry"); public final String label; diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/resources/log4j.properties b/persistence-service-v1/persistence-service-server-v1/src/main/resources/log4j.properties index 115e7c130..8c5a5738f 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/resources/log4j.properties +++ b/persistence-service-v1/persistence-service-server-v1/src/main/resources/log4j.properties @@ -2,7 +2,6 @@ log4j.rootLogger=INFO,stdout log4j.logger.com.endeca=INFO # Logger for crawl metrics log4j.logger.com.endeca.itl.web.metrics=INFO - log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%p\t%d{ISO8601}\t%r\t%c\t[%t]\t%m%n \ 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/ApplicationConfigClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ApplicationConfigClient.java index 7be8a6570..8193f3ae5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ApplicationConfigClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ApplicationConfigClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.ApplicationConfigurationResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.ApplicationConfigurationResource; + @FeignClient(name = "ApplicationConfigClient", url = "http://localhost:${server.port}") public interface ApplicationConfigClient extends ApplicationConfigurationResource { + } 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 index 83d3f5fa7..09c46dbc8 100644 --- 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 @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.AuditResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.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/client/DictionaryClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DictionaryClient.java index 67ff6bf43..d69ed1a2d 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DictionaryClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DictionaryClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DictionaryResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DictionaryResource; + @FeignClient(name = "DictionaryClient", url = "http://localhost:${server.port}") public interface DictionaryClient extends DictionaryResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DigitalSignatureClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DigitalSignatureClient.java index 328797eeb..55a39aae2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DigitalSignatureClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DigitalSignatureClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DigitalSignatureResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DigitalSignatureResource; + @FeignClient(name = "DigitalSignatureClient", url = "http://localhost:${server.port}") public interface DigitalSignatureClient extends DigitalSignatureResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierAttributeClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierAttributeClient.java index fec2f35db..fc17f1ebc 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierAttributeClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierAttributeClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesResource; + @FeignClient(name = "DossierAttributeClient", url = "http://localhost:${server.port}") public interface DossierAttributeClient extends DossierAttributesResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierAttributeConfigClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierAttributeConfigClient.java index 97024ce0e..18a9020a2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierAttributeConfigClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierAttributeConfigClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesConfigResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DossierAttributesConfigResource; + @FeignClient(name = "DossierAttributeConfigClient", url = "http://localhost:${server.port}") public interface DossierAttributeConfigClient extends DossierAttributesConfigResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierClient.java index b9ea0ea14..b366087f3 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DossierResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DossierResource; + @FeignClient(name = "Dossier", url = "http://localhost:${server.port}") public interface DossierClient extends DossierResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatsClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatsClient.java index 29f6de325..b0233d5a2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatsClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatsClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DossierStatsResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DossierStatsResource; + @FeignClient(name = "DossierStats", url = "http://localhost:${server.port}") public interface DossierStatsClient extends DossierStatsResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatusClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatusClient.java index f49fb0189..148d3d208 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatusClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierStatusClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DossierStatusResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DossierStatusResource; + @FeignClient(name = "DossierStatusClient", url = "http://localhost:${server.port}") public interface DossierStatusClient extends DossierStatusResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierTemplateClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierTemplateClient.java index ec57ec691..dd2a459e3 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierTemplateClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierTemplateClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DossierTemplateResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DossierTemplateResource; + @FeignClient(name = "DossierTemplateClient", url = "http://localhost:${server.port}") public interface DossierTemplateClient extends DossierTemplateResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierTemplateStatsClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierTemplateStatsClient.java index 47564961b..9715cf48e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierTemplateStatsClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DossierTemplateStatsClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DossierTemplateStatsResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DossierTemplateStatsResource; + @FeignClient(name = "DossierTemplateStats", url = "http://localhost:${server.port}") public interface DossierTemplateStatsClient extends DossierTemplateStatsResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DownloadClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DownloadClient.java index 36d0fb596..6b6163ed5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DownloadClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/DownloadClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.DownloadResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.DownloadResource; + @FeignClient(name = "DownloadClient", url = "http://localhost:${server.port}") public interface DownloadClient extends DownloadResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileAttributeClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileAttributeClient.java index 7a2c5aff1..f1aa55313 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileAttributeClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileAttributeClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesResource; + @FeignClient(name = "FileAttributeClient", url = "http://localhost:${server.port}") public interface FileAttributeClient extends FileAttributesResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileAttributeConfigClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileAttributeConfigClient.java index adaaf5ba8..8f2918e11 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileAttributeConfigClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileAttributeConfigClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesConfigResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesConfigResource; + @FeignClient(name = "FileAttributeConfigClient", url = "http://localhost:${server.port}") public interface FileAttributeConfigClient extends FileAttributesConfigResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileClient.java index 3b8947336..cf5ac5ac6 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.StatusResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.StatusResource; + @FeignClient(name = "FileClient", url = "http://localhost:${server.port}") public interface FileClient extends StatusResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileProcessingClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileProcessingClient.java index daf8ce483..c894091c7 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileProcessingClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/FileProcessingClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.FileStatusProcessingUpdateResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.FileStatusProcessingUpdateResource; + @FeignClient(name = "FileProcessingClient", url = "http://localhost:${server.port}") public interface FileProcessingClient extends FileStatusProcessingUpdateResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LegalBasisClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LegalBasisClient.java index b31000365..1ade9831f 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LegalBasisClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LegalBasisClient.java @@ -1,8 +1,9 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.LegalBasisMappingResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.LegalBasisMappingResource; + @FeignClient(name = "LegalBasisClient", url = "http://localhost:${server.port}") public interface LegalBasisClient extends LegalBasisMappingResource { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LicenseReportClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LicenseReportClient.java index fe3363a3b..35ef0bbc2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LicenseReportClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/LicenseReportClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.LicenseReportResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.LicenseReportResource; + @FeignClient(name = "LicenseReportClient", url = "http://localhost:${server.port}") public interface LicenseReportClient extends LicenseReportResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ManualRedactionClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ManualRedactionClient.java index 2236acf5e..a33bf1897 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ManualRedactionClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ManualRedactionClient.java @@ -1,8 +1,9 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.ManualRedactionResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.ManualRedactionResource; + @FeignClient(name = "ManualRedactionClient", url = "http://localhost:${server.port}") public interface ManualRedactionClient extends ManualRedactionResource { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/NotificationClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/NotificationClient.java index 1afed6316..7f24bb06e 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/NotificationClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/NotificationClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.NotificationResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.NotificationResource; + @FeignClient(name = "NotificationClient", url = "http://localhost:${server.port}") public interface NotificationClient extends NotificationResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/NotificationPreferencesClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/NotificationPreferencesClient.java index c137e1a5c..15c2f75c8 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/NotificationPreferencesClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/NotificationPreferencesClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.NotificationPreferencesResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.NotificationPreferencesResource; + @FeignClient(name = "NotificationPreferencesClient", url = "http://localhost:${server.port}") public interface NotificationPreferencesClient extends NotificationPreferencesResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReanalysisClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReanalysisClient.java index f878eb3bc..583dae999 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReanalysisClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReanalysisClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.ReanalysisResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.ReanalysisResource; + @FeignClient(name = "ReanalysisClient", url = "http://localhost:${server.port}") public interface ReanalysisClient extends ReanalysisResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RedactionLogClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RedactionLogClient.java index eaae236c4..13140b614 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RedactionLogClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RedactionLogClient.java @@ -1,9 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.RedactionLogResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.RedactionLogResource; @FeignClient(name = "RedactionLogClient", url = "http://localhost:${server.port}") public interface RedactionLogClient extends RedactionLogResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReportTemplateClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReportTemplateClient.java index 302204145..e866dee4c 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReportTemplateClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ReportTemplateClient.java @@ -1,9 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.ReportTemplateResource; @FeignClient(name = "ReportTemplateClient", url = "http://localhost:${server.port}") public interface ReportTemplateClient extends ReportTemplateResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RulesClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RulesClient.java index 583ba6ee5..6d979c968 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RulesClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/RulesClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.RulesResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.RulesResource; + @FeignClient(name = "RulesClient", url = "http://localhost:${server.port}") public interface RulesClient extends RulesResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/SMTPClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/SMTPClient.java index f4bbe7bd5..d5f34654a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/SMTPClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/SMTPClient.java @@ -1,9 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.SMTPConfigurationResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.SMTPConfigurationResource; @FeignClient(name = "SMTPClient", url = "http://localhost:${server.port}") public interface SMTPClient extends SMTPConfigurationResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/TenantsClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/TenantsClient.java index 5dbb2bc28..dd2c7dcba 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/TenantsClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/TenantsClient.java @@ -4,7 +4,6 @@ import org.springframework.cloud.openfeign.FeignClient; import com.iqser.red.service.persistence.service.v1.api.resources.TenantsResource; - @FeignClient(name = "TenantsClient", url = "http://localhost:${server.port}") public interface TenantsClient extends TenantsResource { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/UploadClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/UploadClient.java index 76aff7537..e2515bb93 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/UploadClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/UploadClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.UploadResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.UploadResource; + @FeignClient(name = "UploadClient", url = "http://localhost:${server.port}") public interface UploadClient extends UploadResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ViewedPagesClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ViewedPagesClient.java index b4d3a4931..a3d793ec1 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ViewedPagesClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/ViewedPagesClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.ViewedPagesResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.ViewedPagesResource; + @FeignClient(name = "ViewedPagesClient", url = "http://localhost:${server.port}") public interface ViewedPagesClient extends ViewedPagesResource { + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/WatermarkClient.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/WatermarkClient.java index 6c48dc7ef..2c593518f 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/WatermarkClient.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/client/WatermarkClient.java @@ -1,8 +1,10 @@ package com.iqser.red.service.peristence.v1.server.integration.client; -import com.iqser.red.service.persistence.service.v1.api.resources.WatermarkResource; import org.springframework.cloud.openfeign.FeignClient; +import com.iqser.red.service.persistence.service.v1.api.resources.WatermarkResource; + @FeignClient(name = "WatermarkClient", url = "http://localhost:${server.port}") public interface WatermarkClient extends WatermarkResource { + } 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 c1ab54075..cc1499641 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 @@ -1,5 +1,14 @@ package com.iqser.red.service.peristence.v1.server.integration.service; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.List; + +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.DossierTemplateClient; import com.iqser.red.service.peristence.v1.server.integration.client.LegalBasisClient; @@ -10,15 +19,6 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.Do import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.List; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; - @Service public class DossierTemplateTesterAndProvider { @@ -31,7 +31,9 @@ public class DossierTemplateTesterAndProvider { @Autowired private LegalBasisClient legalBasisClient; + public DossierTemplate provideTestTemplate(String name) { + CreateOrUpdateDossierTemplateRequest cru = new CreateOrUpdateDossierTemplateRequest(); cru.setDownloadFileTypes(Sets.newHashSet(DownloadFileType.ORIGINAL)); cru.setName(name); @@ -56,9 +58,10 @@ public class DossierTemplateTesterAndProvider { return loadedTemplate; } + public DossierTemplate provideTestTemplate() { + return provideTestTemplate("Template 1"); } - } 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 3d5ecab04..78e263e05 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,5 +1,14 @@ package com.iqser.red.service.peristence.v1.server.integration.service; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; +import java.util.List; + +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.model.dossiertemplate.DossierTemplate; @@ -7,14 +16,6 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.Do import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.OffsetDateTime; -import java.time.temporal.ChronoUnit; -import java.util.List; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @Service public class DossierTesterAndProvider { @@ -25,17 +26,22 @@ public class DossierTesterAndProvider { @Autowired private DossierClient dossierClient; + public Dossier provideTestDossier(DossierTemplate testTemplate) { + return provideTestDossier(testTemplate, "Dossier1"); } + public Dossier provideTestDossier(DossierTemplate testTemplate, String dossierName) { + return provideTestDossier(testTemplate, dossierName, null); } + public Dossier provideTestDossier(DossierTemplate testTemplate, String dossierName, DossierStatusInfo dossierStatus) { - var result = provideTestDossierQuick(testTemplate,dossierName,dossierStatus); + var result = provideTestDossierQuick(testTemplate, dossierName, dossierStatus); assertThat(result.getDossierName()).isEqualTo(dossierName); @@ -46,7 +52,9 @@ public class DossierTesterAndProvider { return loadedDossier; } + public Dossier provideTestDossierQuick(DossierTemplate testTemplate, String dossierName, DossierStatusInfo dossierStatus) { + CreateOrUpdateDossierRequest cru = new CreateOrUpdateDossierRequest(); cru.setDownloadFileTypes(Sets.newHashSet(DownloadFileType.ORIGINAL)); cru.setDossierName(dossierName); @@ -75,6 +83,7 @@ public class DossierTesterAndProvider { return provideTestDossier(testTemplate, "Dossier1"); } + public Dossier provideTestDossier(String dossierName) { var testTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java index 82fcddcfb..25e8289cc 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/service/FileTesterAndProvider.java @@ -1,5 +1,14 @@ package com.iqser.red.service.peristence.v1.server.integration.service; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; +import java.util.List; + +import org.apache.commons.codec.binary.Base64; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; @@ -13,21 +22,12 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do import com.iqser.red.service.redaction.v1.model.RedactionLog; import com.iqser.red.service.redaction.v1.model.RedactionLogEntry; import com.iqser.red.service.redaction.v1.model.SectionGrid; + import lombok.SneakyThrows; -import org.apache.commons.codec.binary.Base64; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.io.ByteArrayInputStream; -import java.nio.charset.StandardCharsets; -import java.util.List; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @Service public class FileTesterAndProvider { - @Autowired private FileManagementStorageService fileManagementStorageService; @@ -47,6 +47,7 @@ public class FileTesterAndProvider { return testAndProvideFile(dossier, "test.pdf"); } + @SneakyThrows public FileModel testAndProvideFile(Dossier dossier, String fileName) { @@ -57,15 +58,17 @@ public class FileTesterAndProvider { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isGreaterThanOrEqualTo(1); - fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.REDACTION_LOG, new RedactionLog(1, 1, - List.of(RedactionLogEntry.builder().id("annotationId").type("manual").value("value entry").build()), - null, 0, 0, 0, 0)); + fileManagementStorageService.storeJSONObject(dossier.getId(), + file.getId(), + FileType.REDACTION_LOG, + new RedactionLog(1, 1, List.of(RedactionLogEntry.builder().id("annotationId").type("manual").value("value entry").build()), null, 0, 0, 0, 0)); fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.SECTION_GRID, new SectionGrid()); fileManagementStorageService.storeObject(dossier.getId(), file.getId(), FileType.ORIGIN, new ByteArrayInputStream(objectMapper.writeValueAsBytes("bytes of the file"))); return file; } + @SneakyThrows public String testAndProvideFileQuick(Dossier dossier, String fileName) { 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 fb5883191..60c4566e5 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 @@ -41,13 +41,13 @@ public class TypeProvider { assertThat(loadedType).isNotNull(); - return loadedType; } + public Type testAndProvideType(DossierTemplate dossierTemplate) { + return testAndProvideType(dossierTemplate, null, "test"); } - } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ApplicationConfigTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ApplicationConfigTest.java index 1d6100280..9c50389aa 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ApplicationConfigTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ApplicationConfigTest.java @@ -1,22 +1,28 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.ApplicationConfigClient; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.ApplicationConfig; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import static org.assertj.core.api.Assertions.assertThat; public class ApplicationConfigTest extends AbstractPersistenceServerServiceTest { @Autowired private ApplicationConfigClient appConfigClient; + @Test public void testAppConfig() { + ApplicationConfig appConfig = new ApplicationConfig().builder() - .downloadCleanupDownloadFilesHours(8).downloadCleanupNotDownloadFilesHours(72).softDeleteCleanupTime(96).build(); + .downloadCleanupDownloadFilesHours(8) + .downloadCleanupNotDownloadFilesHours(72) + .softDeleteCleanupTime(96) + .build(); var result = appConfigClient.createOrUpdateAppConfig(appConfig); assertThat(result.getSoftDeleteCleanupTime()).isEqualTo(appConfig.getSoftDeleteCleanupTime()); @@ -37,4 +43,5 @@ public class ApplicationConfigTest extends AbstractPersistenceServerServiceTest assertThat(getResult.getDownloadCleanupDownloadFilesHours()).isEqualTo(appConfig.getDownloadCleanupDownloadFilesHours()); assertThat(getResult.getDownloadCleanupNotDownloadFilesHours()).isEqualTo(appConfig.getDownloadCleanupNotDownloadFilesHours()); } + } 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 index 06f6b5aa6..52c55d89f 100644 --- 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 @@ -1,17 +1,18 @@ 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.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.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.AuditRepository; import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditRequest; import com.iqser.red.service.persistence.service.v1.api.model.audit.AuditSearchRequest; import com.iqser.red.service.persistence.service.v1.api.model.audit.CategoryModel; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.Map; - -import static org.assertj.core.api.Assertions.assertThat; public class AuditTest extends AbstractPersistenceServerServiceTest { @@ -21,17 +22,16 @@ public class AuditTest extends AbstractPersistenceServerServiceTest { @Autowired private AuditRepository auditRepository; + @Test public void testAudit() { assertThat(auditClient.getCategories()).isEmpty(); - auditClient.audit(AuditRequest.builder().category("c1").message("test").userId("1").objectId("1").details(Map.of("key", "value")).build()); auditClient.audit(AuditRequest.builder().category("c1").message("test").userId("1").objectId("1").details(Map.of("key", "value")).build()); auditClient.audit(AuditRequest.builder().category("c2").message("test").userId("1").objectId("1").details(Map.of("key", "value")).build()); - assertThat(auditClient.getCategories().size()).isEqualTo(2); assertThat(auditClient.getCategories().stream().filter(c -> c.getCategory().equals("c1")).findAny().map(CategoryModel::getRecordCount).get()).isEqualTo(2); assertThat(auditClient.getCategories().stream().filter(c -> c.getCategory().equals("c2")).findAny().map(CategoryModel::getRecordCount).get()).isEqualTo(1); @@ -43,4 +43,5 @@ public class AuditTest extends AbstractPersistenceServerServiceTest { assertThat(result.getTotalHits()).isEqualTo(3); } + } 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 fcb6eaaa9..7a2f07407 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 @@ -1,5 +1,14 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; @@ -8,15 +17,8 @@ import com.iqser.red.service.peristence.v1.server.integration.service.TypeProvid import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type; + import feign.FeignException; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -import static org.assertj.core.api.Assertions.assertThat; public class DictionaryTest extends AbstractPersistenceServerServiceTest { @@ -58,6 +60,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType.getFalseRecommendationEntries()).hasSize(2); } + @Test public void testSkippedColor() { @@ -73,6 +76,7 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType.getSkippedHexColor()).isNotNull(); } + @Test public void testAddEntriesWithStopWord() { @@ -201,10 +205,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntries(type.getTypeId(), entries, false, false, DictionaryEntryType.ENTRY); assertThat(dictionaryClient.getEntriesForType(type.getTypeId(), null, DictionaryEntryType.ENTRY)).hasSize(3); - assertThat(dictionaryClient.getEntriesForType(type.getTypeId(), null, DictionaryEntryType.ENTRY) - .stream() - .map(e -> e.getValue()) - .collect(Collectors.toList())).contains(word1, word2, word3); + assertThat(dictionaryClient.getEntriesForType(type.getTypeId(), null, DictionaryEntryType.ENTRY).stream().map(e -> e.getValue()).collect(Collectors.toList())).contains( + word1, + word2, + word3); // Act & Assert: Add same word again; No duplicate should exist entries = new ArrayList<>(); @@ -212,10 +216,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntries(type.getTypeId(), entries, false, false, DictionaryEntryType.ENTRY); assertThat(dictionaryClient.getEntriesForType(type.getTypeId(), null, DictionaryEntryType.ENTRY)).hasSize(3); - assertThat(dictionaryClient.getEntriesForType(type.getTypeId(), null, DictionaryEntryType.ENTRY) - .stream() - .map(e -> e.getValue()) - .collect(Collectors.toList())).contains(word1, word2, word3); + assertThat(dictionaryClient.getEntriesForType(type.getTypeId(), null, DictionaryEntryType.ENTRY).stream().map(e -> e.getValue()).collect(Collectors.toList())).contains( + word1, + word2, + word3); // Act & Assert: Add words multiple times again; No duplicate should exist entries = new ArrayList<>(); @@ -228,10 +232,10 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { dictionaryClient.addEntries(type.getTypeId(), entries, false, false, DictionaryEntryType.ENTRY); assertThat(dictionaryClient.getEntriesForType(type.getTypeId(), null, DictionaryEntryType.ENTRY)).hasSize(3); - assertThat(dictionaryClient.getEntriesForType(type.getTypeId(), null, DictionaryEntryType.ENTRY) - .stream() - .map(e -> e.getValue()) - .collect(Collectors.toList())).contains(word1, word2, word3); + assertThat(dictionaryClient.getEntriesForType(type.getTypeId(), null, DictionaryEntryType.ENTRY).stream().map(e -> e.getValue()).collect(Collectors.toList())).contains( + word1, + word2, + word3); } @@ -318,7 +322,6 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { actualEntries = actualEntries.stream().filter(e -> !e.isDeleted()).collect(Collectors.toList()); assertThat(actualEntries.size()).isEqualTo(0); - dictionaryClient.addType(type); actualEntries = dictionaryClient.getEntriesForType(createdType.getTypeId(), 0L, DictionaryEntryType.ENTRY); actualEntries = actualEntries.stream().filter(e -> !e.isDeleted()).collect(Collectors.toList()); @@ -365,7 +368,6 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { entries.add(word5); dictionaryClient.addEntries(createdType.getTypeId(), entries, true, false, DictionaryEntryType.ENTRY); - entries.add(word1); entries.add(word2); entries.add(word3); @@ -375,4 +377,5 @@ public class DictionaryTest extends AbstractPersistenceServerServiceTest { assertThat(existingEntries.stream().filter(f -> !f.isDeleted()).count()).isEqualTo(5); } + } 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 45510b68f..317c5f83f 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 @@ -1,5 +1,15 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import org.assertj.core.util.Lists; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.DossierAttributeClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierAttributeConfigClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; @@ -7,16 +17,8 @@ import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPers import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttribute; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierAttributeType; + import lombok.SneakyThrows; -import org.assertj.core.util.Lists; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -import static org.assertj.core.api.Assertions.assertThat; public class DossierAttributeTest extends AbstractPersistenceServerServiceTest { @@ -33,6 +35,7 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest { @SneakyThrows @Test public void testDossierAttributes() { + var dossier = dossierTesterAndProvider.provideTestDossier(); var loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); @@ -43,36 +46,30 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest { attribute.setEditable(true); attribute.setType(DossierAttributeType.TEXT); - dossierAttributeConfigClient.addOrUpdateDossierAttribute(dossier.getDossierTemplateId(), attribute); loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); assertThat(loadedAttributes).isNotEmpty(); - dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), Lists.newArrayList()); loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); assertThat(loadedAttributes).isEmpty(); - dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), Lists.newArrayList(attribute)); loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); assertThat(loadedAttributes).isNotEmpty(); dossierAttributeConfigClient.deleteDossierAttribute(loadedAttributes.iterator().next().getId()); - dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), Lists.newArrayList(attribute)); loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); assertThat(loadedAttributes).isNotEmpty(); - dossierAttributeConfigClient.deleteDossierAttributes( - loadedAttributes.stream().map(DossierAttributeConfig::getId).collect(Collectors.toList())); + dossierAttributeConfigClient.deleteDossierAttributes(loadedAttributes.stream().map(DossierAttributeConfig::getId).collect(Collectors.toList())); dossierAttributeConfigClient.setDossierAttributesConfig(dossier.getDossierTemplateId(), Lists.newArrayList(attribute)); loadedAttributes = dossierAttributeConfigClient.getDossierAttributes(dossier.getDossierTemplateId()); assertThat(loadedAttributes).isNotEmpty(); var configId = loadedAttributes.iterator().next().getId(); - List dossierAttributes = new ArrayList<>(); dossierAttributes.add(DossierAttribute.builder().dossierAttributeConfigId(configId).dossierId(dossier.getId()).value("lorem ipsum").build()); dossierAttributeClient.setDossierAttributes(dossier.getId(), dossierAttributes); @@ -115,4 +112,5 @@ public class DossierAttributeTest extends AbstractPersistenceServerServiceTest { assertThat(loadedAttributeValues).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 5c74ee675..497769f1b 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 @@ -55,6 +55,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { @Before public void setupData() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); dossier1 = dossierTesterAndProvider.provideTestDossier(dossierTemplate); //provides 2 files @@ -108,8 +109,10 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { }); } + @Test public void testDossierStatsWithOneDossierId() { + DossierStats dossierStats = dossierStatsClient.getDossierStats(dossier1.getId()); assertThat(dossierStats.getDossierId()).isEqualTo(dossier1.getId()); assertThat(dossierStats.getNumberOfFiles()).isEqualTo(2); @@ -124,8 +127,10 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { assertThat(dossierStats.getFileManipulationDate()).isEqualTo(OLDER_2); } + @Test public void testDossierStatsWithMoreDossierIds() { + Set dossierIds = new HashSet<>(); dossierIds.add(dossier1.getId()); dossierIds.add(dossier2.getId()); @@ -147,6 +152,7 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { assertThat(dossierStats.getFileManipulationDate()).isEqualTo(OLDER_2); } + @Test public void testArchivedAndDeletedDossierStats() { @@ -166,6 +172,6 @@ public class DossierStatsTest extends AbstractPersistenceServerServiceTest { dossierStats = dossierStatsClient.getDossierStats(dossier1.getId()); assertThat(dossierStats.getNumberOfSoftDeletedFiles()).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 7937396ad..b86c9ebc5 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 @@ -1,20 +1,20 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Test; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierStatusClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; -import feign.FeignException; -import org.junit.Test; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import static org.assertj.core.api.Assertions.assertThat; +import feign.FeignException; public class DossierStatusTest extends AbstractPersistenceServerServiceTest { @@ -30,8 +30,10 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest { @Autowired private DossierTesterAndProvider dossierTesterAndProvider; + @Test public void testDossierStatus() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); var allDossierStatus = dossierStatusClient.getAllDossierStatusForTemplate(dossierTemplate.getId()); @@ -104,7 +106,7 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest { //delete first status with itself try { - dossierStatusClient.deleteDossierStatus(loadedDossierStatus.getId(),loadedDossierStatus.getId()); + dossierStatusClient.deleteDossierStatus(loadedDossierStatus.getId(), loadedDossierStatus.getId()); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } 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 6f881128a..b662fa6a8 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 @@ -37,6 +37,7 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ty import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type; public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTest { + private static final String TYPE_ID_1 = "type1"; private static final String TYPE_ID_2 = "type2"; private static final String TYPE_ID_3 = "type3"; @@ -73,6 +74,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe @Autowired private DossierStatusClient dossierStatusClient; + @Test public void testDossierTemplateDictionaryStats() { @@ -185,7 +187,10 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe List dossierTemplateStatsList = dossierTemplateStatsClient.getDossierTemplateDictionaryStats(dossierTemplateIds); assertThat(dossierTemplateStatsList.size()).isEqualTo(dossierTemplateIds.size()); - DossierTemplateDictionaryStats dossierTemplateStats1 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())).findAny().get(); + DossierTemplateDictionaryStats dossierTemplateStats1 = dossierTemplateStatsList.stream() + .filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())) + .findAny() + .get(); assertThat(dossierTemplateStats1.getDossierTemplateId()).isEqualTo(dossierTemplate2.getId()); assertThat(dossierTemplateStats1.getNumberOfDictionaries()).isEqualTo(2); @@ -194,7 +199,10 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe assertThat(dictionarySummaryList.stream().filter(d -> d.getType().equals(TYPE_ID_2)).findAny().get().getEntriesCount()).isEqualTo(entries2.size()); // dossier template with no type - DossierTemplateDictionaryStats dossierTemplateStats3 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate4.getId())).findAny().get(); + DossierTemplateDictionaryStats dossierTemplateStats3 = dossierTemplateStatsList.stream() + .filter(d -> d.getDossierTemplateId().equals(dossierTemplate4.getId())) + .findAny() + .get(); assertThat(dossierTemplateStats3.getDossierTemplateId()).isEqualTo(dossierTemplate4.getId()); assertThat(dossierTemplateStats3.getNumberOfDictionaries()).isZero(); @@ -206,7 +214,10 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe dossierTemplateStatsList = dossierTemplateStatsClient.getDossierTemplateDictionaryStats(dossierTemplateIds); assertThat(dossierTemplateStatsList.size()).isEqualTo(dossierTemplateIds.size()); - DossierTemplateDictionaryStats dossierTemplateStats2 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())).findAny().get(); + DossierTemplateDictionaryStats dossierTemplateStats2 = dossierTemplateStatsList.stream() + .filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())) + .findAny() + .get(); dictionarySummaryList = dossierTemplateStats2.getDictionarySummaryList(); assertThat(dictionarySummaryList.stream().filter(d -> d.getType().equals(TYPE_ID_2)).findAny().get().getEntriesCount()).isEqualTo(entries2.size() - entries22.size()); @@ -223,15 +234,19 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe dossierTemplateStatsList = dossierTemplateStatsClient.getDossierTemplateDictionaryStats(dossierTemplateIds); assertThat(dossierTemplateStatsList.size()).isEqualTo(dossierTemplateIds.size()); - DossierTemplateDictionaryStats dossierTemplateStats23 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())).findAny().get(); + DossierTemplateDictionaryStats dossierTemplateStats23 = dossierTemplateStatsList.stream() + .filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())) + .findAny() + .get(); dictionarySummaryList = dossierTemplateStats23.getDictionarySummaryList(); assertThat(dictionarySummaryList.stream().filter(d -> d.getType().equals(TYPE_ID_2)).findAny().isEmpty()).isTrue(); - } + public DossierTemplate provideTestTemplate(String dossierTemplateName) { + CreateOrUpdateDossierTemplateRequest cru = new CreateOrUpdateDossierTemplateRequest(); cru.setDownloadFileTypes(Sets.newHashSet(DownloadFileType.ORIGINAL)); cru.setName(dossierTemplateName); @@ -243,16 +258,18 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe return dossierTemplateClient.createOrUpdateDossierTemplate(cru); } + @Test public void testDossierTemplateStats() { - - for (int i = 0; i < 2; i++) { var template = dossierTemplateTesterAndProvider.provideTestTemplate("test template: " + i); var status = dossierStatusClient.createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest.builder() - .dossierTemplateId(template.getId()).name("test").rank(100).build()); + .dossierTemplateId(template.getId()) + .name("test") + .rank(100) + .build()); for (int j = 0; j < 8; j++) { var dossier = dossierTesterAndProvider.provideTestDossierQuick(template, "test dossier: " + j + " - " + i, j % 2 == 0 ? status : null); @@ -261,8 +278,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe var fileId = fileTesterAndProvider.testAndProvideFileQuick(dossier, "file: " + k); if (k % 2 == 0) { - fileStatusPersistenceService.updateProcessingStatus(fileId, k, - 0L, 0L, 0L, 0L, 0L, 1, 1); + fileStatusPersistenceService.updateProcessingStatus(fileId, k, 0L, 0L, 0L, 0L, 0L, 1, 1); fileClient.excludePages(dossier.getId(), fileId, Set.of(k)); } if (k % 3 == 0) { @@ -292,11 +308,13 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe } } - var template = dossierTemplateTesterAndProvider.provideTestTemplate("test template inactive: "); var status = dossierStatusClient.createOrUpdateDossierStatus(CreateOrUpdateDossierStatusRequest.builder() - .dossierTemplateId(template.getId()).name("test").rank(100).build()); + .dossierTemplateId(template.getId()) + .name("test") + .rank(100) + .build()); var dossier = dossierTesterAndProvider.provideTestDossierQuick(template, "test dossier: ", status); dossierClient.delete(dossier.getId()); @@ -314,4 +332,5 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe long t2 = System.currentTimeMillis(); System.out.println("Time for Stats: " + (t2 - t1) + "ms"); } + } 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 2a5c8c073..9aefce56d 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 @@ -1,16 +1,43 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; +import static org.assertj.core.api.Assertions.assertThat; + +import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import org.junit.Test; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; + import com.fasterxml.jackson.databind.ObjectMapper; -import com.iqser.red.service.peristence.v1.server.integration.client.*; +import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient; +import com.iqser.red.service.peristence.v1.server.integration.client.DossierAttributeConfigClient; +import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; +import com.iqser.red.service.peristence.v1.server.integration.client.DossierStatusClient; +import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient; +import com.iqser.red.service.peristence.v1.server.integration.client.DownloadClient; +import com.iqser.red.service.peristence.v1.server.integration.client.FileAttributeConfigClient; +import com.iqser.red.service.peristence.v1.server.integration.client.LegalBasisClient; +import com.iqser.red.service.peristence.v1.server.integration.client.ReportTemplateClient; +import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.peristence.v1.server.service.export.ExportDownloadMessageReceiver; import com.iqser.red.service.peristence.v1.server.utils.StorageIdUtils; -import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.LegalBasisEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.ReportTemplateEntity; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.*; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CloneDossierTemplateRequest; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CreateOrUpdateDossierTemplateRequest; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierAttributeConfig; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplate; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DossierTemplateStatus; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.FileAttributesGeneralConfiguration; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.WatermarkOrientation; @@ -26,20 +53,9 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ty import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.Type; import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadStatusValue; import com.iqser.red.storage.commons.service.StorageService; + import feign.FeignException; import lombok.SneakyThrows; -import org.junit.Test; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; - -import java.nio.charset.StandardCharsets; -import java.time.OffsetDateTime; -import java.util.*; -import java.util.stream.Collectors; - -import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert; -import static org.assertj.core.api.Assertions.as; -import static org.assertj.core.api.Assertions.assertThat; public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { @@ -88,19 +104,19 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { @Autowired private LegalBasisClient legalBasisClient; + @Test public void testDownload() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); // test the export of dossier template - dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder() - .userId("1") - .dossierTemplateId(dossierTemplate.getId()) - .build()); + dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder().userId("1").dossierTemplateId(dossierTemplate.getId()).build()); var statuses = downloadClient.getDownloadStatus("1"); assertThat(statuses).isNotEmpty(); } + @Test public void testDossierTemplate() { @@ -206,30 +222,34 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { var loadedType2 = dictionaryClient.getDictionaryForType(createdType2.getId(), null); dictionaryClient.addEntries(loadedType1.getTypeId(), List.of("entry1", "entry2"), false, false, DictionaryEntryType.ENTRY); dictionaryClient.addEntries(loadedType2.getTypeId(), List.of("entry3", "entry4"), false, false, DictionaryEntryType.FALSE_POSITIVE); - dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), List.of(DossierAttributeConfig.builder() - .dossierTemplateId(dossierTemplate.getId()) - .editable(false) - .id("dossierAttributeId") - .label("labelDossierAttribute") - .type(DossierAttributeType.TEXT) - .placeholder("placeholderDossier") - .build())); - fileAttributeConfigClient.setFileAttributesGeneralConfig(dossierTemplate.getId(), FileAttributesGeneralConfiguration.builder().dossierTemplateId(dossierTemplate.getId()) - .delimiter("") - .filenameMappingColumnHeaderName("filenameMappingColumnHeaderName") - .build()); - fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(), List.of(FileAttributeConfig.builder() - .dossierTemplateId(dossierTemplate.getId()) - .primaryAttribute(true) - .csvColumnHeader("12345") - .displayedInFileList(false) - .editable(false) - .filterable(false) - .id("fileAttributeId") - .label("labelFileAttribute") - .type(FileAttributeType.TEXT) - .placeholder("placeholderFile") - .build())); + dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), + List.of(DossierAttributeConfig.builder() + .dossierTemplateId(dossierTemplate.getId()) + .editable(false) + .id("dossierAttributeId") + .label("labelDossierAttribute") + .type(DossierAttributeType.TEXT) + .placeholder("placeholderDossier") + .build())); + fileAttributeConfigClient.setFileAttributesGeneralConfig(dossierTemplate.getId(), + FileAttributesGeneralConfiguration.builder() + .dossierTemplateId(dossierTemplate.getId()) + .delimiter("") + .filenameMappingColumnHeaderName("filenameMappingColumnHeaderName") + .build()); + fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(), + List.of(FileAttributeConfig.builder() + .dossierTemplateId(dossierTemplate.getId()) + .primaryAttribute(true) + .csvColumnHeader("12345") + .displayedInFileList(false) + .editable(false) + .filterable(false) + .id("fileAttributeId") + .label("labelFileAttribute") + .type(FileAttributeType.TEXT) + .placeholder("placeholderFile") + .build())); ReportTemplateEntity rte = ReportTemplateEntity.builder() .templateId("templateId") .dossierTemplate(convert(dossierTemplate, DossierTemplateEntity.class)) @@ -301,29 +321,28 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(loadedTemplate.getModifiedBy()).isEqualTo("user"); assertThat(loadedTemplate.getCreatedBy()).isEqualTo("user"); - assertThat(dossierAttributeConfigClient.getDossierAttributes(dossierTemplate.getId()) - .get(0) - .getLabel()).isEqualTo(dossierAttributeConfigClient.getDossierAttributes(clonedDT.getId()).get(0).getLabel()); + assertThat(dossierAttributeConfigClient.getDossierAttributes(dossierTemplate.getId()).get(0).getLabel()).isEqualTo(dossierAttributeConfigClient.getDossierAttributes( + clonedDT.getId()).get(0).getLabel()); assertThat(fileAttributeConfigClient.getFileAttributeConfigs(dossierTemplate.getId()) .get(0) .getCsvColumnHeader()).isEqualTo(fileAttributeConfigClient.getFileAttributeConfigs(clonedDT.getId()).get(0).getCsvColumnHeader()); assertThat(fileAttributeConfigClient.getFileAttributesGeneralConfig(dossierTemplate.getId()) .getFilenameMappingColumnHeaderName()).isEqualTo(fileAttributeConfigClient.getFileAttributesGeneralConfig(clonedDT.getId()).getFilenameMappingColumnHeaderName()); - assertThat(reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()) - .get(0) - .getFileName()).isEqualTo(reportTemplateClient.getAvailableReportTemplates(clonedDT.getId()).get(0).getFileName()); + assertThat(reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()).get(0).getFileName()).isEqualTo(reportTemplateClient.getAvailableReportTemplates( + clonedDT.getId()).get(0).getFileName()); assertThat(dictionaryClient.getColors(dossierTemplate.getId()).getRequestAddColor()).isEqualTo(dictionaryClient.getColors(clonedDT.getId()).getRequestAddColor()); - assertThat(dictionaryClient.getAllTypesForDossierTemplate(dossierTemplate.getId(), false) - .get(0) - .getRank()).isEqualTo(dictionaryClient.getAllTypesForDossierTemplate(clonedDT.getId(), false).get(0).getRank()); - assertThat(dossierStatusClient.getAllDossierStatuses(List.of(dossierTemplate.getId())) - .get(0) - .getDescription()).isEqualTo(dossierStatusClient.getAllDossierStatuses(List.of(clonedDT.getId())).get(0).getDescription()); + assertThat(dictionaryClient.getAllTypesForDossierTemplate(dossierTemplate.getId(), false).get(0).getRank()).isEqualTo(dictionaryClient.getAllTypesForDossierTemplate( + clonedDT.getId(), + false).get(0).getRank()); + assertThat(dossierStatusClient.getAllDossierStatuses(List.of(dossierTemplate.getId())).get(0).getDescription()).isEqualTo(dossierStatusClient.getAllDossierStatuses(List.of( + clonedDT.getId())).get(0).getDescription()); assertThat(watermarkClient.getWatermarksForDossierTemplateId(clonedDT.getId()).size()).isEqualTo(1); - assertThat(watermarkClient.getWatermarksForDossierTemplateId(dossierTemplate.getId()).get(0).getName()) - .isEqualTo(watermarkClient.getWatermarksForDossierTemplateId(clonedDT.getId()).get(0).getName()); + assertThat(watermarkClient.getWatermarksForDossierTemplateId(dossierTemplate.getId()) + .get(0) + .getName()).isEqualTo(watermarkClient.getWatermarksForDossierTemplateId(clonedDT.getId()).get(0).getName()); } + @SneakyThrows @Test public void testExportDossierTemplate() { @@ -331,14 +350,10 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); setupDossierTemplate(dossierTemplate); - dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder() - .userId("1") - .dossierTemplateId(dossierTemplate.getId()) - .build()); + dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder().userId("1").dossierTemplateId(dossierTemplate.getId()).build()); var statuses = downloadClient.getDownloadStatus("1"); assertThat(statuses).isNotEmpty(); - // var downloadJob = DownloadJob.builder() // .storageId(StorageIdUtils.getStorageId("1", dossierTemplate.getId())) // .userId("1").build(); @@ -351,19 +366,17 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(statuses.get(0).getStatus()).isEqualTo(DownloadStatusValue.READY); } + @SneakyThrows @Test public void testExportDossierTemplateWithFileAttributeGeneralConfigNotPresent() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); - dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder() - .userId("1") - .dossierTemplateId(dossierTemplate.getId()) - .build()); + dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder().userId("1").dossierTemplateId(dossierTemplate.getId()).build()); var statuses = downloadClient.getDownloadStatus("1"); assertThat(statuses).isNotEmpty(); - String storageId = StorageIdUtils.getStorageId("1", dossierTemplate.getId()); dossierTemplateClient.createExportDownload("1", storageId); @@ -372,9 +385,11 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(statuses.get(0).getStatus()).isEqualTo(DownloadStatusValue.READY); } + @SneakyThrows @Test public void testExportAndImportDossierTemplateWithJustificationsNotPresent() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); var existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); @@ -385,14 +400,10 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { existingLegalBasis = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(existingLegalBasis.isEmpty()).isTrue(); - dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder() - .userId("1") - .dossierTemplateId(dossierTemplate.getId()) - .build()); + dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder().userId("1").dossierTemplateId(dossierTemplate.getId()).build()); var statuses = downloadClient.getDownloadStatus("1"); assertThat(statuses).isNotEmpty(); - String storageId = StorageIdUtils.getStorageId("1", dossierTemplate.getId()); dossierTemplateClient.createExportDownload("1", storageId); @@ -417,16 +428,15 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(existingLegalBasis.isEmpty()).isTrue(); } + @Test @SneakyThrows public void testImportDossierTemplateUpdateExisting() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); setupDossierTemplate(dossierTemplate); // prepare an archive - dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder() - .userId("1") - .dossierTemplateId(dossierTemplate.getId()) - .build()); + dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder().userId("1").dossierTemplateId(dossierTemplate.getId()).build()); String storageId = StorageIdUtils.getStorageId("1", dossierTemplate.getId()); dossierTemplateClient.createExportDownload("1", storageId); @@ -470,16 +480,15 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { } + @Test @SneakyThrows public void testImportDossierTemplateNewTemplateWithNullDossierTemplateId() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); setupDossierTemplate(dossierTemplate); // prepare an archive - dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder() - .userId("1") - .dossierTemplateId(dossierTemplate.getId()) - .build()); + dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder().userId("1").dossierTemplateId(dossierTemplate.getId()).build()); String storageId = StorageIdUtils.getStorageId("1", dossierTemplate.getId()); dossierTemplateClient.createExportDownload("1", storageId); @@ -509,16 +518,15 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { } + @Test @SneakyThrows public void testImportDossierTemplateNewTemplate() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); setupDossierTemplate(dossierTemplate); // prepare an archive - dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder() - .userId("1") - .dossierTemplateId(dossierTemplate.getId()) - .build()); + dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder().userId("1").dossierTemplateId(dossierTemplate.getId()).build()); String storageId = StorageIdUtils.getStorageId("1", dossierTemplate.getId()); dossierTemplateClient.createExportDownload("1", storageId); @@ -548,16 +556,15 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { } + @Test @SneakyThrows public void testImportDossierTemplateUpdateTemplate() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); setupDossierTemplate(dossierTemplate); // prepare an archive - dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder() - .userId("1") - .dossierTemplateId(dossierTemplate.getId()) - .build()); + dossierTemplateClient.prepareExportDownload(ExportDownloadRequest.builder().userId("1").dossierTemplateId(dossierTemplate.getId()).build()); String storageId = StorageIdUtils.getStorageId("1", dossierTemplate.getId()); dossierTemplateClient.createExportDownload("1", storageId); @@ -588,7 +595,9 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { } + private void setupDossierTemplate(DossierTemplate dossierTemplate) { + Type type = Type.builder() .type("t") .dossierTemplateId(dossierTemplate.getId()) @@ -605,8 +614,20 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .dossierId(null) .version(23) .entries(List.of(DictionaryEntry.builder().entryId(1001).value("dictEntry1").version(23).deleted(false).typeId("t:" + dossierTemplate.getId()).build())) - .falsePositiveEntries(List.of(DictionaryEntry.builder().entryId(2001).value("dictEntry2").version(23).deleted(false).typeId("t:" + dossierTemplate.getId()).build())) - .falseRecommendationEntries(List.of(DictionaryEntry.builder().entryId(3001).value("dictEntry3").version(23).deleted(false).typeId("t:" + dossierTemplate.getId()).build())) + .falsePositiveEntries(List.of(DictionaryEntry.builder() + .entryId(2001) + .value("dictEntry2") + .version(23) + .deleted(false) + .typeId("t:" + dossierTemplate.getId()) + .build())) + .falseRecommendationEntries(List.of(DictionaryEntry.builder() + .entryId(3001) + .value("dictEntry3") + .version(23) + .deleted(false) + .typeId("t:" + dossierTemplate.getId()) + .build())) .hasDictionary(true) .systemManaged(false) .build(); @@ -626,8 +647,20 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { .dossierId(null) .version(23) .entries(List.of(DictionaryEntry.builder().entryId(1011).value("dictEntry1").version(23).deleted(false).typeId("t2:" + dossierTemplate.getId()).build())) - .falsePositiveEntries(List.of(DictionaryEntry.builder().entryId(2011).value("dictEntry2").version(23).deleted(false).typeId("t2:" + dossierTemplate.getId()).build())) - .falseRecommendationEntries(List.of(DictionaryEntry.builder().entryId(3011).value("dictEntry3").version(23).deleted(false).typeId("t2:" + dossierTemplate.getId()).build())) + .falsePositiveEntries(List.of(DictionaryEntry.builder() + .entryId(2011) + .value("dictEntry2") + .version(23) + .deleted(false) + .typeId("t2:" + dossierTemplate.getId()) + .build())) + .falseRecommendationEntries(List.of(DictionaryEntry.builder() + .entryId(3011) + .value("dictEntry3") + .version(23) + .deleted(false) + .typeId("t2:" + dossierTemplate.getId()) + .build())) .hasDictionary(true) .systemManaged(false) .build(); @@ -637,30 +670,34 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { var loadedType2 = dictionaryClient.getDictionaryForType(createdType2.getId(), null); dictionaryClient.addEntries(loadedType1.getTypeId(), List.of("entry1", "entry2"), false, false, DictionaryEntryType.ENTRY); dictionaryClient.addEntries(loadedType2.getTypeId(), List.of("entry3", "entry4"), false, false, DictionaryEntryType.FALSE_POSITIVE); - dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), List.of(DossierAttributeConfig.builder() - .dossierTemplateId(dossierTemplate.getId()) - .editable(false) - .id("dossierAttributeId") - .label("labelDossierAttribute") - .type(DossierAttributeType.TEXT) - .placeholder("placeholderDossier") - .build())); - fileAttributeConfigClient.setFileAttributesGeneralConfig(dossierTemplate.getId(), FileAttributesGeneralConfiguration.builder().dossierTemplateId(dossierTemplate.getId()) - .delimiter("") - .filenameMappingColumnHeaderName("filenameMappingColumnHeaderName") - .build()); - fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(), List.of(FileAttributeConfig.builder() - .dossierTemplateId(dossierTemplate.getId()) - .primaryAttribute(true) - .csvColumnHeader("12345") - .displayedInFileList(false) - .editable(false) - .filterable(false) - .id("fileAttributeId") - .label("labelFileAttribute") - .type(FileAttributeType.TEXT) - .placeholder("placeholderFile") - .build())); + dossierAttributeConfigClient.setDossierAttributesConfig(dossierTemplate.getId(), + List.of(DossierAttributeConfig.builder() + .dossierTemplateId(dossierTemplate.getId()) + .editable(false) + .id("dossierAttributeId") + .label("labelDossierAttribute") + .type(DossierAttributeType.TEXT) + .placeholder("placeholderDossier") + .build())); + fileAttributeConfigClient.setFileAttributesGeneralConfig(dossierTemplate.getId(), + FileAttributesGeneralConfiguration.builder() + .dossierTemplateId(dossierTemplate.getId()) + .delimiter("") + .filenameMappingColumnHeaderName("filenameMappingColumnHeaderName") + .build()); + fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(), + List.of(FileAttributeConfig.builder() + .dossierTemplateId(dossierTemplate.getId()) + .primaryAttribute(true) + .csvColumnHeader("12345") + .displayedInFileList(false) + .editable(false) + .filterable(false) + .id("fileAttributeId") + .label("labelFileAttribute") + .type(FileAttributeType.TEXT) + .placeholder("placeholderFile") + .build())); reportTemplateClient.uploadTemplate(ReportTemplateUploadRequest.builder() .template("some text".getBytes(StandardCharsets.UTF_8)) .dossierTemplateId(dossierTemplate.getId()) @@ -704,4 +741,5 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { watermarkClient.createOrUpdateWatermark(watermark); } + } 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 a5ccdf2e5..819a0342a 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 @@ -7,9 +7,6 @@ import java.time.OffsetDateTime; import java.util.List; import java.util.Set; -import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkClient; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.WatermarkOrientation; import org.junit.Test; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -18,12 +15,15 @@ import com.google.common.collect.Sets; import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierStatusClient; import com.iqser.red.service.peristence.v1.server.integration.client.ReportTemplateClient; +import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplate; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.WatermarkOrientation; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier; @@ -50,6 +50,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { @Autowired private WatermarkClient watermarkClient; + @Test public void testDossier() { @@ -96,7 +97,7 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { cru.setDossierStatusId(loadedDossierStatus.getId()); try { - dossierClient.updateDossier(cru, dossier.getId()); + dossierClient.updateDossier(cru, dossier.getId()); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } @@ -137,7 +138,6 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { updated = dossierClient.updateDossier(cru, dossier.getId()); assertThat(updated.getDossierStatusId()).isNull(); - var loadedTemplate = dossierClient.getDossierById(updated.getId(), false, false); assertThat(loadedTemplate).isEqualTo(updated); @@ -153,7 +153,6 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(dossierClient.getAllDossiers(false, false)).isNotEmpty(); assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty(); - dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId())); assertThat(dossierClient.getAllDossiers(false, false)).isEmpty(); assertThat(dossierClient.getAllDossiers(true, false)).isEmpty(); @@ -163,7 +162,6 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThatThrownBy(() -> dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()))).isInstanceOf(FeignException.class); - var dossierInformation = dossierClient.getDossierInformation(List.of()); assertThat(dossierInformation.getNumberOfActiveDossiers()).isEqualTo(0); assertThat(dossierInformation.getNumberOfSoftDeletedDossiers()).isEqualTo(0); @@ -283,7 +281,6 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { @Test public void testDossierWithReportTemplates() { - var dossier = dossierTesterAndProvider.provideTestDossier(); Watermark watermark = new Watermark(); watermark.setName("watermark name"); @@ -386,7 +383,6 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(loadedTemplate.getReportTemplateIds().size()).isEqualTo(1); assertThat(loadedTemplate.getReportTemplateIds()).contains(availableTemplates.get(0).getTemplateId()); - // Remove dossier dossierClient.getAllDossiers(false, false).forEach(ld -> dossierClient.delete(ld.getId())); dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId())); @@ -406,7 +402,6 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { var nonDeletedDossiers = dossierClient.getAllDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(1); - dossierClient.archiveDossiers(Set.of(dossier1.getId())); nonDeletedDossiers = dossierClient.getAllDossiers(true, false); assertThat(nonDeletedDossiers).hasSize(1); @@ -442,7 +437,6 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { dossierClient.delete(hardDeletedDossier.getId()); dossierClient.hardDeleteDossiers(Set.of(hardDeletedDossier.getId())); - // check get all dossiers with inclusions assertThat(dossierClient.getAllDossiers(true, true)).hasSize(4); //all without harddeleted assertThat(dossierClient.getAllDossiers(true, false)).hasSize(2); //regular and onlyarchived @@ -482,4 +476,5 @@ public class DossierTest extends AbstractPersistenceServerServiceTest { assertThat(availableTemplates.size()).isEqualTo(3); return availableTemplates; } + } 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 47a302d60..a1ab54613 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 @@ -42,7 +42,7 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes @Autowired private DossierTesterAndProvider dossierTesterAndProvider; - + @Autowired private DownloadClient downloadClient; @@ -58,6 +58,7 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes @Autowired private FileClient fileClient; + @Test @SneakyThrows public void testReceiveDownloadPackage() { @@ -77,12 +78,12 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes .dossierTemplateId(dossierTemplate.getId()) .multiFileReport(true) .fileName("test.docx") - .template(new byte[]{1, 2, 3, 4}).build()); + .template(new byte[]{1, 2, 3, 4}) + .build()); var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - dossierClient.updateDossier(CreateOrUpdateDossierRequest.builder() .dossierName(dossier.getDossierName()) .description(dossier.getDescription()) @@ -96,20 +97,15 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes .reportTemplateIds(availableTemplates.stream().map(a -> a.getTemplateId()).collect(Collectors.toList())) .build(), dossier.getId()); - var updatedDossier = dossierClient.getDossierById(dossier.getId(),false, false); + var updatedDossier = dossierClient.getDossierById(dossier.getId(), false, false); assertThat(updatedDossier.getReportTemplateIds()).isNotEmpty(); - downloadClient.prepareDownload(DownloadRequest.builder() - .userId("1") - .dossierId(dossier.getId()) - .fileIds(Collections.singletonList(file.getId())) - .build()); + downloadClient.prepareDownload(DownloadRequest.builder().userId("1").dossierId(dossier.getId()).fileIds(Collections.singletonList(file.getId())).build()); var statuses = downloadClient.getDownloadStatus("1"); assertThat(statuses).isNotEmpty(); assertThat(statuses.iterator().next().getLastDownload()).isNull(); - ArrayList sivList = new ArrayList<>(); var siv = new StoredFileInformation(); @@ -119,11 +115,11 @@ public class DownloadPreparationTest extends AbstractPersistenceServerServiceTes sivList.add(siv); storageService.storeObject("XYZ", new ByteArrayInputStream(new byte[]{1, 2, 3, 4})); - ReportResultMessage reportResultMessage = new ReportResultMessage(); reportResultMessage.setUserId("1"); reportResultMessage.setDownloadId(statuses.iterator().next().getStorageId()); downloadReportMessageReceiver.receive(reportResultMessage); } + } 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 ab41781f2..aee84f4a1 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 @@ -1,22 +1,22 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.List; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.DownloadClient; import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; -import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; import com.iqser.red.service.persistence.service.v1.api.model.download.DownloadRequest; + import feign.FeignException; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.Collections; -import java.util.List; - -import static org.assertj.core.api.Assertions.assertThat; public class DownloadTest extends AbstractPersistenceServerServiceTest { @@ -32,8 +32,10 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { @Autowired private FileClient fileClient; + @Test public void testDownload() { + var dossier = dossierTesterAndProvider.provideTestDossier(); var file = fileTesterAndProvider.testAndProvideFile(dossier); @@ -44,37 +46,26 @@ public class DownloadTest extends AbstractPersistenceServerServiceTest { assertThat(file22.getWorkflowStatus()).isEqualTo(WorkflowStatus.APPROVED); try { - downloadClient.prepareDownload(DownloadRequest.builder() - .userId("1") - .dossierId(dossier.getId()) - .fileIds(List.of(file.getId(), file2.getId())) - .build()); - } catch(FeignException e) { + downloadClient.prepareDownload(DownloadRequest.builder().userId("1").dossierId(dossier.getId()).fileIds(List.of(file.getId(), file2.getId())).build()); + } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } - downloadClient.prepareDownload(DownloadRequest.builder() - .userId("1") - .dossierId(dossier.getId()) - .fileIds(List.of(file2.getId())) - .build()); + downloadClient.prepareDownload(DownloadRequest.builder().userId("1").dossierId(dossier.getId()).fileIds(List.of(file2.getId())).build()); var statuses = downloadClient.getDownloadStatus("1"); assertThat(statuses).isNotEmpty(); assertThat(statuses.iterator().next().getLastDownload()).isNull(); - downloadClient.setDownloaded(JSONPrimitive.of(statuses.iterator().next().getStorageId())); statuses = downloadClient.getDownloadStatus("1"); assertThat(statuses).isNotEmpty(); assertThat(statuses.iterator().next().getLastDownload()).isNotNull(); - downloadClient.deleteDownloadStatus(JSONPrimitive.of(statuses.iterator().next().getStorageId())); statuses = downloadClient.getDownloadStatus("1"); assertThat(statuses).isEmpty(); - } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EncryptSMTPPasswordsMigrationTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EncryptSMTPPasswordsMigrationTest.java index b68f0a3ea..902b69846 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EncryptSMTPPasswordsMigrationTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/EncryptSMTPPasswordsMigrationTest.java @@ -1,15 +1,16 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.peristence.v1.server.migration.migrations.EncryptSMTPPasswordsMigration11; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.SMTPConfigurationEntity; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.MigrationPersistenceService; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.SMTPRepository; import com.iqser.red.service.persistence.management.v1.processor.utils.multitenancy.TenantContext; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; public class EncryptSMTPPasswordsMigrationTest extends AbstractPersistenceServerServiceTest { @@ -21,8 +22,10 @@ public class EncryptSMTPPasswordsMigrationTest extends AbstractPersistenceServer @Autowired private MigrationPersistenceService migrationPersistenceService; + @Test public void testMigration() { + TenantContext.setTenantId("redaction"); migrationPersistenceService.insertMigration("test", 10); smtpRepository.save(SMTPConfigurationEntity.builder().password("asd").build()); 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 7db997a8a..450576fa3 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 @@ -68,27 +68,11 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { 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()); - FileAttributeConfig attributeB = FileAttributeConfig.builder() - .csvColumnHeader("Attribute B") - .primaryAttribute(true) - .label("Attribute B") - .build(); + configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(true).label("Attribute A").build()); + FileAttributeConfig attributeB = FileAttributeConfig.builder().csvColumnHeader("Attribute B").primaryAttribute(true).label("Attribute B").build(); configs.add(attributeB); - 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()); + 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(), configs); @@ -129,15 +113,13 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), Map.of(updated.getId(), "Lorem Ipsum")); - Map fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()) - .getFileAttributes(); + Map fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes(); assertThat(fileAttributes.size()).isEqualTo(1); assertThat(fileAttributes.entrySet().iterator().next().getValue()).isEqualTo("Lorem Ipsum"); fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), Map.of(updated.getId(), " ")); - fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()) - .getFileAttributes(); + fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes(); assertThat(fileAttributes.size()).isEqualTo(1); assertThat(fileAttributes.entrySet().iterator().next().getValue()).isNull(); @@ -145,8 +127,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { fileAttributesWithNullValue.put(updated.getId(), null); fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), fileAttributesWithNullValue); - fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()) - .getFileAttributes(); + fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes(); assertThat(fileAttributes.size()).isEqualTo(1); assertThat(fileAttributes.entrySet().iterator().next().getValue()).isNull(); @@ -192,37 +173,19 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { List configs = new ArrayList<>(); configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name").build()); - configs.add(FileAttributeConfig.builder() - .csvColumnHeader("Attribute A") - .primaryAttribute(false) - .label("Attribute A") - .build()); - configs.add(FileAttributeConfig.builder() - .csvColumnHeader("Attribute B") - .primaryAttribute(false) - .label("Attribute B") - .build()); - 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()); + configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(false).label("Attribute A").build()); + configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute B").primaryAttribute(false).label("Attribute B").build()); + 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(), configs); List loadedConfigs = fileAttributeConfigClient.getFileAttributeConfigs(dossier.getDossierTemplateId()); assertThat(loadedConfigs.size()).isEqualTo(5); - fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), Map.of(loadedConfigs.get(0) - .getId(), "Lorem Ipsum")); + fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), Map.of(loadedConfigs.get(0).getId(), "Lorem Ipsum")); - Map fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()) - .getFileAttributes(); + Map fileAttributes = fileClient.getFileStatus(dossier.getId(), file.getId()).getFileAttributes(); assertThat(fileAttributes.size()).isEqualTo(1); assertThat(fileAttributes.entrySet().iterator().next().getValue()).isEqualTo("Lorem Ipsum"); 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 82d43fb66..26fb88225 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 @@ -2,6 +2,8 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.assertj.core.api.Assertions.assertThat; +import java.util.List; + import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -17,8 +19,6 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do import com.iqser.red.service.redaction.v1.model.AnalyzeResult; import com.iqser.red.service.redaction.v1.model.MessageType; -import java.util.List; - public class FileProcessingTest extends AbstractPersistenceServerServiceTest { @Autowired @@ -50,13 +50,15 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.ERROR); - fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), AnalyzeResult.builder() - .manualRedactions(new ManualRedactions()) - .messageType(MessageType.ANALYSE) - .analysisVersion(100) - .fileId(file.getId()) - .dossierId(dossier.getId()) - .build()); + fileProcessingClient.analysisSuccessful(dossier.getId(), + file.getId(), + AnalyzeResult.builder() + .manualRedactions(new ManualRedactions()) + .messageType(MessageType.ANALYSE) + .analysisVersion(100) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.NEW); assertThat(loadedFile.getAnalysisVersion()).isEqualTo(100); @@ -100,13 +102,15 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.ERROR); - fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), AnalyzeResult.builder() - .manualRedactions(new ManualRedactions()) - .messageType(MessageType.ANALYSE) - .analysisVersion(100) - .fileId(file.getId()) - .dossierId(dossier.getId()) - .build()); + fileProcessingClient.analysisSuccessful(dossier.getId(), + file.getId(), + AnalyzeResult.builder() + .manualRedactions(new ManualRedactions()) + .messageType(MessageType.ANALYSE) + .analysisVersion(100) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getWorkflowStatus()).isEqualTo(WorkflowStatus.NEW); assertThat(loadedFile.getAnalysisVersion()).isEqualTo(100); @@ -142,17 +146,20 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { @Test public void testFileReanlyseAfterToggleExclusion() { + var dossier = dossierTesterAndProvider.provideTestDossier(); var file = fileTesterAndProvider.testAndProvideFile(dossier); - fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), AnalyzeResult.builder() - .manualRedactions(new ManualRedactions()) - .messageType(MessageType.ANALYSE) - .analysisVersion(100) - .fileId(file.getId()) - .dossierId(dossier.getId()) - .build()); + fileProcessingClient.analysisSuccessful(dossier.getId(), + file.getId(), + AnalyzeResult.builder() + .manualRedactions(new ManualRedactions()) + .messageType(MessageType.ANALYSE) + .analysisVersion(100) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.PROCESSED); @@ -169,17 +176,20 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { @Test public void testGetSoftDeletedForDossierList() { + var dossier = dossierTesterAndProvider.provideTestDossier(); var file = fileTesterAndProvider.testAndProvideFile(dossier); - fileProcessingClient.analysisSuccessful(dossier.getId(), file.getId(), AnalyzeResult.builder() - .manualRedactions(new ManualRedactions()) - .messageType(MessageType.ANALYSE) - .analysisVersion(100) - .fileId(file.getId()) - .dossierId(dossier.getId()) - .build()); + fileProcessingClient.analysisSuccessful(dossier.getId(), + file.getId(), + AnalyzeResult.builder() + .manualRedactions(new ManualRedactions()) + .messageType(MessageType.ANALYSE) + .analysisVersion(100) + .fileId(file.getId()) + .dossierId(dossier.getId()) + .build()); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.PROCESSED); @@ -192,4 +202,5 @@ public class FileProcessingTest extends AbstractPersistenceServerServiceTest { assertThat(fileList.size()).isEqualTo(1); } + } 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 aadcdf8ba..f7208e4ae 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 @@ -122,11 +122,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { 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()); + configs.add(FileAttributeConfig.builder().csvColumnHeader("Attribute A").primaryAttribute(true).label("Attribute A").build()); List loadedConfig = fileAttributeConfigClient.setFileAttributesConfig(dossier.getDossierTemplateId(), configs); fileAttributeClient.setFileAttributes(dossier.getId(), file.getId(), Map.of(loadedConfig.get(0).getId(), "123")); @@ -140,8 +136,6 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(viewedPages.size()).isEqualTo(1); - - AddFileRequest upload = new AddFileRequest(filename, file.getId(), dossier.getId(), "1"); JSONPrimitive uploadResult = uploadClient.upload(upload, false); @@ -334,45 +328,55 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); - var addRedaction = manualRedactionClient.addAddRedaction(dossierId, fileId, Collections.singletonList(AddRedactionRequest.builder() - .addToDictionary(true) - .addToDossierDictionary(false) - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .typeId(typeId) - .user("user") - .reason("1") - .value("test") - .legalBasis("1") - .build())).iterator().next(); - var removeRedaction = manualRedactionClient.addRemoveRedaction(dossierId, fileId, List.of(RemoveRedactionRequest.builder() - .annotationId(addRedaction.getAnnotationId()) - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .user("test") - .removeFromDictionary(false) - .build())).get(0); - var forceRedaction = manualRedactionClient.addForceRedaction(dossierId, fileId, List.of(ForceRedactionRequest.builder() - .annotationId("forceRedactionAnnotation") - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .user("test") - .legalBasis("1") - .build())).get(0); - var legalBasisChange = manualRedactionClient.addLegalBasisChange(dossierId, fileId, List.of(LegalBasisChangeRequest.builder() - .annotationId("legalBasisChangeAnnotation") - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .user("test") - .legalBasis("1") - .build())).get(0); - var imageRecategorization = manualRedactionClient.addImageRecategorization(dossierId, fileId, List.of(ImageRecategorizationRequest.builder() - .annotationId("imageRecategorizationAnnotation") - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .user("test") - .typeId("new-type:id") - .build())).get(0); + var addRedaction = manualRedactionClient.addAddRedaction(dossierId, + fileId, + Collections.singletonList(AddRedactionRequest.builder() + .addToDictionary(true) + .addToDossierDictionary(false) + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .typeId(typeId) + .user("user") + .reason("1") + .value("test") + .legalBasis("1") + .build())).iterator().next(); + var removeRedaction = manualRedactionClient.addRemoveRedaction(dossierId, + fileId, + List.of(RemoveRedactionRequest.builder() + .annotationId(addRedaction.getAnnotationId()) + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .user("test") + .removeFromDictionary(false) + .build())).get(0); + var forceRedaction = manualRedactionClient.addForceRedaction(dossierId, + fileId, + List.of(ForceRedactionRequest.builder() + .annotationId("forceRedactionAnnotation") + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .user("test") + .legalBasis("1") + .build())).get(0); + var legalBasisChange = manualRedactionClient.addLegalBasisChange(dossierId, + fileId, + List.of(LegalBasisChangeRequest.builder() + .annotationId("legalBasisChangeAnnotation") + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .user("test") + .legalBasis("1") + .build())).get(0); + var imageRecategorization = manualRedactionClient.addImageRecategorization(dossierId, + fileId, + List.of(ImageRecategorizationRequest.builder() + .annotationId("imageRecategorizationAnnotation") + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .user("test") + .typeId("new-type:id") + .build())).get(0); var loadedFile = fileClient.getFileStatus(dossierId, fileId); @@ -420,17 +424,19 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(fileClient.getDossierStatus(dossier.getId()).size()).isEqualTo(1); - var addRedaction = manualRedactionClient.addAddRedaction(dossierId, fileId, Collections.singletonList(AddRedactionRequest.builder() - .addToDictionary(true) - .addToDossierDictionary(false) - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .typeId(typeId) - .user("user") - .reason("1") - .value("test") - .legalBasis("1") - .build())).iterator().next(); + var addRedaction = manualRedactionClient.addAddRedaction(dossierId, + fileId, + Collections.singletonList(AddRedactionRequest.builder() + .addToDictionary(true) + .addToDossierDictionary(false) + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .typeId(typeId) + .user("user") + .reason("1") + .value("test") + .legalBasis("1") + .build())).iterator().next(); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); @@ -491,6 +497,7 @@ public class FileTest extends AbstractPersistenceServerServiceTest { } + @Test public void testFile4424() { @@ -538,4 +545,5 @@ public class FileTest extends AbstractPersistenceServerServiceTest { assertThat(loadedFile.getLastApprover()).isEqualTo("2"); } + } 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 75415dc85..599043b38 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 @@ -1,18 +1,20 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.ArrayList; +import java.util.stream.Collectors; + +import org.assertj.core.util.Lists; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.LegalBasisClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.legalbasis.LegalBasis; + import feign.FeignException; -import org.assertj.core.util.Lists; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.ArrayList; -import java.util.stream.Collectors; - -import static org.assertj.core.api.Assertions.assertThat; public class LegalBasisTest extends AbstractPersistenceServerServiceTest { @@ -22,6 +24,7 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest { @Autowired private LegalBasisClient legalBasisClient; + @Test public void testLegalBasis() { @@ -35,28 +38,23 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest { assertThat(e.status()).isEqualTo(404); } - 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(dossierTemplate.getId(), mappings); assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(3); - 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); - 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); @@ -64,15 +62,14 @@ public class LegalBasisTest extends AbstractPersistenceServerServiceTest { 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")); mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId()); assertThat(mapping.size()).isEqualTo(2); - legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), Lists.newArrayList()); assertThat(legalBasisClient.getLegalBasisMapping(dossierTemplate.getId())).isEmpty(); assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(7); } + } 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 dd5042be5..1fb0cc684 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 @@ -35,6 +35,7 @@ public class LicenseReportTest extends AbstractPersistenceServerServiceTest { @Autowired private DossierTesterAndProvider dossierTesterAndProvider; + @Test public void testLicenseReport() { 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 19dd4a02c..d71ee28f1 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 @@ -3,7 +3,6 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.when; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -91,22 +90,24 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { var type = typeProvider.testAndProvideType(dossierTemplate, null, "manual"); - var addRedaction = manualRedactionClient.addAddRedaction(dossier.getId(), file.getId(), Collections.singletonList(AddRedactionRequest.builder() - .positions(List.of(Rectangle.builder().topLeftY(1).topLeftX(1).height(1).width(1).build())) - .section("section test") - .addToDictionary(false) - .addToDossierDictionary(false) - .status(AnnotationStatus.REQUESTED) - .typeId(type.getId()) - .user("user") - .reason("1") - .value("test") - .legalBasis("1") - .rectangle(true) - .textAfter("Text After") - .textBefore("Text Before") - .sourceId("SourceId") - .build())).iterator().next(); + var addRedaction = manualRedactionClient.addAddRedaction(dossier.getId(), + file.getId(), + Collections.singletonList(AddRedactionRequest.builder() + .positions(List.of(Rectangle.builder().topLeftY(1).topLeftX(1).height(1).width(1).build())) + .section("section test") + .addToDictionary(false) + .addToDossierDictionary(false) + .status(AnnotationStatus.REQUESTED) + .typeId(type.getId()) + .user("user") + .reason("1") + .value("test") + .legalBasis("1") + .rectangle(true) + .textAfter("Text After") + .textBefore("Text Before") + .sourceId("SourceId") + .build())).iterator().next(); var loadedAddRedaction = manualRedactionClient.getAddRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedAddRedaction.isRectangle()).isEqualTo(true); @@ -140,10 +141,9 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { entry.setManualChanges(changeList); when(redactionClient.getRedactionLog(Mockito.any())).thenReturn(new RedactionLog(1, 1, List.of(entry), null, 0, 0, 0, 0)); - manualRedactionClient.updateAddRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(addRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.DECLINED) - .build()); + manualRedactionClient.updateAddRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(addRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.DECLINED).build()); loadedAddRedaction = manualRedactionClient.getAddRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedAddRedaction.getStatus()).isEqualTo(AnnotationStatus.DECLINED); @@ -170,26 +170,28 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { // assume file is already proccessed once, test that add to dict triggers reanalysis fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.TEXT, "{}"); - fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.NER_ENTITIES, "{}"); - fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.IMAGE_INFO, "{}"); + fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.NER_ENTITIES, "{}"); + fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.IMAGE_INFO, "{}"); fileStatusPersistenceService.updateProcessingStatus(file.getId(), ProcessingStatus.PROCESSED); - var addRedaction = manualRedactionClient.addAddRedaction(dossier.getId(), file.getId(), Collections.singletonList(AddRedactionRequest.builder() - .positions(List.of(Rectangle.builder().topLeftY(1).topLeftX(1).height(1).width(1).build())) - .section("section test") - .addToDictionary(true) - .addToDossierDictionary(false) - .status(AnnotationStatus.APPROVED) - .typeId(type.getId()) - .user("user") - .reason("1") - .value("test") - .legalBasis("1") - .rectangle(true) - .textAfter("Text After") - .textBefore("Text Before") - .sourceId("SourceId") - .build())).iterator().next(); + var addRedaction = manualRedactionClient.addAddRedaction(dossier.getId(), + file.getId(), + Collections.singletonList(AddRedactionRequest.builder() + .positions(List.of(Rectangle.builder().topLeftY(1).topLeftX(1).height(1).width(1).build())) + .section("section test") + .addToDictionary(true) + .addToDossierDictionary(false) + .status(AnnotationStatus.APPROVED) + .typeId(type.getId()) + .user("user") + .reason("1") + .value("test") + .legalBasis("1") + .rectangle(true) + .textAfter("Text After") + .textBefore("Text Before") + .sourceId("SourceId") + .build())).iterator().next(); var loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.PROCESSING); @@ -213,42 +215,46 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertThat(loadedComment.getText()).isEqualTo("test"); try { - manualRedactionClient.addAddRedaction(dossier.getId(), file.getId(), Collections.singletonList(AddRedactionRequest.builder() - .positions(List.of(Rectangle.builder().page(100).topLeftY(1).topLeftX(1).height(1).width(1).build())) - .section("section test") - .addToDictionary(true) - .addToDossierDictionary(false) - .status(AnnotationStatus.REQUESTED) - .typeId(type.getId()) - .user("user") - .reason("1") - .value("test") - .legalBasis("1") - .rectangle(true) - .textAfter("Text After") - .textBefore("Text Before") - .sourceId("SourceId") - .build())); + manualRedactionClient.addAddRedaction(dossier.getId(), + file.getId(), + Collections.singletonList(AddRedactionRequest.builder() + .positions(List.of(Rectangle.builder().page(100).topLeftY(1).topLeftX(1).height(1).width(1).build())) + .section("section test") + .addToDictionary(true) + .addToDossierDictionary(false) + .status(AnnotationStatus.REQUESTED) + .typeId(type.getId()) + .user("user") + .reason("1") + .value("test") + .legalBasis("1") + .rectangle(true) + .textAfter("Text After") + .textBefore("Text Before") + .sourceId("SourceId") + .build())); } catch (FeignException e) { assertThat(e.status()).isEqualTo(400); } - var addRedaction = manualRedactionClient.addAddRedaction(dossier.getId(), file.getId(), Collections.singletonList(AddRedactionRequest.builder() - .positions(List.of(Rectangle.builder().topLeftY(1).topLeftX(1).height(1).width(1).build())) - .section("section test") - .addToDictionary(true) - .addToDossierDictionary(false) - .status(AnnotationStatus.REQUESTED) - .typeId(type.getId()) - .user("user") - .reason("1") - .value("test") - .legalBasis("1") - .rectangle(true) - .textAfter("Text After") - .textBefore("Text Before") - .sourceId("SourceId") - .build())).iterator().next(); + var addRedaction = manualRedactionClient.addAddRedaction(dossier.getId(), + file.getId(), + Collections.singletonList(AddRedactionRequest.builder() + .positions(List.of(Rectangle.builder().topLeftY(1).topLeftX(1).height(1).width(1).build())) + .section("section test") + .addToDictionary(true) + .addToDossierDictionary(false) + .status(AnnotationStatus.REQUESTED) + .typeId(type.getId()) + .user("user") + .reason("1") + .value("test") + .legalBasis("1") + .rectangle(true) + .textAfter("Text After") + .textBefore("Text Before") + .sourceId("SourceId") + .build())).iterator().next(); var loadedAddRedaction = manualRedactionClient.getAddRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedAddRedaction.getUser()).isEqualTo("user"); assertThat(loadedAddRedaction.getType()).contains("manual"); @@ -258,78 +264,79 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertThat(loadedAddRedaction.getTextBefore()).isEqualTo("Text Before"); assertThat(loadedAddRedaction.getSourceId()).isEqualTo("SourceId"); - manualRedactionClient.updateAddRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(addRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.APPROVED) - .build()); + manualRedactionClient.updateAddRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(addRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.APPROVED).build()); loadedAddRedaction = manualRedactionClient.getAddRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedAddRedaction.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateAddRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(addRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.DECLINED) - .build()); + manualRedactionClient.updateAddRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(addRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.DECLINED).build()); loadedAddRedaction = manualRedactionClient.getAddRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedAddRedaction.getStatus()).isEqualTo(AnnotationStatus.DECLINED); - var addRedaction2 = manualRedactionClient.addAddRedaction(dossier.getId(), file.getId(), Collections.singletonList(AddRedactionRequest.builder() - .addToDictionary(true) - .addToDossierDictionary(false) - .status(AnnotationStatus.APPROVED) - .typeId(type.getId()) - .user("user") - .reason("1") - .value("test") - .legalBasis("1") - .comment("comment") - .section("section2") - .build())).iterator().next(); + var addRedaction2 = manualRedactionClient.addAddRedaction(dossier.getId(), + file.getId(), + Collections.singletonList(AddRedactionRequest.builder() + .addToDictionary(true) + .addToDossierDictionary(false) + .status(AnnotationStatus.APPROVED) + .typeId(type.getId()) + .user("user") + .reason("1") + .value("test") + .legalBasis("1") + .comment("comment") + .section("section2") + .build())).iterator().next(); - manualRedactionClient.updateAddRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(addRedaction2.getAnnotationId())) - .annotationStatus(AnnotationStatus.REQUESTED) - .build()); + manualRedactionClient.updateAddRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(addRedaction2.getAnnotationId())).annotationStatus(AnnotationStatus.REQUESTED).build()); var loadedAddRedaction2 = manualRedactionClient.getAddRedaction(file.getId(), addRedaction2.getAnnotationId()); assertThat(loadedAddRedaction2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); assertThat(loadedAddRedaction2.isAddToDossierDictionary()).isEqualTo(false); assertThat(loadedAddRedaction2.isAddToDictionary()).isEqualTo(true); assertThat(loadedAddRedaction2.getSection()).contains("section2"); - var removeRedaction = manualRedactionClient.addRemoveRedaction(dossier.getId(), file.getId(), List.of(RemoveRedactionRequest.builder() - .annotationId(addRedaction.getAnnotationId()) - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .user("test") - .removeFromDictionary(false) - .build())).get(0); + var removeRedaction = manualRedactionClient.addRemoveRedaction(dossier.getId(), + file.getId(), + List.of(RemoveRedactionRequest.builder() + .annotationId(addRedaction.getAnnotationId()) + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .user("test") + .removeFromDictionary(false) + .build())).get(0); - var redactionLog = new RedactionLog(1, 1, List.of(RedactionLogEntry.builder() - .id(addRedaction.getAnnotationId()) - .type("manual") - .value("value entry") - .build()), null, 0, 0, 0, 0); + var redactionLog = new RedactionLog(1, + 1, + List.of(RedactionLogEntry.builder().id(addRedaction.getAnnotationId()).type("manual").value("value entry").build()), + null, + 0, + 0, + 0, + 0); fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.REDACTION_LOG, redactionLog); when(redactionClient.getRedactionLog(Mockito.any())).thenReturn(redactionLog); - manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(removeRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.REQUESTED) - .build()); + manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(removeRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.REQUESTED).build()); var loadedRemoveRedaction = manualRedactionClient.getRemoveRedaction(file.getId(), removeRedaction.getAnnotationId()); assertThat(loadedRemoveRedaction.isRemoveFromDictionary()).isEqualTo(false); assertThat(loadedRemoveRedaction.getSoftDeletedTime()).isNull(); - manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(removeRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.APPROVED) - .build()); + manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(removeRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.APPROVED).build()); loadedRemoveRedaction = manualRedactionClient.getRemoveRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedRemoveRedaction.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(removeRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.DECLINED) - .build()); + manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(removeRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.DECLINED).build()); loadedRemoveRedaction = manualRedactionClient.getRemoveRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedRemoveRedaction.getStatus()).isEqualTo(AnnotationStatus.DECLINED); @@ -337,141 +344,143 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { fileManagementStorageService.storeJSONObject(dossier.getId(), file.getId(), FileType.REDACTION_LOG, redLog); when(redactionClient.getRedactionLog(Mockito.any())).thenReturn(redLog); - var removeRedaction2 = manualRedactionClient.addRemoveRedaction(dossier.getId(), file.getId(), List.of(RemoveRedactionRequest.builder() - .annotationId("annotationId") - .comment("comment") - .status(AnnotationStatus.APPROVED) - .user("test") - .removeFromDictionary(true) - .build())).get(0); - manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(removeRedaction2.getAnnotationId())) - .annotationStatus(AnnotationStatus.REQUESTED) - .build()); + var removeRedaction2 = manualRedactionClient.addRemoveRedaction(dossier.getId(), + file.getId(), + List.of(RemoveRedactionRequest.builder() + .annotationId("annotationId") + .comment("comment") + .status(AnnotationStatus.APPROVED) + .user("test") + .removeFromDictionary(true) + .build())).get(0); + manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(removeRedaction2.getAnnotationId())).annotationStatus(AnnotationStatus.REQUESTED).build()); var loadedRemoveRedaction2 = manualRedactionClient.getRemoveRedaction(file.getId(), removeRedaction2.getAnnotationId()); assertThat(loadedRemoveRedaction2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); assertThat(dictionaryClient.getDictionaryForType(type.getId(), null).getEntries().isEmpty()); assertThat(loadedRemoveRedaction2.isRemoveFromDictionary()).isEqualTo(true); - manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(removeRedaction2.getAnnotationId())) - .annotationStatus(AnnotationStatus.APPROVED) - .build()); + manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(removeRedaction2.getAnnotationId())).annotationStatus(AnnotationStatus.APPROVED).build()); loadedRemoveRedaction2 = manualRedactionClient.getRemoveRedaction(file.getId(), removeRedaction2.getAnnotationId()); assertThat(loadedRemoveRedaction2.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(removeRedaction2.getAnnotationId())) - .annotationStatus(AnnotationStatus.REQUESTED) - .build()); + manualRedactionClient.updateRemoveRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(removeRedaction2.getAnnotationId())).annotationStatus(AnnotationStatus.REQUESTED).build()); loadedRemoveRedaction2 = manualRedactionClient.getRemoveRedaction(file.getId(), removeRedaction2.getAnnotationId()); assertThat(loadedRemoveRedaction2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); - var forceRedaction = manualRedactionClient.addForceRedaction(dossier.getId(), file.getId(), List.of(ForceRedactionRequest.builder() - .annotationId(addRedaction.getAnnotationId()) - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .user("test") - .legalBasis("1") - .build())).get(0); + var forceRedaction = manualRedactionClient.addForceRedaction(dossier.getId(), + file.getId(), + List.of(ForceRedactionRequest.builder() + .annotationId(addRedaction.getAnnotationId()) + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .user("test") + .legalBasis("1") + .build())).get(0); var loadedForceRedaction = manualRedactionClient.getForceRedaction(file.getId(), forceRedaction.getAnnotationId()); assertThat(loadedForceRedaction.getLegalBasis()).isEqualTo("1"); assertThat(loadedForceRedaction.getUser()).isEqualTo("test"); assertThat(loadedForceRedaction.getAnnotationId()).isEqualTo(loadedForceRedaction.getAnnotationId()); assertThat(loadedForceRedaction.getFileId()).isEqualTo(loadedForceRedaction.getFileId()); - manualRedactionClient.updateForceRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(forceRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.APPROVED) - .build()); + manualRedactionClient.updateForceRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(forceRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.APPROVED).build()); loadedForceRedaction = manualRedactionClient.getForceRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedForceRedaction.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateForceRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(forceRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.DECLINED) - .build()); + manualRedactionClient.updateForceRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(forceRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.DECLINED).build()); loadedForceRedaction = manualRedactionClient.getForceRedaction(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedForceRedaction.getStatus()).isEqualTo(AnnotationStatus.DECLINED); - var legalBasisChange = manualRedactionClient.addLegalBasisChange(dossier.getId(), file.getId(), List.of(LegalBasisChangeRequest.builder() - .annotationId(addRedaction.getAnnotationId()) - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .user("test") - .legalBasis("1") - .build())).get(0); + var legalBasisChange = manualRedactionClient.addLegalBasisChange(dossier.getId(), + file.getId(), + List.of(LegalBasisChangeRequest.builder() + .annotationId(addRedaction.getAnnotationId()) + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .user("test") + .legalBasis("1") + .build())).get(0); var loadedLegalBasisChange = manualRedactionClient.getLegalBasisChange(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedLegalBasisChange.getAnnotationId()).isEqualTo(legalBasisChange.getAnnotationId()); assertThat(loadedLegalBasisChange.getUser()).isEqualTo("test"); assertThat(loadedLegalBasisChange.getLegalBasis()).isEqualTo("1"); - manualRedactionClient.updateLegalBasisChangeStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(legalBasisChange.getAnnotationId())) - .annotationStatus(AnnotationStatus.APPROVED) - .build()); + manualRedactionClient.updateLegalBasisChangeStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(legalBasisChange.getAnnotationId())).annotationStatus(AnnotationStatus.APPROVED).build()); loadedLegalBasisChange = manualRedactionClient.getLegalBasisChange(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedLegalBasisChange.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateLegalBasisChangeStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(legalBasisChange.getAnnotationId())) - .annotationStatus(AnnotationStatus.DECLINED) - .build()); + manualRedactionClient.updateLegalBasisChangeStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(legalBasisChange.getAnnotationId())).annotationStatus(AnnotationStatus.DECLINED).build()); loadedLegalBasisChange = manualRedactionClient.getLegalBasisChange(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedLegalBasisChange.getStatus()).isEqualTo(AnnotationStatus.DECLINED); - var imageRecategorization = manualRedactionClient.addImageRecategorization(dossier.getId(), file.getId(), List.of(ImageRecategorizationRequest.builder() - .annotationId(addRedaction.getAnnotationId()) - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .user("test") - .typeId("new-type:id") - .build())).get(0); + var imageRecategorization = manualRedactionClient.addImageRecategorization(dossier.getId(), + file.getId(), + List.of(ImageRecategorizationRequest.builder() + .annotationId(addRedaction.getAnnotationId()) + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .user("test") + .typeId("new-type:id") + .build())).get(0); var loadedImageRecategorization = manualRedactionClient.getImageRecategorization(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedImageRecategorization.getAnnotationId()).isEqualTo(imageRecategorization.getAnnotationId()); - manualRedactionClient.updateImageRecategorizationStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(imageRecategorization.getAnnotationId())) - .annotationStatus(AnnotationStatus.APPROVED) - .build()); + manualRedactionClient.updateImageRecategorizationStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(imageRecategorization.getAnnotationId())).annotationStatus(AnnotationStatus.APPROVED).build()); loadedImageRecategorization = manualRedactionClient.getImageRecategorization(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedImageRecategorization.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateImageRecategorizationStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(imageRecategorization.getAnnotationId())) - .annotationStatus(AnnotationStatus.DECLINED) - .build()); + manualRedactionClient.updateImageRecategorizationStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(imageRecategorization.getAnnotationId())).annotationStatus(AnnotationStatus.DECLINED).build()); loadedImageRecategorization = manualRedactionClient.getImageRecategorization(file.getId(), addRedaction.getAnnotationId()); assertThat(loadedImageRecategorization.getStatus()).isEqualTo(AnnotationStatus.DECLINED); - var imageRecategorization2 = manualRedactionClient.addImageRecategorization(dossier.getId(), file.getId(), List.of(ImageRecategorizationRequest.builder() - .annotationId(addRedaction2.getAnnotationId()) - .comment("comment") - .status(AnnotationStatus.APPROVED) - .user("test") - .typeId("new-type:id") - .build())).get(0); + var imageRecategorization2 = manualRedactionClient.addImageRecategorization(dossier.getId(), + file.getId(), + List.of(ImageRecategorizationRequest.builder() + .annotationId(addRedaction2.getAnnotationId()) + .comment("comment") + .status(AnnotationStatus.APPROVED) + .user("test") + .typeId("new-type:id") + .build())).get(0); var loadedImageRecategorization2 = manualRedactionClient.getImageRecategorization(file.getId(), imageRecategorization2.getAnnotationId()); assertThat(loadedImageRecategorization2.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateImageRecategorizationStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(imageRecategorization2.getAnnotationId())) - .annotationStatus(AnnotationStatus.REQUESTED) - .build()); + manualRedactionClient.updateImageRecategorizationStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(imageRecategorization2.getAnnotationId())).annotationStatus(AnnotationStatus.REQUESTED).build()); loadedImageRecategorization2 = manualRedactionClient.getImageRecategorization(file.getId(), imageRecategorization2.getAnnotationId()); assertThat(loadedImageRecategorization2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); - var resizeRedaction = manualRedactionClient.addResizeRedaction(dossier.getId(), file.getId(), List.of(ResizeRedactionRequest.builder() - .annotationId(addRedaction.getAnnotationId()) - .page(1) - .comment("comment") - .status(AnnotationStatus.REQUESTED) - .positions(List.of(Rectangle.builder().topLeftY(2).topLeftX(2).height(2).width(2).build())) - .user("test") - .value("some value") - .textAfter("Text After") - .textBefore("Text Before") - .build())).get(0); + var resizeRedaction = manualRedactionClient.addResizeRedaction(dossier.getId(), + file.getId(), + List.of(ResizeRedactionRequest.builder() + .annotationId(addRedaction.getAnnotationId()) + .page(1) + .comment("comment") + .status(AnnotationStatus.REQUESTED) + .positions(List.of(Rectangle.builder().topLeftY(2).topLeftX(2).height(2).width(2).build())) + .user("test") + .value("some value") + .textAfter("Text After") + .textBefore("Text Before") + .build())).get(0); var loadedResizeRedaction = manualRedactionClient.getResizeRedaction(file.getId(), resizeRedaction.getAnnotationId()); assertThat(loadedResizeRedaction.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); assertThat(loadedResizeRedaction.getUser()).isEqualTo("test"); @@ -480,17 +489,15 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { assertThat(loadedResizeRedaction.getTextAfter()).isEqualTo("Text After"); assertThat(loadedResizeRedaction.getTextBefore()).isEqualTo("Text Before"); - manualRedactionClient.updateResizeRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(resizeRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.APPROVED) - .build()); + manualRedactionClient.updateResizeRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(resizeRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.APPROVED).build()); loadedResizeRedaction = manualRedactionClient.getResizeRedaction(file.getId(), resizeRedaction.getAnnotationId()); assertThat(loadedResizeRedaction.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateResizeRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(resizeRedaction.getAnnotationId())) - .annotationStatus(AnnotationStatus.DECLINED) - .build()); + manualRedactionClient.updateResizeRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(resizeRedaction.getAnnotationId())).annotationStatus(AnnotationStatus.DECLINED).build()); loadedResizeRedaction = manualRedactionClient.getResizeRedaction(file.getId(), resizeRedaction.getAnnotationId()); assertThat(loadedResizeRedaction.getStatus()).isEqualTo(AnnotationStatus.DECLINED); @@ -515,66 +522,69 @@ public class ManualRedactionTest extends AbstractPersistenceServerServiceTest { manualRedactions.getComments().forEach((key, value) -> value.forEach(c -> manualRedactionClient.deleteComment(file.getId(), List.of(c.getId())))); - var forceRedaction2 = manualRedactionClient.addForceRedaction(dossier.getId(), file.getId(), List.of(ForceRedactionRequest.builder() - .annotationId(addRedaction2.getAnnotationId()) - .comment("comment") - .status(AnnotationStatus.APPROVED) - .user("test") - .legalBasis("1") - .build())).get(0); + var forceRedaction2 = manualRedactionClient.addForceRedaction(dossier.getId(), + file.getId(), + List.of(ForceRedactionRequest.builder() + .annotationId(addRedaction2.getAnnotationId()) + .comment("comment") + .status(AnnotationStatus.APPROVED) + .user("test") + .legalBasis("1") + .build())).get(0); var loadedForceRedaction2 = manualRedactionClient.getForceRedaction(file.getId(), forceRedaction2.getAnnotationId()); assertThat(loadedForceRedaction2.getStatus()).isEqualTo(AnnotationStatus.APPROVED); assertThat(loadedForceRedaction2.getProcessedDate()).isNull(); - manualRedactionClient.updateForceRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(forceRedaction2.getAnnotationId())) - .annotationStatus(AnnotationStatus.REQUESTED) - .build()); + manualRedactionClient.updateForceRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(forceRedaction2.getAnnotationId())).annotationStatus(AnnotationStatus.REQUESTED).build()); loadedForceRedaction2 = manualRedactionClient.getForceRedaction(file.getId(), forceRedaction2.getAnnotationId()); assertThat(loadedForceRedaction2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); manualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId()); manualRedactions.getForceRedactions().forEach(e -> manualRedactionClient.deleteForceRedaction(dossier.getId(), file.getId(), List.of(e.getAnnotationId()))); - var legalBasisChange2 = manualRedactionClient.addLegalBasisChange(dossier.getId(), file.getId(), List.of(LegalBasisChangeRequest.builder() - .annotationId(addRedaction2.getAnnotationId()) - .comment("comment") - .status(AnnotationStatus.APPROVED) - .user("test") - .legalBasis("1") - .build())).get(0); + var legalBasisChange2 = manualRedactionClient.addLegalBasisChange(dossier.getId(), + file.getId(), + List.of(LegalBasisChangeRequest.builder() + .annotationId(addRedaction2.getAnnotationId()) + .comment("comment") + .status(AnnotationStatus.APPROVED) + .user("test") + .legalBasis("1") + .build())).get(0); var loadedLegalBasisChange2 = manualRedactionClient.getLegalBasisChange(file.getId(), legalBasisChange2.getAnnotationId()); assertThat(loadedLegalBasisChange2.getStatus()).isEqualTo(AnnotationStatus.APPROVED); - manualRedactionClient.updateLegalBasisChangeStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(legalBasisChange2.getAnnotationId())) - .annotationStatus(AnnotationStatus.REQUESTED) - .build()); + manualRedactionClient.updateLegalBasisChangeStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(legalBasisChange2.getAnnotationId())).annotationStatus(AnnotationStatus.REQUESTED).build()); loadedLegalBasisChange2 = manualRedactionClient.getLegalBasisChange(file.getId(), legalBasisChange2.getAnnotationId()); assertThat(loadedLegalBasisChange2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); manualRedactions = manualRedactionClient.getManualRedactions(dossier.getId(), file.getId()); manualRedactions.getLegalBasisChanges().forEach(e -> manualRedactionClient.deleteLegalBasisChange(dossier.getId(), file.getId(), List.of(e.getAnnotationId()))); - var resizeRedaction2 = manualRedactionClient.addResizeRedaction(dossier.getId(), file.getId(), List.of(ResizeRedactionRequest.builder() - .annotationId(addRedaction.getAnnotationId()) - .page(1) - .comment("comment") - .status(AnnotationStatus.APPROVED) - .positions(List.of(Rectangle.builder().topLeftY(2).topLeftX(2).height(2).width(2).build())) - .user("test") - .value("some value") - .build())).get(0); + var resizeRedaction2 = manualRedactionClient.addResizeRedaction(dossier.getId(), + file.getId(), + List.of(ResizeRedactionRequest.builder() + .annotationId(addRedaction.getAnnotationId()) + .page(1) + .comment("comment") + .status(AnnotationStatus.APPROVED) + .positions(List.of(Rectangle.builder().topLeftY(2).topLeftX(2).height(2).width(2).build())) + .user("test") + .value("some value") + .build())).get(0); var loadedResizeRedaction2 = manualRedactionClient.getResizeRedaction(file.getId(), resizeRedaction2.getAnnotationId()); assertThat(loadedResizeRedaction2.getStatus()).isEqualTo(AnnotationStatus.APPROVED); assertThat(loadedResizeRedaction2.getUser()).isEqualTo("test"); assertThat(loadedResizeRedaction2.getPositions()).isNotEmpty(); assertThat(loadedResizeRedaction2.getValue()).isEqualTo("some value"); - manualRedactionClient.updateResizeRedactionStatus(dossier.getId(), file.getId(), UpdateRedactionRequest.builder() - .annotationIds(List.of(resizeRedaction2.getAnnotationId())) - .annotationStatus(AnnotationStatus.REQUESTED) - .build()); + manualRedactionClient.updateResizeRedactionStatus(dossier.getId(), + file.getId(), + UpdateRedactionRequest.builder().annotationIds(List.of(resizeRedaction2.getAnnotationId())).annotationStatus(AnnotationStatus.REQUESTED).build()); loadedResizeRedaction2 = manualRedactionClient.getResizeRedaction(file.getId(), resizeRedaction2.getAnnotationId()); assertThat(loadedResizeRedaction2.getStatus()).isEqualTo(AnnotationStatus.REQUESTED); diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationPreferencesTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationPreferencesTest.java index 234af86cf..3bc2daec5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationPreferencesTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/NotificationPreferencesTest.java @@ -1,18 +1,20 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.NotificationPreferencesClient; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.notification.EmailNotificationType; import com.iqser.red.service.persistence.service.v1.api.model.notification.NotificationPreferences; + import feign.FeignException; -import org.junit.Before; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.ArrayList; -import java.util.List; - -import static org.assertj.core.api.Assertions.assertThat; public class NotificationPreferencesTest extends AbstractPersistenceServerServiceTest { @@ -29,8 +31,10 @@ public class NotificationPreferencesTest extends AbstractPersistenceServerServic List inAppNotifications = new ArrayList<>(); List emailNotifications = new ArrayList<>(); + @Before public void setupData() { + inAppNotifications.add(DOSSIER_YOU_OWN_NOTIFICATION_1); inAppNotifications.add(DOSSIER_YOU_OWN_NOTIFICATION_2); inAppNotifications.add(DOSSIER_YOU_OWN_NOTIFICATION_3); @@ -40,6 +44,7 @@ public class NotificationPreferencesTest extends AbstractPersistenceServerServic notificationPreferences = new NotificationPreferences(true, true, EmailNotificationType.DAILY, emailNotifications, inAppNotifications); } + @Test public void testNotificationPreferences() { // add notification @@ -67,7 +72,6 @@ public class NotificationPreferencesTest extends AbstractPersistenceServerServic assertThat(notificationReceived.getInAppNotifications().size()).isEqualTo(notificationPreferences.getInAppNotifications().size()); assertThat(notificationReceived.getEmailNotifications().size()).isEqualTo(notificationPreferences.getEmailNotifications().size()); - // delete notification notificationPreferencesClient.deleteNotificationPreferences(USER_ID); try { @@ -76,4 +80,5 @@ public class NotificationPreferencesTest extends AbstractPersistenceServerServic assertThat(e.status()).isEqualTo(404); } } + } 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 957e1ca7e..8ad236e58 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 @@ -1,5 +1,14 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import java.time.OffsetDateTime; +import java.util.Map; + +import org.assertj.core.util.Lists; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.NotificationClient; import com.iqser.red.service.peristence.v1.server.integration.client.NotificationPreferencesClient; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; @@ -7,14 +16,6 @@ import com.iqser.red.service.persistence.service.v1.api.model.audit.AddNotificat import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.notification.Notification; import com.iqser.red.service.persistence.service.v1.api.model.notification.NotificationType; -import org.assertj.core.util.Lists; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import java.time.OffsetDateTime; -import java.util.Map; - -import static org.assertj.core.api.Assertions.assertThat; public class NotificationTest extends AbstractPersistenceServerServiceTest { @@ -30,13 +31,10 @@ public class NotificationTest extends AbstractPersistenceServerServiceTest { // initialize in app notifications var preferences = notificationPreferencesClient.getNotificationPreferences("1"); - notificationClient.addNotification(AddNotificationRequest.builder() - .notificationType(NotificationType.ASSIGN_REVIEWER.name()) - .userId("1").build()); + notificationClient.addNotification(AddNotificationRequest.builder().notificationType(NotificationType.ASSIGN_REVIEWER.name()).userId("1").build()); assertThat(notificationClient.getNotifications("1", true).size()).isEqualTo(1); - // disable in app notifications preferences.setInAppNotificationsEnabled(false); notificationPreferencesClient.setNotificationPreferences("1", preferences); @@ -47,28 +45,28 @@ public class NotificationTest extends AbstractPersistenceServerServiceTest { notificationPreferencesClient.setNotificationPreferences("1", preferences); assertThat(notificationClient.getNotifications("1", true).size()).isEqualTo(0); - - notificationClient.addNotification(AddNotificationRequest.builder() - .notificationType(NotificationType.ASSIGN_REVIEWER.name()) - .userId("1").build()); + notificationClient.addNotification(AddNotificationRequest.builder().notificationType(NotificationType.ASSIGN_REVIEWER.name()).userId("1").build()); assertThat(notificationClient.getNotifications("1", true).size()).isEqualTo(1); - preferences.getInAppNotifications().remove(NotificationType.ASSIGN_REVIEWER.name()); notificationPreferencesClient.setNotificationPreferences("1", preferences); assertThat(notificationClient.getNotifications("1", true).size()).isEqualTo(0); - } + @Test public void testNotification() { - notificationClient.addNotification(AddNotificationRequest.builder().notificationType(NotificationType.ASSIGN_REVIEWER.name()).issuerId("1").userId("1").target(Map.of("test", "test")).build()); + notificationClient.addNotification(AddNotificationRequest.builder() + .notificationType(NotificationType.ASSIGN_REVIEWER.name()) + .issuerId("1") + .userId("1") + .target(Map.of("test", "test")) + .build()); var notification = getNotification(); - assertThat(notification.getReadDate()).isNull(); notificationClient.toggleRead("1", Lists.newArrayList(notification.getId()), true); notification = getNotification(); @@ -77,7 +75,6 @@ public class NotificationTest extends AbstractPersistenceServerServiceTest { assertThat(notification.getReadDate()).isNotNull(); - assertThat(notification.getSeenDate()).isNull(); notificationClient.toggleSeen("1", Lists.newArrayList(notification.getId()), true); notification = getNotification(); @@ -86,27 +83,27 @@ public class NotificationTest extends AbstractPersistenceServerServiceTest { var currentNotifications = notificationClient.getNotifications("1", false); assertThat(currentNotifications).isEmpty(); - notificationClient.toggleRead("1", Lists.newArrayList(notification.getId()), false); notification = getNotification(); assertThat(notification.getReadDate()).isNull(); - notificationClient.toggleSeen("1", Lists.newArrayList(notification.getId()), false); notification = getNotification(); assertThat(notification.getSeenDate()).isNull(); - notificationClient.softDelete("1", Lists.newArrayList(notification.getId())); currentNotifications = notificationClient.getNotifications("1", true); assertThat(currentNotifications).isEmpty(); } + private Notification getNotification() { + var currentNotifications = notificationClient.getNotifications("1", true); assertThat(currentNotifications.size()).isEqualTo(1); return currentNotifications.iterator().next(); } + } 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 581d6524c..d2f5b4b89 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 @@ -4,7 +4,6 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.Set; -import com.iqser.red.service.persistence.management.v1.processor.utils.multitenancy.TenantContext; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -14,6 +13,7 @@ import com.iqser.red.service.peristence.v1.server.integration.service.DossierTes import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository; +import com.iqser.red.service.persistence.management.v1.processor.utils.multitenancy.TenantContext; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; @@ -34,24 +34,24 @@ public class ReanalysisTest extends AbstractPersistenceServerServiceTest { @Autowired private FileRepository fileRepository; + @Test public void testReanalysis() { + var dossier = dossierTesterAndProvider.provideTestDossier(); var file = fileTesterAndProvider.testAndProvideFile(dossier); - reanalysisClient.ocrDossier(dossier.getId()); var 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); 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())); loadedFile = fileClient.getFileStatus(dossier.getId(), file.getId()); assertThat(loadedFile.getProcessingStatus()).isEqualTo(ProcessingStatus.OCR_PROCESSING_QUEUED); @@ -71,6 +71,7 @@ public class ReanalysisTest extends AbstractPersistenceServerServiceTest { private void resetProcessingStatus(FileModel file) { + TenantContext.setTenantId("redaction"); fileRepository.findById(file.getId()).ifPresent(savedFile -> { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RedactionLogTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RedactionLogTest.java index 4d65636f4..53834cc0a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RedactionLogTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/RedactionLogTest.java @@ -34,12 +34,14 @@ public class RedactionLogTest extends AbstractPersistenceServerServiceTest { assertThat(redactionLogClient.getSectionGrid(dossier.getId(), file.getId())).isNotNull(); assertThat(redactionLogClient.getRedactionLog(dossier.getId(), file.getId(), null, true, false)).isNotNull(); assertThat(redactionLogClient.getRedactionLog(dossier.getId(), file.getId(), null, false, false)).isNotNull(); - assertThat(redactionLogClient.getFilteredRedactionLog(dossier.getId(), file.getId(), FilteredRedactionLogRequest.builder() - .excludedTypes(null) - .withManualRedactions(true) - .includeFalsePositives(false) - .specifiedDate(OffsetDateTime.now().minusDays(30)) - .build())).isNotNull(); + assertThat(redactionLogClient.getFilteredRedactionLog(dossier.getId(), + file.getId(), + FilteredRedactionLogRequest.builder() + .excludedTypes(null) + .withManualRedactions(true) + .includeFalsePositives(false) + .specifiedDate(OffsetDateTime.now().minusDays(30)) + .build())).isNotNull(); } } 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 b9d4fffdc..eead21c81 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/ReportTemplateTest.java @@ -1,12 +1,6 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.catchThrowable; - -import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest; - -import feign.FeignException; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -14,8 +8,11 @@ import org.springframework.beans.factory.annotation.Autowired; import com.iqser.red.service.peristence.v1.server.integration.client.ReportTemplateClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUpdateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.ReportTemplateUploadRequest; +import feign.FeignException; + public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { @Autowired @@ -50,9 +47,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator() - .next() - .getTemplateId()); + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo(fileName); @@ -92,9 +87,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator() - .next() - .getTemplateId()); + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo("report.xlsx"); @@ -107,7 +100,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(availableTemplates).isEmpty(); } - + /* * Upload template file and then multi file template with the same name @@ -134,9 +127,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator() - .next() - .getTemplateId()); + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo(fileName); @@ -155,8 +146,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(availableTemplates).isNotEmpty(); assertThat(availableTemplates.size()).isEqualTo(2); - var secondTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.get(1) - .getTemplateId()); + var secondTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.get(1).getTemplateId()); assertThat(availableTemplates.get(1)).isEqualTo(secondTemplate); assertThat(secondTemplate.getFileName()).isEqualTo("report.xlsx"); @@ -188,9 +178,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator() - .next() - .getTemplateId()); + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo("report.xlsx"); @@ -209,8 +197,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { assertThat(availableTemplates).isNotEmpty(); assertThat(availableTemplates.size()).isEqualTo(2); - var secondTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.get(1) - .getTemplateId()); + var secondTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.get(1).getTemplateId()); assertThat(availableTemplates.get(1)).isEqualTo(secondTemplate); assertThat(secondTemplate.getFileName()).isEqualTo(fileName); @@ -242,9 +229,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator() - .next() - .getTemplateId()); + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo(fileName + fileEnding); @@ -276,9 +261,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator() - .next() - .getTemplateId()); + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo(fileName + fileEnding); @@ -310,9 +293,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator() - .next() - .getTemplateId()); + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo(fileName + fileEnding); @@ -344,9 +325,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator() - .next() - .getTemplateId()); + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo(fileName + fileEnding); @@ -375,9 +354,7 @@ public class ReportTemplateTest extends AbstractPersistenceServerServiceTest { var availableTemplates = reportTemplateClient.getAvailableReportTemplates(dossierTemplate.getId()); assertThat(availableTemplates).isNotEmpty(); - var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator() - .next() - .getTemplateId()); + var firstTemplate = reportTemplateClient.getReportTemplate(dossierTemplate.getId(), availableTemplates.iterator().next().getTemplateId()); assertThat(availableTemplates.iterator().next()).isEqualTo(firstTemplate); assertThat(firstTemplate.getFileName()).isEqualTo(fileName); 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 cc9650cfb..47557db27 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 @@ -1,13 +1,14 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.RulesClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import static org.assertj.core.api.Assertions.assertThat; public class RulesTest extends AbstractPersistenceServerServiceTest { @@ -17,12 +18,12 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { @Autowired private RulesClient rulesClient; + @Test public void testRules() { var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); - rulesClient.setRules(dossierTemplate.getId(), JSONPrimitive.of("lorem ipsum")); assertThat(rulesClient.getVersion(dossierTemplate.getId())).isEqualTo(3); //1. beim Anlegen des DossierTemplates; 2. bei provideTestTemplate(), damit es ACTIVE ist assertThat(rulesClient.getRules(dossierTemplate.getId())).isEqualTo(JSONPrimitive.of("lorem ipsum")); @@ -31,6 +32,6 @@ public class RulesTest extends AbstractPersistenceServerServiceTest { assertThat(rulesClient.getVersion(dossierTemplate.getId())).isEqualTo(4); assertThat(rulesClient.getRules(dossierTemplate.getId())).isEqualTo(JSONPrimitive.of("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/SMTPTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/SMTPTest.java index f17ab19c1..298628c52 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/SMTPTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/SMTPTest.java @@ -1,19 +1,22 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.SMTPClient; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.SMTPConfiguration; -import feign.FeignException; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import static org.assertj.core.api.Assertions.assertThat; +import feign.FeignException; public class SMTPTest extends AbstractPersistenceServerServiceTest { @Autowired private SMTPClient smtpClient; + @Test public void testSMTP() { @@ -45,8 +48,6 @@ public class SMTPTest extends AbstractPersistenceServerServiceTest { assertThat(e.status()).isEqualTo(404); } - } - } 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 3d28f5524..f40b7b53a 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 @@ -33,6 +33,7 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { @Test public void testType() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); var type = typeProvider.testAndProvideType(dossierTemplate); @@ -62,7 +63,6 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { assertThat(entry.isDeleted()).isTrue(); } - var request = new Type(); BeanUtils.copyProperties(type, request); request.setRank(99); @@ -72,14 +72,11 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { assertThat(loadedType.getVersion()).isGreaterThan(type.getVersion() + 2); assertThat(loadedType.getRank()).isEqualTo(99); - dictionaryClient.deleteType(type.getId()); - var typesForTemplate = dictionaryClient.getAllTypesForDossierTemplate(loadedType.getDossierTemplateId(), false); assertThat(typesForTemplate).isEmpty(); - var dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate); var dossierType = typeProvider.testAndProvideType(dossierTemplate, dossier, "dossier-dict"); @@ -88,8 +85,10 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { } + @Test public void testColors() { + var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); var colors = new Colors(); @@ -116,4 +115,5 @@ public class TypeTest extends AbstractPersistenceServerServiceTest { 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 f82791489..e78ab2481 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 @@ -1,18 +1,18 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.ViewedPagesClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.service.v1.api.model.annotations.ViewedPage; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import static org.assertj.core.api.Assertions.assertThat; public class ViewedPagesTest extends AbstractPersistenceServerServiceTest { - @Autowired private FileTesterAndProvider fileTesterAndProvider; 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 c3e660598..63c8cc10b 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 @@ -3,19 +3,19 @@ package com.iqser.red.service.peristence.v1.server.integration.tests; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertThrows; -import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; -import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; -import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; -import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest; import org.junit.Test; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; +import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; +import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.WatermarkOrientation; +import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest; import feign.FeignException; @@ -120,10 +120,9 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { assertThat(e.status()).isEqualTo(409); } - - } + @Test public void testDeleteWatermark() { @@ -159,9 +158,9 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { assertThat(e.status()).isEqualTo(404); } - } + @Test public void testCreateWatermark() { @@ -199,6 +198,7 @@ public class WatermarkTest extends AbstractPersistenceServerServiceTest { var loadedWatermark2 = watermarkClient.getWatermark(saved.getId()); } + @Test public void testWatermarkTextWithWrongText() { 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 36cddf5a6..13c16e7a6 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 @@ -1,5 +1,14 @@ package com.iqser.red.service.peristence.v1.server.integration.tests.performance; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.DictionaryClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient; import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; @@ -10,15 +19,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist import com.iqser.red.service.persistence.management.v1.processor.utils.jdbc.JDBCWriteUtils; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.CloneDossierTemplateRequest; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.type.DictionaryEntryType; + import lombok.extern.slf4j.Slf4j; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; @Slf4j public class EntityPerformanceTest extends AbstractPersistenceServerServiceTest { @@ -38,10 +40,10 @@ public class EntityPerformanceTest extends AbstractPersistenceServerServiceTest @Autowired private EntryRepository entryRepository; + @Test public void testAddToDictionary() { - var template = dossierTemplateTesterAndProvider.provideTestTemplate("test"); var type = typeProvider.testAndProvideType(template); @@ -53,19 +55,16 @@ public class EntityPerformanceTest extends AbstractPersistenceServerServiceTest long t2 = System.currentTimeMillis(); log.info("Add Time: {}ms counting: {} entries", (t2 - t1), entryRepository.findByTypeIdAndVersionGreaterThan(type.getTypeId(), 0).size()); - t1 = System.currentTimeMillis(); dictionaryClient.addEntries(type.getTypeId(), tenKEntries, true, false, DictionaryEntryType.ENTRY); t2 = System.currentTimeMillis(); log.info("Add Time: {}ms counting: {} entries", (t2 - t1), entryRepository.findByTypeIdAndVersionGreaterThan(type.getTypeId(), 0).size()); - t1 = System.currentTimeMillis(); dictionaryClient.addEntries(type.getTypeId(), fiveKEntries, true, false, DictionaryEntryType.ENTRY); t2 = System.currentTimeMillis(); log.info("Update Time: {}ms counting: {} entries", (t2 - t1), entryRepository.findByTypeIdAndVersionGreaterThan(type.getTypeId(), 0).size()); - dictionaryClient.addEntries(type.getTypeId(), fiveKEntries, true, false, DictionaryEntryType.FALSE_RECOMMENDATION); dictionaryClient.addEntries(type.getTypeId(), fiveKEntries, true, false, DictionaryEntryType.FALSE_POSITIVE); @@ -88,19 +87,19 @@ public class EntityPerformanceTest extends AbstractPersistenceServerServiceTest @Autowired private JDBCWriteUtils jdbcWriteUtils; + @Test public void testWritePerformance() { + var tenKEntries = generateEntries(10_000); var template = dossierTemplateTesterAndProvider.provideTestTemplate("test"); var type1 = typeProvider.testAndProvideType(template, null, "t1"); var type2 = typeProvider.testAndProvideType(template, null, "t2"); - List type1Entries = - tenKEntries.stream().map(s -> new DictionaryEntryEntity(0, s, 1, false, type1.getTypeId())).collect(Collectors.toList()); + List type1Entries = tenKEntries.stream().map(s -> new DictionaryEntryEntity(0, s, 1, false, type1.getTypeId())).collect(Collectors.toList()); - List type2Entries = - tenKEntries.stream().map(s -> new DictionaryEntryEntity(0, s, 1, false, type2.getTypeId())).collect(Collectors.toList()); + List type2Entries = tenKEntries.stream().map(s -> new DictionaryEntryEntity(0, s, 1, false, type2.getTypeId())).collect(Collectors.toList()); assertThat(entryRepository.count()).isEqualTo(0); long t1 = System.currentTimeMillis(); @@ -120,11 +119,14 @@ public class EntityPerformanceTest extends AbstractPersistenceServerServiceTest System.out.println("JDBC Time: " + jdbcTime + "ms for 10k entries"); } + private List generateEntries(int count) { + List entries = new ArrayList<>(); for (var i = 1; i <= count; i++) { entries.add("Dictionary Entry: " + i); } return entries; } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/FilePerformanceTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/FilePerformanceTest.java index 9407e4787..abca19003 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/FilePerformanceTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/performance/FilePerformanceTest.java @@ -1,5 +1,20 @@ package com.iqser.red.service.peristence.v1.server.integration.tests.performance; +import static org.assertj.core.api.Assertions.assertThat; + +import java.time.OffsetDateTime; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + +import org.assertj.core.util.Sets; +import org.junit.Before; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient; import com.iqser.red.service.peristence.v1.server.integration.client.DossierStatsClient; import com.iqser.red.service.peristence.v1.server.integration.client.FileClient; @@ -7,7 +22,11 @@ import com.iqser.red.service.peristence.v1.server.integration.client.WatermarkCl import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; -import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.*; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeConfigEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileAttributeEntity; +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.FileEntity; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.DownloadFileType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Watermark; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.WatermarkOrientation; @@ -15,18 +34,8 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileAttributeType; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.ProcessingStatus; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.WorkflowStatus; + import lombok.extern.slf4j.Slf4j; -import org.assertj.core.util.Sets; -import org.junit.Before; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; - -import java.time.OffsetDateTime; -import java.util.*; -import java.util.stream.Collectors; - -import static org.assertj.core.api.Assertions.assertThat; - @Slf4j public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { @@ -37,7 +46,6 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { private final static Integer TYPE_ENTRY_COUNT = 500; private final static Integer FILE_ATTRIBUTE_COUNT = 15; - @Autowired private DossierClient dossierClient; @@ -50,6 +58,7 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { @Autowired private WatermarkClient watermarkClient; + @Before public void setupTest() { @@ -58,7 +67,11 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { DossierTemplateEntity dte = new DossierTemplateEntity(); dte.setId(UUID.randomUUID().toString()); dte.setName("Test"); - dte.setDownloadFileTypes(Sets.newTreeSet(DownloadFileType.ANNOTATED, DownloadFileType.REDACTED, DownloadFileType.ORIGINAL, DownloadFileType.PREVIEW, DownloadFileType.FLATTEN)); + dte.setDownloadFileTypes(Sets.newTreeSet(DownloadFileType.ANNOTATED, + DownloadFileType.REDACTED, + DownloadFileType.ORIGINAL, + DownloadFileType.PREVIEW, + DownloadFileType.FLATTEN)); dte.setCreatedBy("123"); dte.setDescription("Lorem Ipsum"); dte.setModifiedBy("123"); @@ -117,7 +130,7 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { de.setTypeId(te.getId()); de.setDeleted(false); de.setVersion(1); - de.setValue("Dictionary Entry" +i+"/"+ j); + de.setValue("Dictionary Entry" + i + "/" + j); des.add(de); } @@ -127,7 +140,6 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { log.info("Created Dossier Template Data ..."); - for (int i = 0; i < DOSSIER_COUNT; i++) { DossierEntity d = new DossierEntity(); @@ -140,11 +152,14 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { d.setStartDate(OffsetDateTime.now()); d.setApproverIds(Sets.newTreeSet("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")); d.setMemberIds(Sets.newTreeSet("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")); - d.setDownloadFileTypes(Sets.newTreeSet(DownloadFileType.ANNOTATED, DownloadFileType.REDACTED, DownloadFileType.ORIGINAL, DownloadFileType.PREVIEW, DownloadFileType.FLATTEN)); + d.setDownloadFileTypes(Sets.newTreeSet(DownloadFileType.ANNOTATED, + DownloadFileType.REDACTED, + DownloadFileType.ORIGINAL, + DownloadFileType.PREVIEW, + DownloadFileType.FLATTEN)); d = this.dossierRepository.save(d); - List files = new ArrayList<>(); for (int j = 0; j < FILE_PER_DOSSIER_COUNT; j++) { FileEntity f = new FileEntity(); @@ -196,10 +211,10 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { log.info("Created Performance data in: {}ms", end - start); } + @Test public void doPerformanceTest() { - long startAllDossiers = System.currentTimeMillis(); var allDossiers = dossierClient.getAllDossiers(false, false); log.info("Load all dossiers time: {}ms", System.currentTimeMillis() - startAllDossiers); @@ -219,6 +234,7 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { } + private Set getExcludedPages() { Set pages = new HashSet<>(); @@ -228,5 +244,4 @@ public class FilePerformanceTest extends AbstractPersistenceServerServiceTest { return pages; } - } 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 dc65f6633..45971dc2c 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 @@ -216,24 +216,21 @@ public abstract class AbstractPersistenceServerServiceTest { DocumentRequest d = (DocumentRequest) args[0]; var untouchedObjectId = StorageIdUtils.getStorageId(d.getDossierId(), d.getFileId(), FileType.ORIGIN); - return new ByteContentDocument(IOUtils.toByteArray(storageService.getObject(untouchedObjectId) - .getInputStream())); + return new ByteContentDocument(IOUtils.toByteArray(storageService.getObject(untouchedObjectId).getInputStream())); }); when(pdfTronRedactionClient.redactionPreview(Mockito.any())).thenAnswer((answer) -> { Object[] args = answer.getArguments(); DocumentRequest d = (DocumentRequest) args[0]; var untouchedObjectId = StorageIdUtils.getStorageId(d.getDossierId(), d.getFileId(), FileType.ORIGIN); - return new ByteContentDocument(IOUtils.toByteArray(storageService.getObject(untouchedObjectId) - .getInputStream())); + return new ByteContentDocument(IOUtils.toByteArray(storageService.getObject(untouchedObjectId).getInputStream())); }); when(pdfTronRedactionClient.redactionPreviewDiff(Mockito.any())).thenAnswer((answer) -> { Object[] args = answer.getArguments(); DocumentRequest d = (DocumentRequest) args[0]; var untouchedObjectId = StorageIdUtils.getStorageId(d.getDossierId(), d.getFileId(), FileType.ORIGIN); - return new ByteContentDocument(IOUtils.toByteArray(storageService.getObject(untouchedObjectId) - .getInputStream())); + return new ByteContentDocument(IOUtils.toByteArray(storageService.getObject(untouchedObjectId).getInputStream())); }); when(redactionClient.sections(Mockito.any())).thenReturn(new RedactionResult()); @@ -243,11 +240,8 @@ public abstract class AbstractPersistenceServerServiceTest { private void createDefaultTenant() { - if(!tenantRepository.findById("redaction").isPresent()) { - var postgreSQLContainerMaster = SpringPostgreSQLTestContainer.getInstance() - .withDatabaseName("integration-tests-db-master") - .withUsername("sa") - .withPassword("sa"); + if (!tenantRepository.findById("redaction").isPresent()) { + var postgreSQLContainerMaster = SpringPostgreSQLTestContainer.getInstance().withDatabaseName("integration-tests-db-master").withUsername("sa").withPassword("sa"); var jdbcUrl = postgreSQLContainerMaster.getJdbcUrl().substring(0, postgreSQLContainerMaster.getJdbcUrl().lastIndexOf('/') + 1) + "redaction?currentSchema=myschema"; @@ -341,17 +335,15 @@ public abstract class AbstractPersistenceServerServiceTest { public void initialize(ConfigurableApplicationContext configurableApplicationContext) { - var postgreSQLContainerMaster = SpringPostgreSQLTestContainer.getInstance() - .withDatabaseName("integration-tests-db-master") - .withUsername("sa") - .withPassword("sa"); + var postgreSQLContainerMaster = SpringPostgreSQLTestContainer.getInstance().withDatabaseName("integration-tests-db-master").withUsername("sa").withPassword("sa"); postgreSQLContainerMaster.start(); var connectionStringDetails = "?serverTimezone=UTC&cachePrepStmts=true&useServerPrepStmts=true&rewriteBatchedStatements=true"; - TestPropertyValues.of("multitenancy.master.datasource.url=" + postgreSQLContainerMaster.getJdbcUrl() + connectionStringDetails, "multitenancy.master.datasource.username=" + postgreSQLContainerMaster.getUsername(), "multitenancy.master.datasource.password=" + postgreSQLContainerMaster.getPassword()) - .applyTo(configurableApplicationContext.getEnvironment()); + TestPropertyValues.of("multitenancy.master.datasource.url=" + postgreSQLContainerMaster.getJdbcUrl() + connectionStringDetails, + "multitenancy.master.datasource.username=" + postgreSQLContainerMaster.getUsername(), + "multitenancy.master.datasource.password=" + postgreSQLContainerMaster.getPassword()).applyTo(configurableApplicationContext.getEnvironment()); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java index 74af0dc0c..a697f65c5 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/FileSystemBackedStorageService.java @@ -24,9 +24,12 @@ public class FileSystemBackedStorageService implements StorageService { private final Map dataMap = new HashMap<>(); + public FileSystemBackedStorageService() { + } + @SneakyThrows @Override public InputStreamResource getObject(String objectId) { @@ -39,48 +42,62 @@ public class FileSystemBackedStorageService implements StorageService { } + @Override public void deleteObject(String objectId) { + dataMap.remove(objectId); } + @Override public boolean objectExists(String objectId) { + return dataMap.containsKey(objectId); } + @Override public void init() { } + @Override @SneakyThrows public void storeJSONObject(String objectId, T any) { + File tempFile = File.createTempFile("test", ".tmp"); getMapper().writeValue(new FileOutputStream(tempFile), any); dataMap.put(objectId, tempFile); } + private ObjectMapper getMapper() { + return ObjectMapperFactory.create(); } + @Override @SneakyThrows public T readJSONObject(String objectId, Class clazz) { + if (dataMap.get(objectId) == null || !dataMap.get(objectId).exists()) { throw new StorageObjectDoesNotExist("Stored object not found"); } return getMapper().readValue(new FileInputStream(dataMap.get(objectId)), clazz); } + public List listPaths() { + return new ArrayList<>(dataMap.keySet()); } public List listFilePaths() { + return dataMap.values().stream().map(File::getAbsolutePath).collect(Collectors.toList()); } @@ -88,6 +105,7 @@ public class FileSystemBackedStorageService implements StorageService { @Override @SneakyThrows public void storeObject(String objectId, InputStream stream) { + File tempFile = File.createTempFile("test", ".tmp"); try (var fileOutputStream = new FileOutputStream(tempFile)) { @@ -99,9 +117,11 @@ public class FileSystemBackedStorageService implements StorageService { public void clearStorage() { + this.dataMap.forEach((k, v) -> { v.delete(); }); this.dataMap.clear(); } + } diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/SpringPostgreSQLTestContainer.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/SpringPostgreSQLTestContainer.java index 3235f4ddc..0abb59b71 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/SpringPostgreSQLTestContainer.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/utils/SpringPostgreSQLTestContainer.java @@ -7,11 +7,15 @@ public class SpringPostgreSQLTestContainer extends PostgreSQLContainer Double.compare(b.total, a.total)); timerResults.forEach(System.out::println); - counterResults.sort((a, b) -> Double.compare(b.average, a.average)); counterResults.forEach(System.out::println); } + @Slf4j public static class Result { @@ -106,6 +107,7 @@ public class MetricsPrinterService { public Result(String metric, double count, double total) { + this.metric = metric.replace("com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.", ""); this.count = count; this.total = total; @@ -116,23 +118,31 @@ public class MetricsPrinterService { this.averageStr = df.format(this.average); } + private String padRight(String str) { + while (str.length() < 100) { str += " "; } return str; } + private String padLeft(String str) { + while (str.length() < 12) { str = " " + str; } return str; } + @Override public String toString() { + return padRight(metric + ": ") + " | " + padLeft(count + "") + " | " + padLeft(totalStr + "") + " | " + padLeft(averageStr + ""); } + } + }