From 10084bbd482d5889a72f197a7b6b71a63b586ed3 Mon Sep 17 00:00:00 2001 From: Naeem Ullah Date: Mon, 5 Jan 2026 14:39:38 +0500 Subject: [PATCH] Refactor services to inject RestTemplate via constructor Updated all service classes to receive RestTemplate (and ObjectMapper where needed) through constructor injection instead of instantiating them directly. Removed the RestTemplateConfig class, as RestTemplate is now expected to be provided externally, improving testability and configuration flexibility. --- .../aconnect/client/service/AuthService.java | 9 +++++++-- .../mfsys/aconnect/client/service/CRMService.java | 6 +++++- .../service/CancellationTransactionService.java | 8 +++++--- .../client/service/LoanAccountService.java | 6 ++++-- .../client/service/RejectTransactionService.java | 5 ++++- .../service/ReversalTransactionService.java | 6 +++++- .../service/TransactionAuthorizationService.java | 5 ++++- .../client/service/TransactionService.java | 8 ++++---- .../configuration/config/RestTemplateConfig.java | 15 --------------- 9 files changed, 38 insertions(+), 30 deletions(-) delete mode 100644 aconnect/src/main/java/com/mfsys/aconnect/configuration/config/RestTemplateConfig.java diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/AuthService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/AuthService.java index 9daedc7..6f33d19 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/AuthService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/AuthService.java @@ -19,8 +19,13 @@ public class AuthService { @Value("${app.security.uri}") private String securityURI; - private final RestTemplate restTemplate = new RestTemplate(); - private final ObjectMapper objectMapper = new ObjectMapper(); + private final RestTemplate restTemplate; + private final ObjectMapper objectMapper; + + public AuthService(RestTemplate restTemplate, ObjectMapper objectMapper) { + this.restTemplate = restTemplate; + this.objectMapper = objectMapper; + } public Map authenticate(Map payload) { diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/CRMService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/CRMService.java index 857851e..97f3af5 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/CRMService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/CRMService.java @@ -15,7 +15,11 @@ public class CRMService { @Value("${app.crm.uri}") private String crmURI; - private final RestTemplate restTemplate = new RestTemplate(); + private final RestTemplate restTemplate; + public CRMService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + public Object createIndividualCRM(WorkflowRequestDTO workflowRequestDTO, String token) { String porOrgacode = workflowRequestDTO.getPorOrgacode(); String url = crmURI + "/crm" + "/mongodb/formdata" ; diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/CancellationTransactionService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/CancellationTransactionService.java index 777133f..464e92b 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/CancellationTransactionService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/CancellationTransactionService.java @@ -21,6 +21,11 @@ public class CancellationTransactionService { @Value("${app.generalledger.uri}") private String generalledgerURI; + private final RestTemplate restTemplate; + public CancellationTransactionService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + public Object processDepositCancellationTransaction(DepositCancellationDTO depositCancellationDTO, String tokenHeader) { String porOrgacode = depositCancellationDTO.getPorOrgacode(); String url = depositURI + "/deposit" + "/organizations/" + depositCancellationDTO.getPorOrgacode() + @@ -34,7 +39,6 @@ public class CancellationTransactionService { headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(depositCancellationDTO, headers); - RestTemplate restTemplate = new RestTemplate(); ResponseEntity response = restTemplate.exchange( url, @@ -59,8 +63,6 @@ public class CancellationTransactionService { headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity<>(glCancellationDTO, headers); - RestTemplate restTemplate = new RestTemplate(); - ResponseEntity response = restTemplate.exchange( url, HttpMethod.POST, diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/LoanAccountService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/LoanAccountService.java index 06953d4..dc11010 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/LoanAccountService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/LoanAccountService.java @@ -14,8 +14,10 @@ public class LoanAccountService { @Value("${app.loan.uri}") private String loanURI; - private final RestTemplate restTemplate = new RestTemplate(); - + private final RestTemplate restTemplate; + public LoanAccountService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } public Object createIndividualLoan(WorkflowRequestDTO workflowRequestDTO, String token) { String porOrgacode = workflowRequestDTO.getPorOrgacode(); diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/RejectTransactionService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/RejectTransactionService.java index 859b447..2200c5f 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/RejectTransactionService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/RejectTransactionService.java @@ -19,7 +19,10 @@ public class RejectTransactionService { @Value("${app.generalledger.uri}") private String generalledgerURI; - private final RestTemplate restTemplate = new RestTemplate(); + private final RestTemplate restTemplate; + public RejectTransactionService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } public Object processDepositRejectionTransaction(DepositRejectDTO rejectRequest, String tokenHeader) { String porOrgacode = rejectRequest.getPorOrgacode(); diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/ReversalTransactionService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/ReversalTransactionService.java index 7780329..06d9cdf 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/ReversalTransactionService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/ReversalTransactionService.java @@ -20,7 +20,11 @@ public class ReversalTransactionService { @Value("${app.generalledger.uri}") private String generalledgerURI; - private final RestTemplate restTemplate = new RestTemplate(); + private final RestTemplate restTemplate; + public ReversalTransactionService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + public Object processDepositReversalTransaction(DepositReversalDTO reversalRequest, String tokenHeader) { String porOrgacode = reversalRequest.getPorOrgacode(); String nodeID = reversalRequest.getNodeId(); diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionAuthorizationService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionAuthorizationService.java index 8f81868..cfe3c63 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionAuthorizationService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionAuthorizationService.java @@ -20,7 +20,10 @@ public class TransactionAuthorizationService { @Value("${app.generalledger.uri}") private String generalledgerURI; - private final RestTemplate restTemplate = new RestTemplate(); + private final RestTemplate restTemplate; + public TransactionAuthorizationService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } public Object processDepositAuthTransaction(DepositAuthorizationRequest authorizationRequest, String tokenHeader) { String porOrgacode = authorizationRequest.getPorOrgacode(); diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionService.java index cc90c83..88568ee 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/TransactionService.java @@ -25,10 +25,10 @@ public class TransactionService { @Value("${app.generalledger.uri}") private String generalledgerURI; - @Value("${app.onlinebanking.uri}") - private String onlinebankingURI; - - private final RestTemplate restTemplate = new RestTemplate(); + private final RestTemplate restTemplate; + public TransactionService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } public ResponseEntity getActiveAccountDetails(String porOrgacode, String mbmBkmsnumber, LocalDate sgtGntrvaluedate, String tokenHeader, String userCode) { diff --git a/aconnect/src/main/java/com/mfsys/aconnect/configuration/config/RestTemplateConfig.java b/aconnect/src/main/java/com/mfsys/aconnect/configuration/config/RestTemplateConfig.java deleted file mode 100644 index 40f281a..0000000 --- a/aconnect/src/main/java/com/mfsys/aconnect/configuration/config/RestTemplateConfig.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.mfsys.aconnect.configuration.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.web.client.RestTemplate; - -@Configuration -public class RestTemplateConfig { - - @Bean - public RestTemplate restTemplate() { - return new RestTemplate(new HttpComponentsClientHttpRequestFactory()); - } -}