From d11a1178b38fb3609fbf4a7545f0122713105b94 Mon Sep 17 00:00:00 2001 From: Ali Oezyetimoglu Date: Mon, 13 Nov 2023 09:00:09 +0100 Subject: [PATCH] RED-7883: changed encoding from modified UTF-8 to UTF-8 for dossier template import and export --- .../service/DossierTemplateImportService.java | 16 +++++++-- .../export/DossierTemplateExportService.java | 20 +++++++++++ .../tests/DossierTemplateImportTest.java | 2 +- .../tests/DossierTemplateTest.java | 34 +++++++++++++++++++ 4 files changed, 69 insertions(+), 3 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java index 17a5ed46f..e154b8633 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/DossierTemplateImportService.java @@ -3,12 +3,15 @@ package com.iqser.red.service.persistence.management.v1.processor.service; import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter.convert; import java.io.BufferedInputStream; +import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.time.OffsetDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; @@ -17,7 +20,6 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.Set; import java.util.UUID; import java.util.function.Function; @@ -67,7 +69,6 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.ReportTemplateUploadRequest; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.configuration.Colors; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.DossierStatusInfo; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileAttributeConfig; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ExportFilename; @@ -546,6 +547,17 @@ public class DossierTemplateImportService { return entries; } +// private List readEntries(byte[] bytes) { +// +// ByteArrayInputStream bInput = new ByteArrayInputStream(bytes); +// try (BufferedReader br = new BufferedReader(new InputStreamReader(bInput, StandardCharsets.UTF_8))) { +// return br.lines().collect(Collectors.toList()); +// } catch (IOException e) { +// log.debug("exception: ", e); +// throw new BadRequestException("Error while reading the entries", e); +// } +// } + private String getType(String filename) { diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/export/DossierTemplateExportService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/export/DossierTemplateExportService.java index b8f288cde..fd41eaae2 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/export/DossierTemplateExportService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/export/DossierTemplateExportService.java @@ -2,10 +2,12 @@ package com.iqser.red.service.persistence.management.v1.processor.service.export import static com.knecon.fforesight.databasetenantcommons.providers.utils.MagicConverter.convert; +import java.io.BufferedWriter; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; import java.util.List; import java.util.stream.Collectors; @@ -268,6 +270,24 @@ public class DossierTemplateExportService { } } +// private void writeEntriesListToFile(FileSystemBackedArchiver fileSystemBackedArchiver, List entriesValuesList, String folderName, String filename) { +// +// try (ByteArrayOutputStream bt = new ByteArrayOutputStream(); +// OutputStreamWriter osw = new OutputStreamWriter(bt, StandardCharsets.UTF_8); +// BufferedWriter writer = new BufferedWriter(osw)) { +// +// for (String entry : entriesValuesList) { +// writer.write(entry); +// writer.newLine(); +// } +// writer.flush(); +// +// fileSystemBackedArchiver.addEntries(new FileSystemBackedArchiver.ArchiveModel(folderName, filename, bt.toByteArray())); +// } catch (IOException e) { +// log.debug("Error writing values to files"); +// } +// } + private void storeZipFile(String storageId, FileSystemBackedArchiver fileSystemBackedArchiver) { diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java index 3bf948eb5..b4b82ff22 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateImportTest.java @@ -47,7 +47,7 @@ public class DossierTemplateImportTest extends AbstractPersistenceServerServiceT @Disabled public void testLocalDossierTemplateImport() { - var importDir = new File("C:\\Users\\YannikHampe\\Downloads\\testing\\"); + var importDir = new File("/tmp/knoell"); assertThat(importDir).isNotNull(); assertThat(importDir.exists()).isTrue(); 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 01a0af423..815a4d5a4 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 @@ -5,12 +5,20 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.io.BufferedWriter; +import java.io.ByteArrayOutputStream; +import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; +import java.io.OutputStreamWriter; +import java.io.Writer; +import java.nio.charset.StandardCharsets; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.time.temporal.ChronoUnit; import java.util.Collections; import java.util.List; +import java.util.Set; import java.util.stream.Collectors; import org.jetbrains.annotations.NotNull; @@ -38,6 +46,7 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.BadRe import com.iqser.red.service.persistence.management.v1.processor.model.DownloadJob; import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; import com.iqser.red.service.persistence.management.v1.processor.service.export.ExportDownloadMessageReceiver; +import com.iqser.red.service.persistence.management.v1.processor.utils.FileSystemBackedArchiver; import com.iqser.red.service.persistence.service.v1.api.shared.model.CreateTypeValue; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierAttributesConfig; import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierStatusRequest; @@ -376,6 +385,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { } + private void setupDossierTemplate(DossierTemplateModel dossierTemplate) { var type = CreateTypeValue.builder() @@ -551,6 +561,30 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest { } + @Test + @SneakyThrows + public void testWriteLines() { + + List entriesValuesList = List.of("Adam", "Eva", "drei sdfs"); + + try (ByteArrayOutputStream bt = new ByteArrayOutputStream(); + OutputStreamWriter osw = new OutputStreamWriter(bt, StandardCharsets.UTF_8); + BufferedWriter writer = new BufferedWriter(osw)) { + + for (String entry : entriesValuesList) { + writer.write(entry); + writer.newLine(); + } + writer.flush(); + + try (FileOutputStream fileOutputStream = new FileOutputStream("/tmp/e.txt")) { + fileOutputStream.write(bt.toByteArray()); + } + + } + } + + @Test @SneakyThrows public void testImportDossierTemplateUpdateExisting() {