aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java')
-rw-r--r--src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java b/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java
index 7da76ef..2468ca9 100644
--- a/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java
+++ b/src/main/java/at/gv/egiz/moazs/backend/SaveResponseToFileSink.java
@@ -31,13 +31,11 @@ public class SaveResponseToFileSink {
private final SimpleDateFormat isoFormatter;
private final Marshaller msgMarshaller;
private final DeliveryRepository repository;
- private final String root;
@Autowired
- public SaveResponseToFileSink(Marshaller msgMarshaller, DeliveryRepository repository, String root) {
+ public SaveResponseToFileSink(Marshaller msgMarshaller, DeliveryRepository repository) {
this.msgMarshaller = msgMarshaller;
this.repository = repository;
- this.root = root;
this.isoFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
}
@@ -47,17 +45,17 @@ public class SaveResponseToFileSink {
* @param response
* @return Future that completes when both responses have been written to the file system.
*/
- public CompletableFuture<Void> save(MsgResponse response) {
+ public CompletableFuture<Void> save(MsgResponse response, String rootPath) {
var responseID = response.getResponseID();
- var responsePath = generatePath(responseID, "xml");
+ var responsePath = generatePath(rootPath, responseID, "xml");
var storeResponseToFileSystemFuture = supplyAsync(() -> msgMarshaller.marshallXml(response.getResponse()))
.thenApply(responseString -> responseString.getBytes(StandardCharsets.UTF_8))
.thenAccept(responseByteArray -> storeToFile(responsePath, responseByteArray))
.exceptionally(ex -> logException(ex, responseID));
- var binaryResponsePath = generatePath(responseID, "binary.xml");
+ var binaryResponsePath = generatePath(rootPath, responseID, "binary.xml");
var storeBinaryResponseToFileSystemFuture = supplyAsync(() -> repository.retrieveBinaryResponse(responseID).get())
.thenAccept(binaryResponseByteArray -> storeToFile(binaryResponsePath, binaryResponseByteArray))
.exceptionally(ex -> logException(ex, responseID));
@@ -66,10 +64,10 @@ public class SaveResponseToFileSink {
}
- private String generatePath(String id, String suffix) {
+ private String generatePath(String rootPath, String id, String suffix) {
var folder = sanitizeFileString(id);
var nowInIso8601 = isoFormatter.format(new Date());
- return format("%s/%s/%s.%s", root, folder, nowInIso8601, suffix);
+ return format("%s/%s/%s.%s", rootPath, folder, nowInIso8601, suffix);
}
private String sanitizeFileString(String fileString) {