From 2946c5e0488634a4a3ee82de8c1f69ac6edba7a1 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 16 Oct 2024 17:00:27 +0200
Subject: [PATCH] OZG-6944 OzgCloudFileService

---
 .../muk/MukPostfachCallContextProvider.java   | 17 ++++++++++
 .../muk/MukPostfachConfiguration.java         | 31 +++++++++++++++++++
 .../muk/transfer/AttachmentService.java       |  5 +--
 3 files changed, 51 insertions(+), 2 deletions(-)
 create mode 100644 src/main/java/de/ozgcloud/nachrichten/postfach/muk/MukPostfachCallContextProvider.java
 create mode 100644 src/main/java/de/ozgcloud/nachrichten/postfach/muk/MukPostfachConfiguration.java

diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/MukPostfachCallContextProvider.java b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/MukPostfachCallContextProvider.java
new file mode 100644
index 0000000..b65237d
--- /dev/null
+++ b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/MukPostfachCallContextProvider.java
@@ -0,0 +1,17 @@
+package de.ozgcloud.nachrichten.postfach.muk;
+
+import org.springframework.stereotype.Component;
+
+import de.ozgcloud.apilib.common.callcontext.CallContext;
+import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider;
+import lombok.RequiredArgsConstructor;
+
+@Component
+@RequiredArgsConstructor
+class MukPostfachCallContextProvider implements OzgCloudCallContextProvider {
+
+	@Override
+	public CallContext provideContext() {
+		return CallContext.builder().clientName(MukPostfachConfiguration.MUK_POSTFACH_CLIENT_NAME).build();
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/MukPostfachConfiguration.java b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/MukPostfachConfiguration.java
new file mode 100644
index 0000000..bc8640f
--- /dev/null
+++ b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/MukPostfachConfiguration.java
@@ -0,0 +1,31 @@
+package de.ozgcloud.nachrichten.postfach.muk;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import de.ozgcloud.apilib.file.OzgCloudFileService;
+import de.ozgcloud.apilib.file.grpc.GrpcOzgCloudFileService;
+import de.ozgcloud.apilib.file.grpc.OzgCloudFileMapper;
+import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServiceBlockingStub;
+import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServiceStub;
+import net.devh.boot.grpc.client.inject.GrpcClient;
+
+@Configuration
+public class MukPostfachConfiguration {
+
+	public static final String OZG_CLOUD_FILE_SERVICE_NAME = "mukPostfach_OzgCloudFileService";
+
+	public static final String GRPC_FILE_MANAGER_FILE = "file-manager";
+
+	public static final String MUK_POSTFACH_CLIENT_NAME = "OzgCloud_MukPostfach";
+
+	@GrpcClient(GRPC_FILE_MANAGER_FILE)
+	private BinaryFileServiceBlockingStub fileServiceBlockingStub;
+	@GrpcClient(GRPC_FILE_MANAGER_FILE)
+	private BinaryFileServiceStub fileServiceAsyncServiceStub;
+
+	@Bean(OZG_CLOUD_FILE_SERVICE_NAME) // NOSONAR
+	OzgCloudFileService grpcOzgCloudFileService(MukPostfachCallContextProvider contextProvider, OzgCloudFileMapper mapper) {
+		return new GrpcOzgCloudFileService(fileServiceBlockingStub, fileServiceAsyncServiceStub, contextProvider, mapper);
+	}
+}
diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/AttachmentService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/AttachmentService.java
index 5a259d1..09b3764 100644
--- a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/AttachmentService.java
+++ b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/AttachmentService.java
@@ -25,19 +25,20 @@ package de.ozgcloud.nachrichten.postfach.muk.transfer;
 import java.io.BufferedInputStream;
 import java.io.OutputStream;
 
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.apilib.file.OzgCloudFile;
 import de.ozgcloud.apilib.file.OzgCloudFileId;
 import de.ozgcloud.apilib.file.OzgCloudFileService;
 import de.ozgcloud.apilib.file.OzgCloudUploadFile;
+import de.ozgcloud.nachrichten.postfach.muk.MukPostfachConfiguration;
 import lombok.RequiredArgsConstructor;
-import lombok.extern.log4j.Log4j2;
 
-@Log4j2
 @Service
 @RequiredArgsConstructor
 public class AttachmentService {
+	@Qualifier(MukPostfachConfiguration.OZG_CLOUD_FILE_SERVICE_NAME) // NOSONAR
 	private final OzgCloudFileService ozgCloudFileService;
 
 	OzgCloudFile getCloudFile(String fileId) {
-- 
GitLab