diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/event/SecurityEventToken.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/event/SecurityEventToken.java deleted file mode 100644 index 9104fd7c5db83edbda3bda797c820c819690058e..0000000000000000000000000000000000000000 --- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/event/SecurityEventToken.java +++ /dev/null @@ -1,4 +0,0 @@ -package de.fitko.fitconnect.api.domain.model.event; - -public class SecurityEventToken { -} diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/events/SecurityEventToken.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/events/SecurityEventToken.java new file mode 100644 index 0000000000000000000000000000000000000000..177de51519ad7a4e2416344226433039a6fafab1 --- /dev/null +++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/events/SecurityEventToken.java @@ -0,0 +1,4 @@ +package de.fitko.fitconnect.api.domain.model.events; + +public class SecurityEventToken { +} diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/CreatedSubmission.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionForPickup.java similarity index 91% rename from api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/CreatedSubmission.java rename to api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionForPickup.java index d07b2de501c0b766674c26d70c6d54a6cdbcfcab..4c179568b54a015dda2d6828f2e752b2825f4848 100644 --- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/CreatedSubmission.java +++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionForPickup.java @@ -6,7 +6,7 @@ import lombok.Value; import java.util.UUID; @Value -public class CreatedSubmission { +public class SubmissionForPickup { @JsonProperty("destinationId") private final UUID destinationId; diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionRequest.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionSubmit.java similarity index 95% rename from api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionRequest.java rename to api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionSubmit.java index 0b691c7ba65675947f2b5548ed4df7dcfbba27ec..a90e0398aaf566908a6e9605f6a313245e36ea17 100644 --- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionRequest.java +++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionSubmit.java @@ -14,7 +14,7 @@ import java.util.UUID; @Setter @Value @Builder -public class SubmissionRequest { +public class SubmissionSubmit { @JsonProperty("destinationId") UUID destinationId; diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/AvailableSubmissions.java b/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionsForPickup.java similarity index 67% rename from api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/AvailableSubmissions.java rename to api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionsForPickup.java index 07dc7552dbc4e6da3ff0571947f01fae859df9fa..54f0f14a0ebd3e2d4295e9d958401ccfcd8d16dd 100644 --- a/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/AvailableSubmissions.java +++ b/api/src/main/java/de/fitko/fitconnect/api/domain/model/submission/SubmissionsForPickup.java @@ -1,13 +1,16 @@ package de.fitko.fitconnect.api.domain.model.submission; + import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; import lombok.Value; +import java.util.Collections; import java.util.List; @Value -public class AvailableSubmissions { - +@Builder +public class SubmissionsForPickup{ @JsonProperty("count") int count; @@ -18,5 +21,5 @@ public class AvailableSubmissions { int totalCount; @JsonProperty("submissions") - List<CreatedSubmission> submissions; -} + List<SubmissionForPickup> submissions = Collections.emptyList(); +} \ No newline at end of file diff --git a/api/src/main/java/de/fitko/fitconnect/api/domain/validation/ValidationResult.java b/api/src/main/java/de/fitko/fitconnect/api/domain/validation/ValidationResult.java index 0293bfbeddd683860d1d44d37dd93b1b2d93d04e..c9f74030f8932f433b4b40c416da9c1df68e76aa 100644 --- a/api/src/main/java/de/fitko/fitconnect/api/domain/validation/ValidationResult.java +++ b/api/src/main/java/de/fitko/fitconnect/api/domain/validation/ValidationResult.java @@ -1,44 +1,39 @@ package de.fitko.fitconnect.api.domain.validation; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - /** * Wrapper for validations including errors that occurred */ public class ValidationResult { private final boolean isValid; - private final List<Exception> errors; + private Exception error; private ValidationResult(final boolean isValid) { this.isValid = isValid; - this.errors = Collections.emptyList(); } - private ValidationResult(final boolean isValid, Exception... exceptions) { + private ValidationResult(final boolean isValid, Exception exception) { this.isValid = isValid; - this.errors = Arrays.asList(exceptions); + this.error = exception; } public static ValidationResult ok() { return new ValidationResult(true); } - public static ValidationResult error(Exception... exceptions) { - return new ValidationResult(false, exceptions); + public static ValidationResult error(Exception exception) { + return new ValidationResult(false, exception); } public boolean isValid() { return this.isValid; } - public boolean hasErrors() { - return !isValid || !errors.isEmpty(); + public boolean hasError() { + return !isValid || error != null; } - public List<Exception> getErrors() { - return this.errors; + public Exception getError() { + return this.error; } } diff --git a/core/src/main/java/de/fitko/fitconnect/core/SubmissionSender.java b/core/src/main/java/de/fitko/fitconnect/core/SubmissionSender.java index fc12ed0f868a3efa063ba6ab2abd3c01d8f0eabf..68e965b1f49219cb96fc321d654f91e41db9e49d 100644 --- a/core/src/main/java/de/fitko/fitconnect/core/SubmissionSender.java +++ b/core/src/main/java/de/fitko/fitconnect/core/SubmissionSender.java @@ -8,10 +8,10 @@ import de.fitko.fitconnect.api.domain.model.metadata.attachment.Attachment; import de.fitko.fitconnect.api.domain.model.metadata.attachment.signature.Hash__1; import de.fitko.fitconnect.api.domain.model.metadata.attachment.signature.Type; import de.fitko.fitconnect.api.domain.model.metadata.data.Data; -import de.fitko.fitconnect.api.domain.model.submission.SubmissionRequest; -import de.fitko.fitconnect.api.domain.model.submission.CreatedSubmission; +import de.fitko.fitconnect.api.domain.model.submission.SubmissionForPickup; +import de.fitko.fitconnect.api.domain.model.submission.SubmissionSubmit; import de.fitko.fitconnect.api.domain.validation.ValidationResult; -import de.fitko.fitconnect.api.exceptions.internal.AuthenticationException; +import de.fitko.fitconnect.api.exceptions.AttachmentCreationException; import de.fitko.fitconnect.api.services.Sender; import de.fitko.fitconnect.api.services.auth.OAuthService; import de.fitko.fitconnect.api.services.crypto.CryptoService; @@ -24,7 +24,6 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; import java.util.List; -import java.util.Optional; import java.util.UUID; public class SubmissionSender implements Sender { @@ -35,8 +34,7 @@ public class SubmissionSender implements Sender { private final CertificateValidator certificateValidator; private final CryptoService cryptoService; private final MetadataService metadataService; - - private HashUtil hashUtil = new HashUtil(); + private final HashUtil hashUtil = new HashUtil(); @Inject public SubmissionSender(final OAuthService authService, @@ -51,77 +49,72 @@ public class SubmissionSender implements Sender { @Override - public ValidationResult validatePublicKey(RSAKey publicKey) { + public ValidationResult validatePublicKey(final RSAKey publicKey) { return certificateValidator.validatePublicKey(publicKey); } @Override - public Optional<Data> encryptSubmissionData(RSAKey publicKey, Data data) { + public Data encryptSubmissionData(final RSAKey publicKey, final Data data) { throw new UnsupportedOperationException("not yet implemented"); } @Override - public Optional<Attachment> encryptAttachment(RSAKey publicKey, Attachment attachment) { + public Attachment encryptAttachment(final RSAKey publicKey, final Attachment attachment) { throw new UnsupportedOperationException("not yet implemented"); } @Override - public Optional<OAuthToken> retrieveOAuthToken(String clientId, String clientSecret, String... scope) { - try { - final OAuthToken token = authService.authenticate(clientId, clientSecret, scope); - logger.debug("successfully retrieved token {}", token.getAccessToken()); - return Optional.of(token); - } catch (AuthenticationException e) { - logger.error("client could not be authenticated", e.getMessage()); - return Optional.empty(); - } + public OAuthToken retrieveOAuthToken(final String clientId, final String clientSecret, final String... scope) { + final OAuthToken token = authService.authenticate(clientId, clientSecret, scope); + logger.debug("Successfully retrieved OAuth token: {}", token.getAccessToken()); + return token; } @Override - public Optional<Metadata> createMetadata(Data data, List<Attachment> attachments) { + public Metadata createMetadata(final Data data, final List<Attachment> attachments) { throw new UnsupportedOperationException("not yet implemented"); } @Override - public Optional<Metadata> createMetadata(List<Attachment> attachments) { + public Metadata createMetadata(final List<Attachment> attachments) { throw new UnsupportedOperationException("not yet implemented"); } @Override - public Optional<CreatedSubmission> createSubmission(SubmissionRequest submission) { + public SubmissionForPickup createSubmission(final SubmissionSubmit submission) { throw new UnsupportedOperationException("not yet implemented"); } @Override - public Optional<CreatedSubmission> sendSubmission(UUID submissionId, Metadata encryptedMetadata) { + public SubmissionForPickup sendSubmission(final UUID submissionId, final Metadata encryptedMetadata) { throw new UnsupportedOperationException("not yet implemented"); } @Override - public void uploadAttachments(UUID submissionId, List<Attachment> encryptedAttachments) { + public void uploadAttachments(final UUID submissionId, final List<Attachment> encryptedAttachments) { throw new UnsupportedOperationException("not yet implemented"); } @Override - public Optional<Attachment> createAttachment(File file) { + public Attachment createAttachment(final File file) { try { - String hashedFileContent = hashUtil.createHashFromFile(file); - Hash__1 hash = new Hash__1(); + final String hashedFileContent = hashUtil.createHashFromFile(file); + final Hash__1 hash = new Hash__1(); hash.setType(Type.SHA_512); hash.setContent(hashedFileContent); - return Optional.ofNullable(Attachment.builder() + return Attachment.builder() .attachmentId(UUID.randomUUID()) .filename(file.getName()) .hash(hash) - .build()); - } catch (IOException e) { + .build(); + } catch (final IOException e) { logger.error("Attachment could not be read", e); - return Optional.empty(); + throw new AttachmentCreationException(e.getMessage(), e); } } @Override - public RSAKey getEncryptionKeyForDestination(UUID destinationId) { + public RSAKey getEncryptionKeyForDestination(final UUID destinationId) { throw new UnsupportedOperationException("not yet implemented"); }