diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/NachrichtenManagerConfiguration.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/NachrichtenManagerConfiguration.java index 4a6d1a5ff1fb365325d5405508a38882fb8b10e8..48d588ffcd8ed11533b5b5319393ecb4adf5c715 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/NachrichtenManagerConfiguration.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/NachrichtenManagerConfiguration.java @@ -26,8 +26,8 @@ public class NachrichtenManagerConfiguration { public static final String NACHRICHTEN_VORGANG_REMOTE_SERVICE = "nachrichten_vorgangRemoteService"; public static final String NACHRICHTEN_ATTACHED_ITEM_SERVICE = "nachrichten_attachedItemService"; public static final String NACHRICHTEN_OZG_CLOUD_FILE_MAPPER = "nachrichten_OzgCloudFileMapperImpl"; - public static final String BINARY_FILE_SERVICE_NAME = "nachrichten_BinaryFileService"; - public static final String BINARY_FILE_REMOTE_SERVICE_NAME = "nachrichten_BinaryFileRemoteService"; + public static final String ATTACHMENT_FILE_SERVICE_NAME = "nachrichten_AttachmentFileService"; + public static final String ATTACHMENT_FILE_MAPPER_NAME = "nachrichten_AttachmentFileMapper"; public static final String GRPC_VORGANG_MANAGER_NAME = "vorgang-manager"; public static final String GRPC_COMMAND_MANAGER_NAME = "command-manager"; diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileMapper.java index e1f6f6e7ebd565f9b317664260c2da2be3a555f0..6ccc7ebe01892bc8bb3b158fc3ea5c9da8ded8f2 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileMapper.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileMapper.java @@ -23,13 +23,19 @@ */ package de.ozgcloud.nachrichten.file; +import org.mapstruct.AnnotateWith; import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.NullValueCheckStrategy; +import org.mapstruct.ReportingPolicy; +import org.springframework.stereotype.Component; import de.ozgcloud.apilib.file.OzgCloudFile; import de.ozgcloud.apilib.file.OzgCloudUploadFile; +import de.ozgcloud.nachrichten.NachrichtenManagerConfiguration; -@Mapper +@Mapper(nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, unmappedTargetPolicy = ReportingPolicy.WARN) +@AnnotateWith(value = Component.class, elements = @AnnotateWith.Element(strings = NachrichtenManagerConfiguration.ATTACHMENT_FILE_MAPPER_NAME)) interface AttachmentFileMapper { @Mapping(target = "vorgangId", ignore = true) diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileService.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileService.java index 2e576364e83cf098ea98ab5c0e9bebc011f9130b..d04fc89d20cd0b97c24febf77951b620788e66c5 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileService.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/file/AttachmentFileService.java @@ -38,6 +38,7 @@ import jakarta.activation.MimetypesFileTypeMap; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.core.task.TaskExecutor; import org.springframework.stereotype.Service; @@ -49,7 +50,7 @@ import de.ozgcloud.nachrichten.postfach.FileId; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; -@Service(NachrichtenManagerConfiguration.BINARY_FILE_SERVICE_NAME) +@Service(NachrichtenManagerConfiguration.ATTACHMENT_FILE_SERVICE_NAME) @RequiredArgsConstructor @Log4j2 public class AttachmentFileService { @@ -57,8 +58,10 @@ public class AttachmentFileService { private static final int BUFFER_SIZE = 4 * 1024; static final String ATTACHMENT_NAME = "PostfachAttachment"; - private final OzgCloudFileService fileService; + @Qualifier(NachrichtenManagerConfiguration.OZG_CLOUD_FILE_SERVICE_NAME) + private final OzgCloudFileService ozgCloudFileService; private final OzgCloudFileIdMapper fileIdMapper; + @Qualifier(NachrichtenManagerConfiguration.ATTACHMENT_FILE_MAPPER_NAME) private final AttachmentFileMapper attachmentFileMapper; private final TaskExecutor taskExecutor; @@ -66,14 +69,14 @@ public class AttachmentFileService { private final MimetypesFileTypeMap mimetypesFileTypeMap; public AttachmentFile getFile(FileId fileId) { - var ozgCloudFile = fileService.getFile(fileIdMapper.toFileId(fileId.toString())); + var ozgCloudFile = ozgCloudFileService.getFile(fileIdMapper.toFileId(fileId.toString())); return attachmentFileMapper.fromOzgCloudFile(ozgCloudFile); } public InputStream getFileContent(FileId fileId) { var inputStream = createInputStream(); var outputStream = connectToOutputStream(inputStream); - taskExecutor.execute(() -> fileService.writeFileDataToStream(fileIdMapper.toFileId(fileId.toString()), outputStream)); + taskExecutor.execute(() -> ozgCloudFileService.writeFileDataToStream(fileIdMapper.toFileId(fileId.toString()), outputStream)); return inputStream; } @@ -90,7 +93,7 @@ public class AttachmentFileService { } public String createAttachmentFile(AttachmentFile attachmentFile, String fileContent) { - var ozgCloudFileId = fileService.uploadFile(attachmentFileMapper.toOzgCloudUploadFile(enhanceAttachmentFile(attachmentFile, fileContent)), + var ozgCloudFileId = ozgCloudFileService.uploadFile(attachmentFileMapper.toOzgCloudUploadFile(enhanceAttachmentFile(attachmentFile, fileContent)), toDecodedInputStream(fileContent)); return ozgCloudFileId.toString(); } diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/NachrichtenManagerTestApplication.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/NachrichtenManagerTestApplication.java index 36c71b33971209f25d81e6fd657d8701c5a255f6..8b90c6bbd747c0263e5327651074fd17b993ac82 100644 --- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/NachrichtenManagerTestApplication.java +++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/NachrichtenManagerTestApplication.java @@ -1,12 +1,15 @@ package de.ozgcloud.nachrichten; +import org.mapstruct.factory.Mappers; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import de.ozgcloud.apilib.common.command.OzgCloudCommandService; import de.ozgcloud.apilib.file.OzgCloudFileService; +import de.ozgcloud.apilib.vorgang.OzgCloudFileIdMapper; import de.ozgcloud.nachrichten.postfach.muk.MukPostfachConfiguration; @SpringBootApplication @@ -22,4 +25,9 @@ public class NachrichtenManagerTestApplication { @Qualifier(MukPostfachConfiguration.OZG_CLOUD_FILE_SERVICE_NAME) private OzgCloudFileService mukOzgCloudFileServices; + + @Bean + OzgCloudFileIdMapper ozgCloudFileIdMapper() { + return Mappers.getMapper(OzgCloudFileIdMapper.class); + } }