From b461f95638b39d32abd13e51147ef5d9966f1aea Mon Sep 17 00:00:00 2001 From: corinaolariu Date: Wed, 27 Nov 2024 15:19:26 +0200 Subject: [PATCH] RED-10342 - File attributes in CSV export - add includeToCsvExport field to FileAttributeConfig - update unit test --- .../entity/dossier/FileAttributeConfigEntity.java | 2 ++ .../FileAttributeConfigPersistenceService.java | 1 + .../resources/db/changelog/db.changelog-tenant.yaml | 2 ++ .../tenant/154-add-included-to-csv-export-field.yaml | 12 ++++++++++++ .../server/integration/tests/FileAttributeTest.java | 5 ++++- .../dossier/file/FileAttributeConfig.java | 1 + 6 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/154-add-included-to-csv-export-field.yaml diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/dossier/FileAttributeConfigEntity.java index 4a182c0b8..c022f5fd4 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 @@ -41,6 +41,8 @@ public class FileAttributeConfigEntity { @Column private String placeholder; @Column + private boolean includeInCsvExport; + @Column @Enumerated(EnumType.STRING) @Builder.Default private FileAttributeType type = FileAttributeType.TEXT; 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 8cc7362dd..f4acf2421 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 @@ -131,6 +131,7 @@ public class FileAttributeConfigPersistenceService { config.setDisplayedInFileList(fileAttributeConfig.isDisplayedInFileList()); config.setPrimaryAttribute(fileAttributeConfig.isPrimaryAttribute()); config.setFilterable(fileAttributeConfig.isFilterable()); + config.setIncludeInCsvExport(fileAttributeConfig.isIncludeInCsvExport()); setPlaceholder(config); uniqueLabelAndPlaceholder(fileAttributeConfig); return fileAttributeConfigRepository.save(config); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml index e8dedd571..e40f76d5b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/db.changelog-tenant.yaml @@ -249,3 +249,5 @@ databaseChangeLog: file: db/changelog/tenant/152-add-ai-fields-to-entity.yaml - include: file: db/changelog/tenant/153-custom-technical-name-change.yaml + - include: + file: db/changelog/tenant/154-add-included-to-csv-export-field.yaml diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/154-add-included-to-csv-export-field.yaml b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/154-add-included-to-csv-export-field.yaml new file mode 100644 index 000000000..896ad35fd --- /dev/null +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/resources/db/changelog/tenant/154-add-included-to-csv-export-field.yaml @@ -0,0 +1,12 @@ +databaseChangeLog: + - changeSet: + id: add-included-to-csv-export-field + author: colariu + changes: + - addColumn: + columns: + - column: + name: include_in_csv_export + type: BOOLEAN + defaultValue: false + tableName: file_attribute_config 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 6cb0d7e2d..6ee03b300 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 @@ -90,7 +90,7 @@ 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(); + FileAttributeConfig attributeB = FileAttributeConfig.builder().csvColumnHeader("Attribute B").primaryAttribute(true).label("Attribute B").includeInCsvExport(true).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()); @@ -104,6 +104,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { .findAny() .get(); assertThat(primaryAttribute.getLabel()).isEqualTo(attributeB.getLabel()); + assertTrue(primaryAttribute.isIncludeInCsvExport()); fileAttributeConfigClient.deleteFileAttribute(dossier.getDossierTemplateId(), loadedConfigs.stream() @@ -132,10 +133,12 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest { newConfig.setId(created.getId()); newConfig.setLabel("Test Attribute Update"); + newConfig.setIncludeInCsvExport(true); var updated = fileAttributeConfigClient.addOrUpdateFileAttribute(dossier.getDossierTemplateId(), newConfig); loadedConfigs = fileAttributeConfigClient.getFileAttributesConfiguration(dossier.getDossierTemplateId()).getFileAttributeConfigs(); assertThat(loadedConfigs.size()).isEqualTo(4); assertThat(updated.getLabel()).isEqualTo("Test Attribute Update"); + assertTrue(updated.isIncludeInCsvExport()); assertThat(updated.getPlaceholder()).isEqualTo("{{file.attribute.TestAttributeUpdate}}"); assertThat(fileClient.getFileStatus(dossier.getId(), file.getId()).getLastFileAttributeChange()).isNull(); diff --git a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/dossier/file/FileAttributeConfig.java b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/dossier/file/FileAttributeConfig.java index a780284bf..9e5e01197 100644 --- a/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/dossier/file/FileAttributeConfig.java +++ b/persistence-service-v1/persistence-service-shared-api-v1/src/main/java/com/iqser/red/service/persistence/service/v1/api/shared/model/dossiertemplate/dossier/file/FileAttributeConfig.java @@ -26,5 +26,6 @@ public class FileAttributeConfig { @Builder.Default private FileAttributeType type = FileAttributeType.TEXT; private String dossierTemplateId; + private boolean includeInCsvExport; }