From bf783f84860aca202e279190e6a500e26546161d Mon Sep 17 00:00:00 2001 From: Vusumuzi Khoza Date: Thu, 23 Oct 2025 14:03:00 +0200 Subject: [PATCH] fixing additional data issues --- .../workflows/handlers/ConfirmHandler.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/zw/qantra/tm/domain/workflows/handlers/ConfirmHandler.java b/src/main/java/zw/qantra/tm/domain/workflows/handlers/ConfirmHandler.java index 9c9c6e7..8c4ab87 100644 --- a/src/main/java/zw/qantra/tm/domain/workflows/handlers/ConfirmHandler.java +++ b/src/main/java/zw/qantra/tm/domain/workflows/handlers/ConfirmHandler.java @@ -2,14 +2,21 @@ package zw.qantra.tm.domain.workflows.handlers; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import zw.qantra.tm.domain.enums.RequestType; import zw.qantra.tm.domain.enums.Status; +import zw.qantra.tm.domain.models.AdditionalData; import zw.qantra.tm.domain.models.Transaction; import zw.qantra.tm.domain.models.TransactionEvent; +import zw.qantra.tm.domain.services.AdditionalDataService; import zw.qantra.tm.domain.services.TransactionEventService; import zw.qantra.tm.domain.services.TransactionService; import zw.qantra.tm.domain.services.factories.PaymentProcessorFactory; import zw.qantra.tm.domain.services.processors.TransactionProcessorInterface; import zw.qantra.tm.domain.services.processors.handlers.*; +import zw.qantra.tm.utils.Utils; + +import java.util.LinkedHashMap; +import java.util.List; @Service("confirm") @RequiredArgsConstructor @@ -17,6 +24,7 @@ public class ConfirmHandler implements HandlerInterface { private final TransactionEventService transactionEventService; private final PaymentProcessorFactory paymentProcessorFactory; private final TransactionService transactionService; + private final AdditionalDataService additionalDataService; @Override public Object process(Transaction transaction) throws Exception { @@ -52,6 +60,15 @@ public class ConfirmHandler implements HandlerInterface { transactionEvent.setMessage(transaction.getErrorMessage()); transactionEventService.save(transactionEvent); - return transactionService.save(transaction); + transaction = transactionService.save(transaction); + // fetch additionalData + AdditionalData data = additionalDataService.getAdditionalDataRepository() + .findByTransactionIdAndRequestType( + transaction.getId().toString(), RequestType.CONFIRM).orElse(null); + if(data != null) { + transaction.setAdditionalData(Utils.fromJson(data.getJsonString(), List.class)); + } + + return transaction; } }