From 7a6ba42eb01ca1863e5c4b28a2139380eec2f0ac Mon Sep 17 00:00:00 2001
From: Martin Vogel <martin.vogel@sinc.de>
Date: Wed, 22 Jun 2022 18:43:55 +0200
Subject: [PATCH] #414 Add new sample calls for clients with minimal steps to
 send and receive a submission

---
 .../java/de/fitko/fitconnect/TestRunner.java  | 36 ++++++++++---------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/client/src/main/java/de/fitko/fitconnect/TestRunner.java b/client/src/main/java/de/fitko/fitconnect/TestRunner.java
index 865bcfab6..30d029f6f 100644
--- a/client/src/main/java/de/fitko/fitconnect/TestRunner.java
+++ b/client/src/main/java/de/fitko/fitconnect/TestRunner.java
@@ -1,36 +1,35 @@
 package de.fitko.fitconnect;
 
-import de.fitko.fitconnect.api.domain.model.submission.CreatedSubmission;
-import de.fitko.fitconnect.client.*;
-import de.fitko.fitconnect.client.di.FluentSenderClient;
+import de.fitko.fitconnect.api.domain.model.metadata.attachment.Attachment;
+import de.fitko.fitconnect.api.domain.model.submission.SubmissionForPickup;
+import de.fitko.fitconnect.client.ClientFactory;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Optional;
 import java.util.UUID;
 
 public class TestRunner {
 
-    public static void main(String[] args) {
+    public static void main(final String[] args) {
         senderSample();
+        subscriberSample();
     }
 
     private static void senderSample() {
 
-        // No DI
+        // Straight call in one go
         ClientFactory.senderClient().send(UUID.randomUUID(), Collections.emptyList());
-
-        // With Guice DI straight call in one go
-        FluentSenderClient.build().send(UUID.randomUUID(), Collections.emptyList());
-        FluentSenderClient.build().send(UUID.randomUUID(), Collections.emptyList(), "some json or xml");
+        ClientFactory.senderClient().send(UUID.randomUUID(), Collections.emptyList(), "some json or xml");
 
         // Without data
-        FluentSenderClient.build()
+        ClientFactory.senderClient()
                 .withDestination(UUID.randomUUID())
                 .withAttachments(Collections.emptyList())
                 .submit();
 
         // With data
-        FluentSenderClient.build()
+        ClientFactory.senderClient()
                 .withDestination(UUID.randomUUID())
                 .withAttachments(Collections.emptyList())
                 .withData("some json or xml")
@@ -39,13 +38,16 @@ public class TestRunner {
 
     private static void subscriberSample() {
 
-        var client = ClientFactory.subscriberClient();
-
-        List<CreatedSubmission> submissions = client.getAvailableSubmissions(UUID.randomUUID(), 0, 100);
-
-        // filter submissions for requested one
-        CreatedSubmission submission = client.requestSubmission(UUID.fromString("123"));
+        final var client = ClientFactory.subscriberClient();
+        final var submissions = client.getAvailableSubmissions(UUID.randomUUID());
+        final List<Attachment> attachments = client
+                .requestSubmission(getFirstSubmission(submissions))
+                .getAttachments();
+    }
 
+    private static UUID getFirstSubmission(final List<SubmissionForPickup> submissions) {
+        final Optional<SubmissionForPickup> submission = submissions.stream().findFirst();
+        return submission.isPresent() ? submission.get().getSubmissionId() : null;
     }
 
 }
-- 
GitLab