aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java b/src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java
index 20252ff..5a8e377 100644
--- a/src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java
+++ b/src/main/java/at/gv/egiz/moazs/pipeline/SameThreadDeliveryPipeline.java
@@ -2,37 +2,39 @@ package at.gv.egiz.moazs.pipeline;
import at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.DeliveryRequestType;
+import at.gv.egiz.moazs.TnvzClient;
import at.gv.egiz.moazs.repository.DeliveryRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
-import java.util.Optional;
-
-import static java.text.MessageFormat.format;
-
@Component
@Profile("!cluster")
public class SameThreadDeliveryPipeline implements DeliveryPipeline {
private final DeliveryRepository repository;
+ private final TnvzClient tnvzClient;
- public SameThreadDeliveryPipeline(@Autowired DeliveryRepository repository) {
+ public SameThreadDeliveryPipeline(@Autowired DeliveryRepository repository, TnvzClient tnvzClient) {
this.repository = repository;
+ this.tnvzClient = tnvzClient;
}
@Override
public void processRequest(String appDeliveryId) {
- Optional<DeliveryRequestType> request = repository.getDeliveryRequest(appDeliveryId);
- if (request.isEmpty()) {
- throw new RuntimeException(format(
- "Request with appDeliveryId = {} does not exist.", appDeliveryId));
- }
-
- //do business logic
+ var request = repository.getDeliveryRequest(appDeliveryId).orElseThrow();
+ checkAddressability(request);
//store response to repository
}
+ private void checkAddressability(DeliveryRequestType request) {
+ if (request.getConfig().isPerformQueryPersonRequest()) {
+ if (!tnvzClient.isAddressable(request.getReceiver())) {
+ throw new RuntimeException("Receiver is not addressable.");
+ }
+ }
+ }
+
}