From 030488bb7ff9572f35032d80d4101c06cfc98bf5 Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Tue, 2 Jul 2019 14:19:41 +0200 Subject: Implement And Integrate tnvz:QueryPersonRequest. - Merge TnvzClient and TnvzResultVerifier to TnvzHelper; TnvzHelper now builds the QueryPersonRequest, sends it to the tnvz port and evaluates the result. - Publish some interfaces in Mzs2MsgConverter because they are needed by TnvzHelper. - Generalize MsgClientFactory to ClientFactory such that it can be used to generate arbitrary SOAP clients (e.g. also for tnvz!). Schema Changes to accomodate Tnvz's QueryPersonRequest: - Add optional tnvz:AustrianAddressesOnly and optional TnvzMetaData to mzs:mzs:DeliveryRequest. Removed Unit Tests: - Remove subset of SameThreadDeliveryPipeline testcases (mimetype related) because its logic moved to TnvzHelper. --- .../at/gv/egiz/moazs/tnvz/TnvzResultVerifier.java | 63 ---------------------- 1 file changed, 63 deletions(-) delete mode 100644 src/main/java/at/gv/egiz/moazs/tnvz/TnvzResultVerifier.java (limited to 'src/main/java/at/gv/egiz/moazs/tnvz/TnvzResultVerifier.java') diff --git a/src/main/java/at/gv/egiz/moazs/tnvz/TnvzResultVerifier.java b/src/main/java/at/gv/egiz/moazs/tnvz/TnvzResultVerifier.java deleted file mode 100644 index 9992246..0000000 --- a/src/main/java/at/gv/egiz/moazs/tnvz/TnvzResultVerifier.java +++ /dev/null @@ -1,63 +0,0 @@ -package at.gv.egiz.moazs.tnvz; - -import at.gv.egiz.moazs.MoaZSException; -import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType; -import at.gv.zustellung.tnvz.xsd.PersonResultType; -import org.springframework.stereotype.Component; - -import java.util.Collection; -import java.util.List; - -import static at.gv.egiz.moazs.MoaZSException.moaZSExceptionBuilder; -import static java.lang.String.join; -import static java.util.stream.Collectors.toSet; - -@Component -public class TnvzResultVerifier { - - public void verify(DeliveryRequestType request, PersonResultType result) { - - if (result.getError() != null) { - var info = result.getError().getErrorInfo(); - throw moaZSExceptionBuilder("Receiver is not addressable. Reason: %s", info.getText()) - .withErrorCode(info.getCode()) - .withMzsRequest(request) - .withTnvzResult(result) - .build(); - } - - var mismatchedTypes = findMimeTypeMismatches(result, request); - - if (!mismatchedTypes.isEmpty()) { - var template = "Request contains attachment of type(s) %s, but receiver only accepts attachments" + - " of type(s) %s."; - var acceptedTypesString = join(",", getAcceptedTypes(result)); - var mismatchedTypesString = join(",", mismatchedTypes); - throw moaZSExceptionBuilder(template, mismatchedTypesString, acceptedTypesString) - .withErrorCode(MoaZSException.ERROR_MZS_MIMETYPE_MISSMATCH) - .withMzsRequest(request) - .withTnvzResult(result) - .build(); - } - } - - private Collection findMimeTypeMismatches(PersonResultType result, DeliveryRequestType request) { - var acceptedTypes = getAcceptedTypes(result); - - if (acceptedTypes.contains("*/*")) { - return List.of(); - } - - var typesInRequest = request.getPayload().stream() - .map(DeliveryRequestType.Payload::getMIMEType) - .collect(toSet()); - - typesInRequest.removeAll(acceptedTypes); - - return typesInRequest; - } - - private List getAcceptedTypes(PersonResultType result) { - return result.getSuccess().getMimeTypeList().getMimeType(); - } -} -- cgit v1.2.3