From 8cb277112e9e106fb89911e3f419e0498fcd434f Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Fri, 7 Mar 2025 13:42:38 +0100
Subject: [PATCH] OZG-4097 readme: Update sequence diagrams

---
 README.md | 56 ++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 37 insertions(+), 19 deletions(-)

diff --git a/README.md b/README.md
index e985ee9..cba21e6 100644
--- a/README.md
+++ b/README.md
@@ -11,34 +11,47 @@ Senden und Empfangen von Postfach-Nachrichten über die OSI-Postfach-Facade 2.0
     participant A as file-manager
     participant B as Client
     participant C as OPF
-    activate A
-    activate C
-    activate B
     activate N
     N->>B: OsiPostfachRemoteService::sendMessage
-    Note left of B: (1) Hochladen der Anhänge
+    activate B
+    Note left of B: (1) Nachschlagen einer Empfänger-Postfach-Adresse
+    B->>C: POST /MailboxDirectory/v1/Lookup
+    activate C
+    C-->>B: {mailboxId}
+    deactivate C
+    Note left of B: (2) Hochladen der Anhänge
     B->>A: GRPC findBinaryFilesMetaData
+    activate A
     A-->>B: {Liste an Anhang-Metadaten}
+    deactivate A
     loop Für jeden Anhang
       B->>A: GRPC GetBinaryFileContent
+      activate A
       loop Für jeden Daten-Chunk
-        B->>C: POST /Quarantine/v1/Upload/Chunked (chunk) 
+        B->>C: POST /Quarantine/v1/Upload/Chunked (chunk)
+        activate C
         C-->>B: 
+        deactivate C
       end
       A-->>B: 
+      deactivate A
       B->>C: POST /Quarantine/v1/Upload/Chunked (empty chunk)
+      activate C
       C-->>B: 
+      deactivate C
     end
-    deactivate A
-    Note left of B: (2) Warten auf Prüfung der hochgeladenen Anhänge
+    Note left of B: (3) Warten auf Prüfung der hochgeladenen Anhänge
     loop Regelmäßiges Polling bis alle Anhänge geprüft sind
-      loop Für alle Anhänge
+      loop Für jeden Anhang
         B->>C: GET /Quarantine/v1/Upload/{guid}
-        C-->>B:  
+        activate C
+        C-->>B: 
+        deactivate C
       end
     end
-    Note left of B: (3) Nachricht senden
+    Note left of B: (4) Nachricht senden
     B->>C: POST /MessageExchange/v1/Send/{mailboxId}
+    activate C
     C-->>B: 
     deactivate C
     B-->>N: 
@@ -55,33 +68,37 @@ Senden und Empfangen von Postfach-Nachrichten über die OSI-Postfach-Facade 2.0
     participant A as file-manager
     participant B as Client
     participant C as OPF
-    activate A
-    activate C
-    activate B
     activate N
     N->>B: OsiPostfachRemoteService::receiveMessages
+    activate B
     B->>C: GET /MessageExchange/v1/Receive
+    activate C
     C-->>B: {Liste an Nachrichten-Kennungen (max 100)}
+    deactivate C
     loop Für jede Nachrichten-Kennung (messageId)
       Note left of B: (1) Nachricht abrufen
       B->>C: GET /MessageExchange/v1/Receive/{messageId}
+      activate C
       C-->>B: {Nachricht mit Anhang-Metadaten}
+      deactivate C
       Note left of B: (2) Herunterladen der Anhänge
       loop Für jeden Anhang
         B->>C: GET /MessageExchange/v1/Receive/{messageId}/Attachment/{attachmentId}
+        activate C
         B->>A: GRPC UploadBinaryFileAsStream
+        activate A
         A-->>B: 
+        deactivate A
         C-->>B: 
+        deactivate C
       end
     end
-    deactivate A
-    deactivate C
-    B->>N: {Stream an Postfach-Nachrichten}
+    B-->>N: {Stream an Postfach-Nachrichten}
     deactivate B
     deactivate N
 ```
 
-Der nachrichten-manager erhält von osiv2-postfach einen Stream von Postfach-Nachrichten. Nach der erfolgreichen Verarbeitung einer Nachricht sollte er `OsiPostfachRemoteService::deleteMessage` aufrufen:
+Der nachrichten-manager erhält beim Aufruf von `receiveMessages` einen Stream von Postfach-Nachrichten. Nach der erfolgreichen Verarbeitung einer Nachricht sollte er `deleteMessage` aufrufen:
 
 ```mermaid
 %% Empfangen einer Nachricht
@@ -89,11 +106,12 @@ Der nachrichten-manager erhält von osiv2-postfach einen Stream von Postfach-Nac
     participant N as nachrichten-manager
     participant B as Client
     participant C as OPF
-    activate C
-    activate B
+    
     activate N
     N->>B: OsiPostfachRemoteService::deleteMessage
+    activate B
     B->>C: GET /MessageExchange/v1/Delete/{messageId}
+    activate C
     C->>B: 
     deactivate C
     B-->>N: 
-- 
GitLab