From 9356b7aa2f94f64f9be2260dbd93e68752fdc41e Mon Sep 17 00:00:00 2001 From: Henry Borasch <Henry.Borasch@sinc.de> Date: Tue, 28 Feb 2023 13:19:28 +0100 Subject: [PATCH] save temporary changes --- .../model/submission}/SubmissionPayload.java | 2 +- .../dev/fitko/fitconnect/api/services/Sender.java | 7 ++----- .../api/services/schema/SchemaProvider.java | 10 ++++++++++ .../dev/fitko/fitconnect/client/SenderClient.java | 2 +- .../fitconnect/client/cli/CommandExecutor.java | 2 +- .../client/sender/SubmissionBuilder.java | 2 +- .../fitconnect/client/sender/steps/BuildStep.java | 2 +- .../strategies/SendNewSubmissionStrategy.java | 4 +--- .../fitconnect/client/util/ValidDataGuard.java | 2 +- .../fitko/fitconnect/client/SenderClientTest.java | 2 +- .../client/cli/CommandLineClientTest.java | 2 +- .../fitconnect/client/util/ValidDataGuardTest.java | 2 +- .../fitko/fitconnect/core/SubmissionSender.java | 8 ++------ .../core/schema/SchemaResourceProvider.java | 14 ++++++++++++++ 14 files changed, 38 insertions(+), 23 deletions(-) rename {client/src/main/java/dev/fitko/fitconnect/client/sender/model => api/src/main/java/dev/fitko/fitconnect/api/domain/model/submission}/SubmissionPayload.java (94%) diff --git a/client/src/main/java/dev/fitko/fitconnect/client/sender/model/SubmissionPayload.java b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/submission/SubmissionPayload.java similarity index 94% rename from client/src/main/java/dev/fitko/fitconnect/client/sender/model/SubmissionPayload.java rename to api/src/main/java/dev/fitko/fitconnect/api/domain/model/submission/SubmissionPayload.java index fc7956049..f276501e0 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/sender/model/SubmissionPayload.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/domain/model/submission/SubmissionPayload.java @@ -1,4 +1,4 @@ -package dev.fitko.fitconnect.client.sender.model; +package dev.fitko.fitconnect.api.domain.model.submission; import dev.fitko.fitconnect.api.domain.model.metadata.data.MimeType; import dev.fitko.fitconnect.api.domain.model.submission.ServiceType; diff --git a/api/src/main/java/dev/fitko/fitconnect/api/services/Sender.java b/api/src/main/java/dev/fitko/fitconnect/api/services/Sender.java index 1078da6fa..ecee117fa 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/services/Sender.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/services/Sender.java @@ -8,10 +8,7 @@ import dev.fitko.fitconnect.api.domain.model.event.authtags.AuthenticationTags; import dev.fitko.fitconnect.api.domain.model.metadata.Metadata; import dev.fitko.fitconnect.api.domain.model.metadata.attachment.Attachment; import dev.fitko.fitconnect.api.domain.model.metadata.data.Data; -import dev.fitko.fitconnect.api.domain.model.submission.CreateSubmission; -import dev.fitko.fitconnect.api.domain.model.submission.Submission; -import dev.fitko.fitconnect.api.domain.model.submission.SubmissionForPickup; -import dev.fitko.fitconnect.api.domain.model.submission.SubmitSubmission; +import dev.fitko.fitconnect.api.domain.model.submission.*; import dev.fitko.fitconnect.api.domain.validation.ValidationResult; import dev.fitko.fitconnect.api.exceptions.*; @@ -146,7 +143,7 @@ public interface Sender { * * @return a {@link ValidationResult} with an optional error */ - ValidationResult validateJsonFormat(String json); + ValidationResult validateJsonFormat(SubmissionPayload json); /** * Tests if a given string is well-formed XML syntax. diff --git a/api/src/main/java/dev/fitko/fitconnect/api/services/schema/SchemaProvider.java b/api/src/main/java/dev/fitko/fitconnect/api/services/schema/SchemaProvider.java index 95bf3bedc..af69d63c2 100644 --- a/api/src/main/java/dev/fitko/fitconnect/api/services/schema/SchemaProvider.java +++ b/api/src/main/java/dev/fitko/fitconnect/api/services/schema/SchemaProvider.java @@ -60,4 +60,14 @@ public interface SchemaProvider { * @throws SchemaNotFoundException if the schema is not existing */ String loadDestinationSchema(URI schemaUri) throws SchemaNotFoundException; + + /** + * Load the schema for the submission data. + * + * @param schemaUri uri of the submission data schema that should be loaded + * @return the schema as string + * + * @throws SchemaNotFoundException if the schema is not existing + */ + String loadSubmissionDataSchema(final URI schemaUri) throws SchemaNotFoundException; } \ No newline at end of file diff --git a/client/src/main/java/dev/fitko/fitconnect/client/SenderClient.java b/client/src/main/java/dev/fitko/fitconnect/client/SenderClient.java index 523193e43..4970c09ef 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/SenderClient.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/SenderClient.java @@ -11,7 +11,7 @@ import dev.fitko.fitconnect.api.domain.model.submission.SubmitSubmission; import dev.fitko.fitconnect.api.domain.validation.ValidationResult; import dev.fitko.fitconnect.api.services.Sender; import dev.fitko.fitconnect.client.sender.model.EncryptedSubmissionPayload; -import dev.fitko.fitconnect.client.sender.model.SubmissionPayload; +import dev.fitko.fitconnect.api.domain.model.submission.SubmissionPayload; import dev.fitko.fitconnect.client.sender.strategies.SendEncryptedSubmissionStrategy; import dev.fitko.fitconnect.client.sender.strategies.SendNewSubmissionStrategy; import dev.fitko.fitconnect.client.util.ValidDataGuard; diff --git a/client/src/main/java/dev/fitko/fitconnect/client/cli/CommandExecutor.java b/client/src/main/java/dev/fitko/fitconnect/client/cli/CommandExecutor.java index 7410ce89e..c3f6b15ce 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/cli/CommandExecutor.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/cli/CommandExecutor.java @@ -10,7 +10,7 @@ import dev.fitko.fitconnect.client.cli.batch.ImportRecord; import dev.fitko.fitconnect.client.cli.commands.*; import dev.fitko.fitconnect.client.cli.util.AttachmentDataType; import dev.fitko.fitconnect.client.sender.SubmissionBuilder; -import dev.fitko.fitconnect.client.sender.model.SubmissionPayload; +import dev.fitko.fitconnect.api.domain.model.submission.SubmissionPayload; import dev.fitko.fitconnect.client.subscriber.ReceivedSubmission; import dev.fitko.fitconnect.client.subscriber.model.ReceivedAttachment; import dev.fitko.fitconnect.core.util.StopWatch; diff --git a/client/src/main/java/dev/fitko/fitconnect/client/sender/SubmissionBuilder.java b/client/src/main/java/dev/fitko/fitconnect/client/sender/SubmissionBuilder.java index 89a55fd23..4298f6431 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/sender/SubmissionBuilder.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/sender/SubmissionBuilder.java @@ -2,7 +2,7 @@ package dev.fitko.fitconnect.client.sender; import dev.fitko.fitconnect.api.domain.model.metadata.data.MimeType; import dev.fitko.fitconnect.api.domain.model.submission.ServiceType; -import dev.fitko.fitconnect.client.sender.model.SubmissionPayload; +import dev.fitko.fitconnect.api.domain.model.submission.SubmissionPayload; import dev.fitko.fitconnect.client.sender.steps.*; import lombok.Getter; import org.slf4j.Logger; diff --git a/client/src/main/java/dev/fitko/fitconnect/client/sender/steps/BuildStep.java b/client/src/main/java/dev/fitko/fitconnect/client/sender/steps/BuildStep.java index 2ecd116d6..a5e1defc9 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/sender/steps/BuildStep.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/sender/steps/BuildStep.java @@ -1,6 +1,6 @@ package dev.fitko.fitconnect.client.sender.steps; -import dev.fitko.fitconnect.client.sender.model.SubmissionPayload; +import dev.fitko.fitconnect.api.domain.model.submission.SubmissionPayload; public interface BuildStep { diff --git a/client/src/main/java/dev/fitko/fitconnect/client/sender/strategies/SendNewSubmissionStrategy.java b/client/src/main/java/dev/fitko/fitconnect/client/sender/strategies/SendNewSubmissionStrategy.java index 664109153..fbe3e33e1 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/sender/strategies/SendNewSubmissionStrategy.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/sender/strategies/SendNewSubmissionStrategy.java @@ -2,7 +2,6 @@ package dev.fitko.fitconnect.client.sender.strategies; import com.nimbusds.jose.jwk.RSAKey; import dev.fitko.fitconnect.api.domain.model.destination.Destination; -import dev.fitko.fitconnect.api.domain.model.destination.DestinationService; import dev.fitko.fitconnect.api.domain.model.metadata.ContentStructure; import dev.fitko.fitconnect.api.domain.model.metadata.Hash; import dev.fitko.fitconnect.api.domain.model.metadata.Metadata; @@ -28,7 +27,7 @@ import dev.fitko.fitconnect.api.exceptions.SchemaNotFoundException; import dev.fitko.fitconnect.api.exceptions.SubmissionNotCreatedException; import dev.fitko.fitconnect.api.services.Sender; import dev.fitko.fitconnect.client.sender.model.AttachmentPayload; -import dev.fitko.fitconnect.client.sender.model.SubmissionPayload; +import dev.fitko.fitconnect.api.domain.model.submission.SubmissionPayload; import dev.fitko.fitconnect.core.util.StopWatch; import org.apache.tika.Tika; import org.slf4j.Logger; @@ -41,7 +40,6 @@ import java.net.URLConnection; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; -import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.UUID; diff --git a/client/src/main/java/dev/fitko/fitconnect/client/util/ValidDataGuard.java b/client/src/main/java/dev/fitko/fitconnect/client/util/ValidDataGuard.java index 3fc9bc633..0e15340da 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/util/ValidDataGuard.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/util/ValidDataGuard.java @@ -7,7 +7,7 @@ import dev.fitko.fitconnect.api.domain.model.submission.ServiceType; import dev.fitko.fitconnect.api.domain.validation.ValidationResult; import dev.fitko.fitconnect.api.services.Sender; import dev.fitko.fitconnect.client.sender.model.EncryptedSubmissionPayload; -import dev.fitko.fitconnect.client.sender.model.SubmissionPayload; +import dev.fitko.fitconnect.api.domain.model.submission.SubmissionPayload; import java.net.URI; import java.util.Objects; diff --git a/client/src/test/java/dev/fitko/fitconnect/client/SenderClientTest.java b/client/src/test/java/dev/fitko/fitconnect/client/SenderClientTest.java index 723b1e260..3ae0ca490 100644 --- a/client/src/test/java/dev/fitko/fitconnect/client/SenderClientTest.java +++ b/client/src/test/java/dev/fitko/fitconnect/client/SenderClientTest.java @@ -23,7 +23,7 @@ import dev.fitko.fitconnect.api.services.Sender; import dev.fitko.fitconnect.client.sender.EncryptedSubmissionBuilder; import dev.fitko.fitconnect.client.sender.SubmissionBuilder; import dev.fitko.fitconnect.client.sender.model.EncryptedSubmissionPayload; -import dev.fitko.fitconnect.client.sender.model.SubmissionPayload; +import dev.fitko.fitconnect.api.domain.model.submission.SubmissionPayload; import dev.fitko.fitconnect.client.testutil.LogCaptor; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; diff --git a/client/src/test/java/dev/fitko/fitconnect/client/cli/CommandLineClientTest.java b/client/src/test/java/dev/fitko/fitconnect/client/cli/CommandLineClientTest.java index 61e54c21a..ae4a9f465 100644 --- a/client/src/test/java/dev/fitko/fitconnect/client/cli/CommandLineClientTest.java +++ b/client/src/test/java/dev/fitko/fitconnect/client/cli/CommandLineClientTest.java @@ -11,7 +11,7 @@ import dev.fitko.fitconnect.client.SubscriberClient; import dev.fitko.fitconnect.client.cli.batch.CsvImporter; import dev.fitko.fitconnect.client.cli.batch.ImportRecord; import dev.fitko.fitconnect.client.sender.model.EncryptedSubmissionPayload; -import dev.fitko.fitconnect.client.sender.model.SubmissionPayload; +import dev.fitko.fitconnect.api.domain.model.submission.SubmissionPayload; import dev.fitko.fitconnect.client.subscriber.ReceivedSubmission; import dev.fitko.fitconnect.client.subscriber.model.ReceivedAttachment; import dev.fitko.fitconnect.client.subscriber.model.ReceivedData; diff --git a/client/src/test/java/dev/fitko/fitconnect/client/util/ValidDataGuardTest.java b/client/src/test/java/dev/fitko/fitconnect/client/util/ValidDataGuardTest.java index 6dc3c8699..a3e1453fe 100644 --- a/client/src/test/java/dev/fitko/fitconnect/client/util/ValidDataGuardTest.java +++ b/client/src/test/java/dev/fitko/fitconnect/client/util/ValidDataGuardTest.java @@ -9,7 +9,7 @@ import dev.fitko.fitconnect.api.services.Sender; import dev.fitko.fitconnect.client.sender.EncryptedSubmissionBuilder; import dev.fitko.fitconnect.client.sender.SubmissionBuilder; import dev.fitko.fitconnect.client.sender.model.EncryptedSubmissionPayload; -import dev.fitko.fitconnect.client.sender.model.SubmissionPayload; +import dev.fitko.fitconnect.api.domain.model.submission.SubmissionPayload; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; diff --git a/core/src/main/java/dev/fitko/fitconnect/core/SubmissionSender.java b/core/src/main/java/dev/fitko/fitconnect/core/SubmissionSender.java index f66087eab..eb5cc289f 100644 --- a/core/src/main/java/dev/fitko/fitconnect/core/SubmissionSender.java +++ b/core/src/main/java/dev/fitko/fitconnect/core/SubmissionSender.java @@ -6,10 +6,7 @@ import dev.fitko.fitconnect.api.domain.model.event.EventLogEntry; import dev.fitko.fitconnect.api.domain.model.event.EventStatus; import dev.fitko.fitconnect.api.domain.model.event.authtags.AuthenticationTags; import dev.fitko.fitconnect.api.domain.model.metadata.Metadata; -import dev.fitko.fitconnect.api.domain.model.submission.CreateSubmission; -import dev.fitko.fitconnect.api.domain.model.submission.Submission; -import dev.fitko.fitconnect.api.domain.model.submission.SubmissionForPickup; -import dev.fitko.fitconnect.api.domain.model.submission.SubmitSubmission; +import dev.fitko.fitconnect.api.domain.model.submission.*; import dev.fitko.fitconnect.api.domain.validation.ValidationResult; import dev.fitko.fitconnect.api.services.Sender; import dev.fitko.fitconnect.api.services.crypto.CryptoService; @@ -108,7 +105,6 @@ public class SubmissionSender implements Sender { return keyService.getPublicEncryptionKey(destinationId); } - @Override public Submission sendSubmission(final SubmitSubmission submission) { LOGGER.info("Sending submission {}", submission.getSubmissionId()); @@ -116,7 +112,7 @@ public class SubmissionSender implements Sender { } @Override - public ValidationResult validateJsonFormat(final String json) { + public ValidationResult validateJsonFormat(final SubmissionPayload json) { LOGGER.info("Validating data json format"); return validationService.validateJsonFormat(json); } diff --git a/core/src/main/java/dev/fitko/fitconnect/core/schema/SchemaResourceProvider.java b/core/src/main/java/dev/fitko/fitconnect/core/schema/SchemaResourceProvider.java index 88433e047..cb5cfef45 100644 --- a/core/src/main/java/dev/fitko/fitconnect/core/schema/SchemaResourceProvider.java +++ b/core/src/main/java/dev/fitko/fitconnect/core/schema/SchemaResourceProvider.java @@ -96,6 +96,20 @@ public class SchemaResourceProvider implements SchemaProvider { return schema; } + @Override + public String loadSubmissionDataSchema(final URI schemaUri) throws SchemaNotFoundException { + + String schema; + if(schemaUri.toString().matches("http.+")) { + schema = "load schema from remote"; + } + schema = destinationSchemas.get(schemaUri); + if (schema == null) { + throw new SchemaNotFoundException("Destination schema " + schemaUri.toString() + " is not available."); + } + return schema; + } + private void addSetSchema(final String schema) { setSchemas.put(readIdFromSchema(schema), schema); } -- GitLab