aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/mzs/MzsService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/mzs/MzsService.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/mzs/MzsService.java28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/mzs/MzsService.java b/src/main/java/at/gv/egiz/moazs/mzs/MzsService.java
index 774f7f4..e031b0b 100644
--- a/src/main/java/at/gv/egiz/moazs/mzs/MzsService.java
+++ b/src/main/java/at/gv/egiz/moazs/mzs/MzsService.java
@@ -4,8 +4,13 @@ import at.gv.egiz.moazs.MoaZSException;
import at.gv.egiz.moazs.pipeline.DeliveryPipeline;
import at.gv.egiz.moazs.preprocess.DeliveryRequestAugmenter;
import at.gv.egiz.moazs.repository.DeliveryRepository;
+import at.gv.egiz.moazs.scheme.Msg2MzsConverter;
+import at.gv.egiz.moazs.scheme.Mzs2MsgConverter;
import at.gv.zustellung.app2mzs.xsd.App2MzsPortType;
import at.gv.zustellung.app2mzs.xsd.DeliveryRequestType;
+import at.gv.zustellung.app2mzs.xsd.DeliveryResponseType;
+import at.gv.zustellung.app2mzs.xsd.PartialSuccessType;
+import at.gv.zustellung.msg.xsd.DeliveryAnswerType;
import at.gv.zustellung.msg.xsd.DeliveryRequestStatusType;
import org.apache.cxf.annotations.SchemaValidation;
import org.slf4j.Logger;
@@ -18,8 +23,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import static at.gv.egiz.moazs.MoaZSException.moaZSException;
-import static at.gv.zustellung.msg.xsd.DeliveryAnswerType.deliveryAnswerTypeBuilder;
-import static at.gv.zustellung.msg.xsd.DeliveryRequestStatusType.deliveryRequestStatusTypeBuilder;
+import static at.gv.zustellung.app2mzs.xsd.PartialSuccessType.partialSuccessTypeBuilder;
import static java.lang.String.format;
import static java.util.concurrent.CompletableFuture.supplyAsync;
@@ -37,18 +41,20 @@ public class MzsService implements App2MzsPortType {
private final DeliveryPipeline pipeline;
private final MzsClient appClient;
private final DeliveryRequestAugmenter augmenter;
+ private final Msg2MzsConverter converter;
@Autowired
public MzsService(DeliveryRepository repository, DeliveryPipeline pipeline, MzsClient appClient,
- DeliveryRequestAugmenter augmenter) {
+ DeliveryRequestAugmenter augmenter, Msg2MzsConverter converter) {
this.repository = repository;
this.pipeline = pipeline;
this.appClient = appClient;
this.augmenter = augmenter;
+ this.converter = converter;
}
@Override
- public DeliveryRequestStatusType app2Mzs(
+ public DeliveryResponseType app2Mzs(
@WebParam(partName = "DeliveryRequest",
name = "DeliveryRequest")
DeliveryRequestType deliveryRequest) {
@@ -56,13 +62,15 @@ public class MzsService implements App2MzsPortType {
var appDeliveryID = deliveryRequest.getMetaData().getAppDeliveryID();
var future = supplyAsync(() -> augmenter.augment(deliveryRequest))
- .thenApply(this::process);
+ .thenApply(this::process)
+ .thenApply(status -> converter.convert(status, repository.getSignedDeliveryRequestStatus(appDeliveryID)));
try {
return future.get(TIMEOUT_FOR_ANWSER, TimeUnit.SECONDS);
} catch (TimeoutException e) {
- future.thenAccept(appClient::sendNotification);
logger.info("Answer Timed Out", e);
+
+ future.thenAccept(appClient::sendNotification);
return generatePartialSuccessResponse(appDeliveryID);
} catch (Exception e ) {
@@ -86,14 +94,14 @@ public class MzsService implements App2MzsPortType {
}
- private DeliveryRequestStatusType generatePartialSuccessResponse(String appDeliveryId) {
+ private DeliveryResponseType generatePartialSuccessResponse(String appDeliveryId) {
- var answer = deliveryAnswerTypeBuilder()
+ var partial = partialSuccessTypeBuilder()
.withAppDeliveryID(appDeliveryId)
.build();
- return deliveryRequestStatusTypeBuilder()
- .withPartialSuccess(answer)
+ return DeliveryResponseType.deliveryResponseTypeBuilder()
+ .withPartialSuccess(partial)
.build();
}