Pull request #43: RED-1773: added classes for providing placeholders

Merge in RED/redaction-report-service from RED-1773-rrs1 to master

* commit '4e2d2758967652bf881f3d900dcdb28de6b9abad':
  RED-1773: added classes for providing placeholders
This commit is contained in:
Ali Oezyetimoglu 2021-07-23 14:55:08 +02:00
commit ebf9e48be8
5 changed files with 111 additions and 39 deletions

View File

@ -0,0 +1,18 @@
package com.iqser.red.service.redaction.report.v1.api.resource;
import java.util.List;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
public interface PlaceholderResource {
String PLACEHOLDERS_PATH = "/placeholders";
@GetMapping(value = PLACEHOLDERS_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
List<String> getPlaceholders();
}

View File

@ -0,0 +1,25 @@
package com.iqser.red.service.redaction.report.v1.server.controller;
import java.util.List;
import org.springframework.web.bind.annotation.RestController;
import com.iqser.red.service.redaction.report.v1.api.resource.PlaceholderResource;
import com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@RestController
@RequiredArgsConstructor
public class PlaceholderController implements PlaceholderResource {
private final PlaceholderService placeholderService;
@Override
public List<String> getPlaceholders() {
return placeholderService.getGeneralPlaceholders();
}
}

View File

@ -1,10 +1,23 @@
package com.iqser.red.service.redaction.report.v1.server.service;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.DOSSIER_NAME_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FILE_NAME_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_ENG;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_ENG_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_GER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_GER_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_ISO;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_ISO_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_TIME_ISO;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_TIME_ISO_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.JUSTIFICATION_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.PAGE_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.PARAGRAPH_PLACEHOLDER;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
@ -18,7 +31,6 @@ import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Picture;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -31,8 +43,6 @@ import com.iqser.red.service.file.management.v1.api.model.Dossier;
import com.iqser.red.service.file.management.v1.api.model.DossierAttribute;
import com.iqser.red.service.file.management.v1.api.model.DossierAttributes;
import com.iqser.red.service.file.management.v1.api.model.FileStatus;
import com.iqser.red.service.file.management.v1.api.model.ReportTemplate;
import com.iqser.red.service.redaction.report.v1.api.model.ReportType;
import com.iqser.red.service.redaction.report.v1.server.client.DossierAttributesClient;
import com.iqser.red.service.redaction.report.v1.server.client.DossierAttributesConfigClient;
import com.iqser.red.service.redaction.report.v1.server.client.FileAttributesClient;
@ -52,23 +62,6 @@ public class ExcelTemplateReportGenerationService {
private final DossierAttributesConfigClient dossierAttributesConfigClient;
private final FileAttributesClient fileAttributesClient;
public static final String FILE_NAME_PLACEHOLDER = "{{file.name}}";
public static final String PAGE_PLACEHOLDER = "{{redaction.page}}";
public static final String PARAGRAPH_PLACEHOLDER = "{{redaction.paragraph}}";
public static final String JUSTIFICATION_PLACEHOLDER = "{{redaction.justification}}";
public static final DateTimeFormatter FORMAT_DATE_ISO = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static final DateTimeFormatter FORMAT_DATE_GER = DateTimeFormatter.ofPattern("dd.MM.yyyy");
public static final DateTimeFormatter FORMAT_DATE_ENG = DateTimeFormatter.ofPattern("MM/dd/yyyy");
public static final DateTimeFormatter FORMAT_TIME_ISO = DateTimeFormatter.ofPattern("HH:mm");
public static final String FORMAT_DATE_ISO_PLACEHOLDER = "{{date.yyyy-MM-dd}}";
public static final String FORMAT_DATE_GER_PLACEHOLDER = "{{date.dd.MM.yyyy}}";
public static final String FORMAT_DATE_ENG_PLACEHOLDER = "{{date.MM/dd/yyyy}}";
public static final String FORMAT_TIME_ISO_PLACEHOLDER = "{{time.HH:mm}}";
public static final String DOSSIER_NAME_PLACEHOLDER = "{{dossier.name}}";
public void generateReport(List<ReportRedactionEntry> reportEntries, String dossierTemplateId,
XSSFWorkbook workbook, FileStatus fileStatus, Dossier dossier, boolean isLastFile) {

View File

@ -0,0 +1,40 @@
package com.iqser.red.service.redaction.report.v1.server.service;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Service
@RequiredArgsConstructor
public class PlaceholderService {
public static final String FILE_NAME_PLACEHOLDER = "{{file.name}}";
public static final String PAGE_PLACEHOLDER = "{{redaction.page}}";
public static final String PARAGRAPH_PLACEHOLDER = "{{redaction.paragraph}}";
public static final String JUSTIFICATION_PLACEHOLDER = "{{redaction.justification}}";
public static final DateTimeFormatter FORMAT_DATE_ISO = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static final DateTimeFormatter FORMAT_DATE_GER = DateTimeFormatter.ofPattern("dd.MM.yyyy");
public static final DateTimeFormatter FORMAT_DATE_ENG = DateTimeFormatter.ofPattern("MM/dd/yyyy");
public static final DateTimeFormatter FORMAT_TIME_ISO = DateTimeFormatter.ofPattern("HH:mm");
public static final String FORMAT_DATE_ISO_PLACEHOLDER = "{{date.yyyy-MM-dd}}";
public static final String FORMAT_DATE_GER_PLACEHOLDER = "{{date.dd.MM.yyyy}}";
public static final String FORMAT_DATE_ENG_PLACEHOLDER = "{{date.MM/dd/yyyy}}";
public static final String FORMAT_TIME_ISO_PLACEHOLDER = "{{time.HH:mm}}";
public static final String DOSSIER_NAME_PLACEHOLDER = "{{dossier.name}}";
public List<String> getGeneralPlaceholders() {
return List.of(FILE_NAME_PLACEHOLDER, PAGE_PLACEHOLDER, PARAGRAPH_PLACEHOLDER, JUSTIFICATION_PLACEHOLDER, FORMAT_DATE_ISO_PLACEHOLDER, FORMAT_DATE_GER_PLACEHOLDER, FORMAT_DATE_ENG_PLACEHOLDER, FORMAT_TIME_ISO_PLACEHOLDER, DOSSIER_NAME_PLACEHOLDER);
}
}

View File

@ -1,10 +1,23 @@
package com.iqser.red.service.redaction.report.v1.server.service;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.DOSSIER_NAME_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FILE_NAME_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_ENG;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_ENG_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_GER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_GER_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_ISO;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_DATE_ISO_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_TIME_ISO;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.FORMAT_TIME_ISO_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.JUSTIFICATION_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.PAGE_PLACEHOLDER;
import static com.iqser.red.service.redaction.report.v1.server.service.PlaceholderService.PARAGRAPH_PLACEHOLDER;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
@ -55,23 +68,6 @@ public class WordReportGenerationService {
private final DossierAttributesClient dossierAttributesClient;
private final DossierAttributesConfigClient dossierAttributesConfigClient;
public static final String FILE_NAME_PLACEHOLDER = "{{file.name}}";
public static final String PAGE_PLACEHOLDER = "{{redaction.page}}";
public static final String PARAGRAPH_PLACEHOLDER = "{{redaction.paragraph}}";
public static final String JUSTIFICATION_PLACEHOLDER = "{{redaction.justification}}";
public static final DateTimeFormatter FORMAT_DATE_ISO = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static final DateTimeFormatter FORMAT_DATE_GER = DateTimeFormatter.ofPattern("dd.MM.yyyy");
public static final DateTimeFormatter FORMAT_DATE_ENG = DateTimeFormatter.ofPattern("MM/dd/yyyy");
public static final DateTimeFormatter FORMAT_TIME_ISO = DateTimeFormatter.ofPattern("HH:mm");
public static final String FORMAT_DATE_ISO_PLACEHOLDER = "{{date.yyyy-MM-dd}}";
public static final String FORMAT_DATE_GER_PLACEHOLDER = "{{date.dd.MM.yyyy}}";
public static final String FORMAT_DATE_ENG_PLACEHOLDER = "{{date.MM/dd/yyyy}}";
public static final String FORMAT_TIME_ISO_PLACEHOLDER = "{{time.HH:mm}}";
public static final String DOSSIER_NAME_PLACEHOLDER = "{{dossier.name}}";
@PostConstruct
public void init() {