From 38173a2370e4e33c3c4c5179b000c2398af4193f Mon Sep 17 00:00:00 2001 From: Vusumuzi Khoza Date: Thu, 23 Oct 2025 14:57:41 +0200 Subject: [PATCH] preventing multiple executions --- .../tm/domain/workflows/handlers/IntegrationHandler.java | 4 ++++ .../qantra/tm/domain/workflows/handlers/PaymentHandler.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/zw/qantra/tm/domain/workflows/handlers/IntegrationHandler.java b/src/main/java/zw/qantra/tm/domain/workflows/handlers/IntegrationHandler.java index dd4f416..674fe10 100644 --- a/src/main/java/zw/qantra/tm/domain/workflows/handlers/IntegrationHandler.java +++ b/src/main/java/zw/qantra/tm/domain/workflows/handlers/IntegrationHandler.java @@ -31,6 +31,10 @@ public class IntegrationHandler implements HandlerInterface { public Object process(Transaction transaction) throws Exception { transaction.setType(RequestType.INTEGRATION); + // if we've done this before then return + if(transaction.getIntegrationStatus().equals(Status.SUCCESS)) + return transaction; + TransactionEvent transactionEvent = TransactionEvent.builder() .transactionId(transaction.getId().toString()) .event(transaction.getType().name()) diff --git a/src/main/java/zw/qantra/tm/domain/workflows/handlers/PaymentHandler.java b/src/main/java/zw/qantra/tm/domain/workflows/handlers/PaymentHandler.java index a7eea4a..edfed92 100644 --- a/src/main/java/zw/qantra/tm/domain/workflows/handlers/PaymentHandler.java +++ b/src/main/java/zw/qantra/tm/domain/workflows/handlers/PaymentHandler.java @@ -33,6 +33,10 @@ public class PaymentHandler implements HandlerInterface { transaction.setAuthType(incomingTransaction.getAuthType()); } + // if we've done this before then return + if(transaction.getPaymentStatus().equals(Status.SUCCESS)) + return transaction; + transactionService.save(transaction); TransactionEvent transactionEvent = TransactionEvent.builder()