Pull request #45: RED-1910: Fixed Base64 conversion problem of dossier attribute images

Merge in RED/redaction-report-service from RED-1910 to master

* commit '5c21d68d4af3ad282d159ce6835dae278ef278b6':
  RED-1910: Fixed Base64 conversion problem of dossier attribute images
This commit is contained in:
Dominique Eiflaender 2021-08-05 10:44:56 +02:00
commit 89a796657e
2 changed files with 9 additions and 3 deletions

View File

@ -94,8 +94,13 @@ public class WordReportGenerationService {
for (DossierAttributeConfig attribute : dossierAttributesConfig.getDossierAttributeConfigs()) {
if (dossierAttribute.getDossierAttributeId().equals(attribute.getId())) {
if (attribute.getType().equals(DossierAttributeConfig.DossierAttributeType.IMAGE)) {
imagePlaceholders.add(new ImagePlaceholder(attribute.getPlaceholder(), Base64.getDecoder()
.decode(dossierAttribute.getValue())));
if(dossierAttribute.getValue().startsWith("data:")){
imagePlaceholders.add(new ImagePlaceholder(attribute.getPlaceholder(), Base64.getDecoder()
.decode(dossierAttribute.getValue().split(",")[1])));
} else {
imagePlaceholders.add(new ImagePlaceholder(attribute.getPlaceholder(), Base64.getDecoder().decode(dossierAttribute.getValue())));
}
} else {
dossierAttributesPlaceholder.put(attribute.getPlaceholder(), dossierAttribute.getValue());
}

View File

@ -102,9 +102,10 @@ public class RedactionReportIntegrationTest {
DossierAttributesConfig dossierAttributesConfig = new DossierAttributesConfig(Arrays.asList(new DossierAttributeConfig("id", "label", true, DossierAttributeConfig.DossierAttributeType.TEXT, "{{dossier.attribute.name}}"), new DossierAttributeConfig("id2", "label2", false, DossierAttributeConfig.DossierAttributeType.IMAGE, "{{dossier.attribute.image}}")));
when(dossierAttributesConfigClient.getDossierAttributes(dossierTemplateId)).thenReturn(dossierAttributesConfig);
DossierAttributes dossierAttributes = new DossierAttributes(Arrays.asList(new DossierAttribute("id", "Michael"), new DossierAttribute("id2", Base64
DossierAttributes dossierAttributes = new DossierAttributes(Arrays.asList(new DossierAttribute("id", "Michael"), new DossierAttribute("id2","data:image/png;base64," + Base64
.getEncoder()
.encodeToString(IOUtils.toByteArray(imageResource.getInputStream())))));
when(dossierAttributesClient.getDossierAttributes("dossierId")).thenReturn(dossierAttributes);
List<FileAttributeConfig> fileAttributeConfigs = new ArrayList<>();