diff --git a/client/src/main/java/dev/fitko/fitconnect/client/subscriber/SubmissionReceiver.java b/client/src/main/java/dev/fitko/fitconnect/client/subscriber/SubmissionReceiver.java index e7703c9613cd93a5b37785bc5910774ef6b8edc0..29cf52d81b1d3c38db8d2d91e9c89505489cd4ea 100644 --- a/client/src/main/java/dev/fitko/fitconnect/client/subscriber/SubmissionReceiver.java +++ b/client/src/main/java/dev/fitko/fitconnect/client/subscriber/SubmissionReceiver.java @@ -120,23 +120,23 @@ public class SubmissionReceiver { private void validateMetadata(final Metadata metadata, final Submission submission, final AuthenticationTags authenticationTags) { final ValidationResult validationResult = subscriber.validateMetadata(metadata, submission, authenticationTags); - evaluateValidationResult(submission, validationResult, "Metadata is invalid"); + evaluateValidationResult(submission, validationResult); } private void validateAttachments(final List<AttachmentForValidation> attachmentForValidation, final Submission submission, final AuthenticationTags authenticationTags) { final ValidationResult validationResult = subscriber.validateAttachments(attachmentForValidation, authenticationTags); - evaluateValidationResult(submission, validationResult, "Attachment validation failed"); + evaluateValidationResult(submission, validationResult); } private void validateData(final Submission submission, final Metadata metadata, final byte[] decryptedData, final AuthenticationTags authenticationTags) { final ValidationResult validationResult = subscriber.validateData(decryptedData, submission, metadata, authenticationTags); - evaluateValidationResult(submission, validationResult, "Data is invalid"); + evaluateValidationResult(submission, validationResult); } - private void evaluateValidationResult(final Submission submission, final ValidationResult validationResult, final String errorMessage) throws SubmissionRequestException { + private void evaluateValidationResult(final Submission submission, final ValidationResult validationResult) throws SubmissionRequestException { if (validationResult.hasProblems()) { rejectSubmissionWithProblem(submission, validationResult.getProblems().toArray(new Problem[0])); - throw new SubmissionRequestException(validationResult.hasError() ? validationResult.getError().getMessage() : errorMessage); + throw new SubmissionRequestException(validationResult.getProblems().stream().map(Problem::getDetail).collect(Collectors.joining())); } else if (validationResult.hasError()) { LOGGER.error(validationResult.getError().getMessage(), validationResult.getError()); throw new SubmissionRequestException(validationResult.getError().getMessage(), validationResult.getError());