diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java index 185abb1d..fe86d1d2 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java @@ -1,22 +1,25 @@ package com.iqser.red.service.redaction.v1.server.storage; +import java.io.IOException; +import java.io.InputStream; + +import org.springframework.core.io.InputStreamResource; +import org.springframework.stereotype.Service; + import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileType; import com.iqser.red.service.redaction.v1.model.RedactionLog; import com.iqser.red.service.redaction.v1.model.SectionGrid; import com.iqser.red.service.redaction.v1.server.classification.model.Text; import com.iqser.red.service.redaction.v1.server.client.model.NerEntities; +import com.iqser.red.service.redaction.v1.server.exception.NotFoundException; import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist; import com.iqser.red.storage.commons.service.StorageService; + import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.springframework.core.io.InputStreamResource; -import org.springframework.stereotype.Service; - -import java.io.IOException; -import java.io.InputStream; @Slf4j @Service @@ -26,14 +29,17 @@ public class RedactionStorageService { private final ObjectMapper objectMapper; private final StorageService storageService; + @SneakyThrows public InputStream getStoredObject(String storageId) { + return storageService.getObject(storageId).getInputStream(); } @SneakyThrows public void storeObject(String dossierId, String fileId, FileType fileType, Object any) { + storageService.storeObject(StorageIdUtils.getStorageId(dossierId, fileId, fileType), objectMapper.writeValueAsBytes(any)); } @@ -92,12 +98,13 @@ public class RedactionStorageService { } - public SectionGrid getSectionGrid(String dossierId, String fileId) { - var sectionGrid = storageService.getObject(StorageIdUtils.getStorageId(dossierId, fileId, FileType.SECTION_GRID)); try { + var sectionGrid = storageService.getObject(StorageIdUtils.getStorageId(dossierId, fileId, FileType.SECTION_GRID)); return objectMapper.readValue(sectionGrid.getInputStream(), SectionGrid.class); + } catch (StorageObjectDoesNotExist e) { + throw new NotFoundException("Section Grid is not available."); } catch (IOException e) { throw new RuntimeException("Could not convert RedactionLog", e); } @@ -116,8 +123,10 @@ public class RedactionStorageService { public static class StorageIdUtils { public static String getStorageId(String dossierId, String fileId, FileType fileType) { + return dossierId + "/" + fileId + "." + fileType.name() + fileType.getExtension(); } } + }