From a6cf4c0e928e4cafcb20892a9234d012377e653e Mon Sep 17 00:00:00 2001
From: Martin Vogel <martin.vogel@sinc.de>
Date: Tue, 21 Jun 2022 22:45:19 +0200
Subject: [PATCH] #414 Add single overloaded methods for sending a submission
 directly without method chaining

---
 .../java/de/fitko/fitconnect/TestRunner.java  |  4 +++
 .../fitko/fitconnect/client/SenderClient.java | 29 +++++++++++++++++++
 2 files changed, 33 insertions(+)

diff --git a/client/src/main/java/de/fitko/fitconnect/TestRunner.java b/client/src/main/java/de/fitko/fitconnect/TestRunner.java
index d2f148e55..420774113 100644
--- a/client/src/main/java/de/fitko/fitconnect/TestRunner.java
+++ b/client/src/main/java/de/fitko/fitconnect/TestRunner.java
@@ -16,6 +16,10 @@ public class TestRunner {
 
     private static void senderSample() {
 
+        // straight call in one go
+        SenderClient.build().send(UUID.randomUUID(), Collections.emptyList());
+        SenderClient.build().send(UUID.randomUUID(), Collections.emptyList(), "some json or xml");
+
         // Without data
         SenderClient.build()
                 .withDestination(UUID.randomUUID())
diff --git a/client/src/main/java/de/fitko/fitconnect/client/SenderClient.java b/client/src/main/java/de/fitko/fitconnect/client/SenderClient.java
index d76d56081..6b0677fcf 100644
--- a/client/src/main/java/de/fitko/fitconnect/client/SenderClient.java
+++ b/client/src/main/java/de/fitko/fitconnect/client/SenderClient.java
@@ -42,6 +42,12 @@ public class SenderClient extends Client {
          * @return the upload step for attachments
          */
         WithAttachments withDestination(UUID destinationId);
+
+        SubmissionResponse send(UUID destinationId, List<File> attachments, String data);
+
+        SubmissionResponse send(UUID destinationId, List<File> attachments, byte[] data);
+
+        SubmissionResponse send(UUID destinationId, List<File> attachments);
     }
 
     public interface WithAttachments {
@@ -98,6 +104,29 @@ public class SenderClient extends Client {
             return this;
         }
 
+        @Override
+        public SubmissionResponse send(UUID destinationId, List<File> attachments, String data) {
+            return this.withDestination(destinationId)
+                    .withAttachments(attachments)
+                    .withData(data)
+                    .submit();
+        }
+
+        @Override
+        public SubmissionResponse send(UUID destinationId, List<File> attachments, byte[] data) {
+            return this.withDestination(destinationId)
+                    .withAttachments(attachments)
+                    .withData(data)
+                    .submit();
+        }
+
+        @Override
+        public SubmissionResponse send(UUID destinationId, List<File> attachments) {
+            return this.withDestination(destinationId)
+                    .withAttachments(attachments)
+                    .submit();
+        }
+
         @Override
         public Submit withData(String data) {
             return withData(data.getBytes(StandardCharsets.UTF_8));
-- 
GitLab