RED-4543 - In fileAttributesController, support ASCII and ISO as Encoding Type

- add column encoding to file attribute config
- update junit tests
This commit is contained in:
devplant 2022-10-27 17:14:08 +03:00
parent 3157f3a602
commit 54fcb5076b
9 changed files with 38 additions and 0 deletions

View File

@ -14,5 +14,6 @@ public class FileAttributesGeneralConfiguration {
private String dossierTemplateId;
private String filenameMappingColumnHeaderName;
private String delimiter;
private String encoding;
}

View File

@ -30,6 +30,9 @@ public interface FileAttributesConfigResource {
String FILE_ATTRIBUTE_ID = "fileAttributeId";
String FILE_ATTRIBUTE_ID_PATH_VARIABLE = "/{" + FILE_ATTRIBUTE_ID + "}";
String UTF_ENCODING = "UTF-8";
String ASCII_ENCODING = "ASCII";
String ISO_ENCODING = "ISO-8601";
@ResponseBody
@ResponseStatus(HttpStatus.OK)

View File

@ -30,6 +30,8 @@ public class FileAttributesGeneralConfigurationEntity {
private String filenameMappingColumnHeaderName;
@Column
private String delimiter;
@Column
private String encoding;
@OneToOne
@JsonIgnore

View File

@ -184,6 +184,7 @@ public class DossierTemplateCloneService {
var fagc = FileAttributesGeneralConfigurationEntity.builder()
.dossierTemplateId(clonedDossierTemplateId)
.delimiter(fileAttributesGeneralConfig.getDelimiter())
.encoding(fileAttributesGeneralConfig.getEncoding())
.filenameMappingColumnHeaderName(fileAttributesGeneralConfig.getFilenameMappingColumnHeaderName())
.build();
fileAttributeConfigPersistenceService.setFileAttributesGeneralConfig(clonedDossierTemplateId, fagc);

View File

@ -24,6 +24,8 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
import lombok.RequiredArgsConstructor;
import static com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesConfigResource.*;
@Service
@RequiredArgsConstructor
public class FileAttributeConfigPersistenceService {
@ -85,6 +87,7 @@ public class FileAttributeConfigPersistenceService {
fileAttributesConfig.setDossierTemplateId(dossierTemplateId);
fileAttributesConfig.setDossierTemplate(dossierTemplateRepository.getOne(dossierTemplateId));
fileAttributesConfig.setEncoding(this.getValidatedEncoding(fileAttributesConfig.getEncoding()));
return fileAttributesGeneralConfigurationRepository.save(fileAttributesConfig);
}
@ -163,7 +166,18 @@ public class FileAttributeConfigPersistenceService {
throw new ConflictException("Placeholder already exists.");
}
});
}
private String getValidatedEncoding(String encoding) {
if (StringUtils.isBlank(encoding))
return UTF_ENCODING;
if (UTF_ENCODING.equalsIgnoreCase(encoding.trim()))
return UTF_ENCODING;
if (ASCII_ENCODING.equalsIgnoreCase(encoding.trim()))
return ASCII_ENCODING;
if (ISO_ENCODING.equalsIgnoreCase(encoding.trim()))
return ISO_ENCODING;
return UTF_ENCODING;
}
}

View File

@ -103,3 +103,5 @@ databaseChangeLog:
file: db/changelog/tenant/40-remove-quartz.changelog.yaml
- include:
file: db/changelog/tenant/sql/41-update-ocr-file-columns.sql
- include:
file: db/changelog/tenant/sql/42-add-encoding-column-file-attribute-config.sql

View File

@ -0,0 +1,2 @@
ALTER TABLE file_attribute_general_configuration ADD COLUMN encoding VARCHAR(255);
update file_attribute_general_configuration set encoding = 'UTF-8';

View File

@ -235,6 +235,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
FileAttributesGeneralConfiguration.builder()
.dossierTemplateId(dossierTemplate.getId())
.delimiter("")
.encoding("UTF-8")
.filenameMappingColumnHeaderName("filenameMappingColumnHeaderName")
.build());
fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(),
@ -328,6 +329,8 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
.getCsvColumnHeader()).isEqualTo(fileAttributeConfigClient.getFileAttributeConfigs(clonedDT.getId()).get(0).getCsvColumnHeader());
assertThat(fileAttributeConfigClient.getFileAttributesGeneralConfig(dossierTemplate.getId())
.getFilenameMappingColumnHeaderName()).isEqualTo(fileAttributeConfigClient.getFileAttributesGeneralConfig(clonedDT.getId()).getFilenameMappingColumnHeaderName());
assertThat(fileAttributeConfigClient.getFileAttributesGeneralConfig(dossierTemplate.getId())
.getEncoding()).isEqualTo(fileAttributeConfigClient.getFileAttributesGeneralConfig(clonedDT.getId()).getEncoding());
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());
@ -683,6 +686,7 @@ public class DossierTemplateTest extends AbstractPersistenceServerServiceTest {
FileAttributesGeneralConfiguration.builder()
.dossierTemplateId(dossierTemplate.getId())
.delimiter("")
.encoding("UTF-8")
.filenameMappingColumnHeaderName("filenameMappingColumnHeaderName")
.build());
fileAttributeConfigClient.setFileAttributesConfig(dossierTemplate.getId(),

View File

@ -1,5 +1,7 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import static com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesConfigResource.ASCII_ENCODING;
import static com.iqser.red.service.persistence.service.v1.api.resources.FileAttributesConfigResource.UTF_ENCODING;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.ArrayList;
@ -65,6 +67,12 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
fileAttributeConfigClient.setFileAttributesGeneralConfig(dossier.getDossierTemplateId(), generalConfig);
var loadedConfig = fileAttributeConfigClient.getFileAttributesGeneralConfig(dossier.getDossierTemplateId());
assertThat(loadedConfig.getDelimiter()).isEqualTo(",");
assertThat(loadedConfig.getEncoding()).isEqualTo(UTF_ENCODING);
generalConfig.setEncoding(" ASCII ");
fileAttributeConfigClient.setFileAttributesGeneralConfig(dossier.getDossierTemplateId(), generalConfig);
loadedConfig = fileAttributeConfigClient.getFileAttributesGeneralConfig(dossier.getDossierTemplateId());
assertThat(loadedConfig.getEncoding()).isEqualTo(ASCII_ENCODING);
List<FileAttributeConfig> configs = new ArrayList<>();
configs.add(FileAttributeConfig.builder().csvColumnHeader("Name").primaryAttribute(true).label("Name").build());
@ -164,6 +172,7 @@ public class FileAttributeTest extends AbstractPersistenceServerServiceTest {
FileAttributesGeneralConfiguration generalConfig = new FileAttributesGeneralConfiguration();
generalConfig.setDelimiter(",");
generalConfig.setEncoding("UTF-8");
generalConfig.setFilenameMappingColumnHeaderName("Name");
generalConfig.setDossierTemplateId(dossier.getDossierTemplateId());