aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/RedisRepository.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/RedisRepository.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/RedisRepository.java20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/RedisRepository.java b/src/main/java/at/gv/egiz/moazs/RedisRepository.java
index dfc68ea..db49b23 100644
--- a/src/main/java/at/gv/egiz/moazs/RedisRepository.java
+++ b/src/main/java/at/gv/egiz/moazs/RedisRepository.java
@@ -12,6 +12,7 @@ import org.springframework.stereotype.Repository;
import javax.annotation.PostConstruct;
import javax.xml.bind.JAXBElement;
+import java.util.Optional;
@Repository
public class RedisRepository {
@@ -22,14 +23,14 @@ public class RedisRepository {
private final RedisTemplate<String, Object> redisTemplate;
- private final MyMarshaller marshaller;
+ private final Marshaller marshaller;
private HashOperations<String, String, String> hashOperations;
private final ObjectFactory factory = new ObjectFactory();
@Autowired
- public RedisRepository(RedisTemplate<String, Object> redisTemplate, MyMarshaller marshaller){
+ public RedisRepository(RedisTemplate<String, Object> redisTemplate, Marshaller marshaller){
this.redisTemplate = redisTemplate;
this.marshaller = marshaller;
}
@@ -43,15 +44,20 @@ public class RedisRepository {
var hashKey = request.getMetaData().getAppDeliveryID();
var serializedRequest = marshaller.marshallXml(factory.createDeliveryRequest(request));
- logger.info("Adding DeliveryRequest to repository: AppDeliveryId = {}, request = {}", hashKey, serializedRequest);
+ logger.info("Save DeliveryRequest with AppDeliveryId = {}", hashKey);
hashOperations.put(KEY, hashKey, serializedRequest);
+ }
- var drs = (String) hashOperations.get(KEY, hashKey);
- var requestFromRedis = (JAXBElement<DeliveryRequestType>) marshaller.unmarshallXml(new StringInputStream(drs));
- String appDeliveryID = requestFromRedis.getValue().getMetaData().getAppDeliveryID();
- logger.info("here's what i got out of redis: appDeliveryId = {}, request = {}", appDeliveryID, drs);
+ public Optional<DeliveryRequestType> getDeliveryRequest(String appDeliveryID) {
+ var serializedRequest = (String) hashOperations.get(KEY, appDeliveryID);
+ if (serializedRequest == null) {
+ return Optional.empty();
+ }
+ var stream = new StringInputStream(serializedRequest);
+ var request = (JAXBElement<DeliveryRequestType>) marshaller.unmarshallXml(stream);
+ return Optional.of(request.getValue());
}
}