From 19632378962f1b6214d1a8ed7587d4c24809c698 Mon Sep 17 00:00:00 2001 From: Vusumuzi Khoza Date: Sun, 12 Oct 2025 10:07:33 +0200 Subject: [PATCH] adding boolean setting config --- .../tm/domain/repositories/SettingRepository.java | 1 + .../qantra/tm/domain/services/SettingService.java | 14 ++++++++++++++ .../payments/MPGSWebPaymentProcessor.java | 12 ++++++++---- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/zw/qantra/tm/domain/repositories/SettingRepository.java b/src/main/java/zw/qantra/tm/domain/repositories/SettingRepository.java index 7345976..350b5de 100644 --- a/src/main/java/zw/qantra/tm/domain/repositories/SettingRepository.java +++ b/src/main/java/zw/qantra/tm/domain/repositories/SettingRepository.java @@ -8,4 +8,5 @@ import java.util.UUID; @Repository public interface SettingRepository extends JpaRepository { + Setting findBySettingName(String key); } \ No newline at end of file diff --git a/src/main/java/zw/qantra/tm/domain/services/SettingService.java b/src/main/java/zw/qantra/tm/domain/services/SettingService.java index 7fdd001..7e6ca50 100644 --- a/src/main/java/zw/qantra/tm/domain/services/SettingService.java +++ b/src/main/java/zw/qantra/tm/domain/services/SettingService.java @@ -2,6 +2,7 @@ package zw.qantra.tm.domain.services; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import zw.qantra.tm.domain.models.Setting; import zw.qantra.tm.domain.repositories.SettingRepository; @Service @@ -12,4 +13,17 @@ public class SettingService { public SettingRepository getSettingRepository() { return settingRepository; } + + public Boolean getBooleanSetting(String key) { + try { + Setting setting = settingRepository.findBySettingName(key); + if (setting != null) { + return Boolean.parseBoolean(setting.getSettingValue()); + } + return false; + } catch (Exception exception) { + exception.printStackTrace(); + return false; + } + } } \ No newline at end of file diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/payments/MPGSWebPaymentProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/payments/MPGSWebPaymentProcessor.java index c656f18..9cfc899 100644 --- a/src/main/java/zw/qantra/tm/domain/services/processors/payments/MPGSWebPaymentProcessor.java +++ b/src/main/java/zw/qantra/tm/domain/services/processors/payments/MPGSWebPaymentProcessor.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import zw.qantra.tm.domain.dtos.SdkActionDto; import zw.qantra.tm.domain.enums.Status; import zw.qantra.tm.domain.models.Transaction; +import zw.qantra.tm.domain.services.SettingService; import zw.qantra.tm.domain.services.TransactionService; import zw.qantra.tm.domain.services.processors.TransactionProcessorInterface; import zw.qantra.tm.rest.RestService; @@ -31,6 +32,7 @@ public class MPGSWebPaymentProcessor implements TransactionProcessorInterface { private final Logger logger = LoggerFactory.getLogger(MPGSWebPaymentProcessor.class); private final RestService restService; private final TransactionService transactionService; + private final SettingService settingService; @Value("${sbz.aggregator.encryption-key}") private String encryptionKey; @@ -128,10 +130,12 @@ public class MPGSWebPaymentProcessor implements TransactionProcessorInterface { LinkedHashMap body = (LinkedHashMap) response.get("body"); // todo: REMOVE THIS - body.put("status", "SUCCESS"); - LinkedHashMap hashMap = new LinkedHashMap(); - hashMap.put("creditReference", RandomStringUtils.randomNumeric(10)); - body.put("transaction", hashMap); + if(settingService.getBooleanSetting("SIMULATE_MPGS_SUCCESS")){ + body.put("status", "SUCCESS"); + LinkedHashMap hashMap = new LinkedHashMap(); + hashMap.put("creditReference", RandomStringUtils.randomNumeric(10)); + body.put("transaction", hashMap); + } // only update tran status if polling returns a success if(!body.get("status").equals("SUCCESS")){