From 5a76fb1af2d4e75defb89ce1c22ca2a01e6b4e75 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 18 Aug 2023 11:15:23 +0200
Subject: [PATCH] add api endpoint for adding alfa notes

---
 .../de/ozgcloud/apilib/alfa/AlfaService.java     | 14 ++++++++++++++
 .../apilib/alfa/dummy/DummyAlfaService.java      | 16 ++++++++++++++++
 .../java/de/ozgcloud/apilib/demo/DemoRunner.java |  8 +++++++-
 .../OzgCloudClientAutoConfiguration.java         |  8 ++++++++
 4 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 api-lib-core/src/main/java/de/ozgcloud/apilib/alfa/AlfaService.java
 create mode 100644 api-lib-core/src/main/java/de/ozgcloud/apilib/alfa/dummy/DummyAlfaService.java

diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/alfa/AlfaService.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/alfa/AlfaService.java
new file mode 100644
index 0000000..0f5228c
--- /dev/null
+++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/alfa/AlfaService.java
@@ -0,0 +1,14 @@
+package de.ozgcloud.apilib.alfa;
+
+import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
+
+public interface AlfaService {
+
+	/**
+	 * Add a Notiz (note) to a Akte (file) of a Vorgang
+	 * 
+	 * @param vorgangId Id for the Vorgang to add the note to it.
+	 * @param text      Content of the Note.
+	 */
+	public void addAktenNotiz(OzgCloudVorgangId vorgangId, String text);
+}
diff --git a/api-lib-core/src/main/java/de/ozgcloud/apilib/alfa/dummy/DummyAlfaService.java b/api-lib-core/src/main/java/de/ozgcloud/apilib/alfa/dummy/DummyAlfaService.java
new file mode 100644
index 0000000..dec1c02
--- /dev/null
+++ b/api-lib-core/src/main/java/de/ozgcloud/apilib/alfa/dummy/DummyAlfaService.java
@@ -0,0 +1,16 @@
+package de.ozgcloud.apilib.alfa.dummy;
+
+import de.ozgcloud.apilib.alfa.AlfaService;
+import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
+import lombok.extern.java.Log;
+
+@Log
+public class DummyAlfaService implements AlfaService {
+
+	@Override
+	public void addAktenNotiz(OzgCloudVorgangId vorgangId, String text) {
+		// does nothing dummy implementation
+		LOG.info("Create Note on Alfa: " + text);
+	}
+
+}
diff --git a/api-lib-demo/src/main/java/de/ozgcloud/apilib/demo/DemoRunner.java b/api-lib-demo/src/main/java/de/ozgcloud/apilib/demo/DemoRunner.java
index b3709fc..9053188 100644
--- a/api-lib-demo/src/main/java/de/ozgcloud/apilib/demo/DemoRunner.java
+++ b/api-lib-demo/src/main/java/de/ozgcloud/apilib/demo/DemoRunner.java
@@ -5,6 +5,7 @@ import org.springframework.context.ApplicationListener;
 import org.springframework.context.event.ContextRefreshedEvent;
 import org.springframework.stereotype.Component;
 
+import de.ozgcloud.apilib.alfa.AlfaService;
 import de.ozgcloud.apilib.file.OzgCloudFileId;
 import de.ozgcloud.apilib.file.OzgCloudFileService;
 import de.ozgcloud.apilib.vorgang.OzgCloudVorgangId;
@@ -13,17 +14,22 @@ import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService;
 @Component
 class DemoRunner implements ApplicationListener<ContextRefreshedEvent> {
 
+	private static final OzgCloudVorgangId VORGANG_ID = OzgCloudVorgangId.from("64bfd6597a08cf6e8a5185c6");
+
 	@Autowired
 	private OzgCloudVorgangService vorgangService;
 	@Autowired
 	private OzgCloudFileService fileService;
+	@Autowired
+	private AlfaService alfaService;
 
 	@Override
 	public void onApplicationEvent(ContextRefreshedEvent event) {
-		System.out.println(vorgangService.getById(OzgCloudVorgangId.from("64bfd6597a08cf6e8a5185c6")));
+		System.out.println(vorgangService.getById(VORGANG_ID));
 
 		System.out.println(fileService.getFile(OzgCloudFileId.from("630363d5b5816c0d8efd6f19")));
 
+		alfaService.addAktenNotiz(VORGANG_ID, "Hello World!");
 	}
 
 }
diff --git a/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java b/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java
index 41f4957..756f888 100644
--- a/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java
+++ b/ozg-cloud-spring-boot-starter/src/main/java/de/ozgcloud/client/autoconfigure/OzgCloudClientAutoConfiguration.java
@@ -11,6 +11,8 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Import;
 
+import de.ozgcloud.apilib.alfa.AlfaService;
+import de.ozgcloud.apilib.alfa.dummy.DummyAlfaService;
 import de.ozgcloud.apilib.common.callcontext.DefaultOzgCloudCallContextProvider;
 import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextAttachingInterceptor;
 import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider;
@@ -72,4 +74,10 @@ public class OzgCloudClientAutoConfiguration {
 	OzgCloudCallContextProvider callContextProvider(ApplicationContext ctxt) {
 		return new DefaultOzgCloudCallContextProvider(ctxt);
 	}
+
+	@Bean
+	@ConditionalOnMissingBean
+	AlfaService alfaService() {
+		return new DummyAlfaService();
+	}
 }
-- 
GitLab