aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java b/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
index e5486d7..5712c2d 100644
--- a/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
+++ b/src/main/java/at/gv/egiz/moazs/repository/InMemoryDeliveryRepository.java
@@ -1,5 +1,6 @@
package at.gv.egiz.moazs.repository;
+import at.gv.e_government.reference.namespace.zustellung.msg.phase2._20181206_.DeliveryRequestStatusType;
import at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.DeliveryRequestType;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
@@ -11,30 +12,45 @@ import org.springframework.stereotype.Repository;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
+import static at.gv.egiz.moazs.util.NullCoalesce.coalesce;
+import static java.util.Optional.ofNullable;
+
@Repository
@Profile("!cluster")
public class InMemoryDeliveryRepository implements DeliveryRepository {
private static final Logger logger = LoggerFactory.getLogger(InMemoryDeliveryRepository.class);
- private static final Cache<String, DeliveryRequestType> rep = CacheBuilder.newBuilder()
+ private static final Cache<String, DeliveryRequestType> requestRepository = CacheBuilder.newBuilder()
.expireAfterWrite(30, TimeUnit.MINUTES)
.build();
- public InMemoryDeliveryRepository() {
- logger.info("InMemoryDeliveryRepository()");
- }
+ private static final Cache<String, DeliveryRequestStatusType> statusRepository = CacheBuilder.newBuilder()
+ .expireAfterWrite(30, TimeUnit.MINUTES)
+ .build();
@Override
public void add(DeliveryRequestType request) {
- String key = request.getMetaData().getAppDeliveryID();
- logger.info("Save DeliveryRequest with AppDeliveryId = {} to Cache.", key);
- rep.put(key, request);
+ var key = request.getMetaData().getAppDeliveryID();
+ requestRepository.put(key, request);
}
@Override
public Optional<DeliveryRequestType> getDeliveryRequest(String appDeliveryID) {
- DeliveryRequestType deliveryRequestType = rep.getIfPresent(appDeliveryID);
- return Optional.ofNullable(deliveryRequestType);
+ var deliveryRequestType = requestRepository.getIfPresent(appDeliveryID);
+ return ofNullable(deliveryRequestType);
+ }
+
+ @Override
+ public void add(DeliveryRequestStatusType status) {
+ var key = coalesce(status.getSuccess(), status.getPartialSuccess(), status.getError())
+ .get().getAppDeliveryID();
+ statusRepository.put(key, status);
+ }
+
+ @Override
+ public Optional<DeliveryRequestStatusType> getDeliveryRequestStatus(String appDeliveryID) {
+ var deliveryRequestType = statusRepository.getIfPresent(appDeliveryID);
+ return ofNullable(deliveryRequestType);
}
}