From 8c762ae63654b1be91fb1caac07237e8758396a1 Mon Sep 17 00:00:00 2001 From: Naeem Ullah Date: Fri, 23 Jan 2026 15:37:29 +0500 Subject: [PATCH] Add business CRM approval endpoints and services Introduced separate endpoints and service methods for approving individual and business CRM applications. Updated URI constants and token bypass lists to support business CRM approval. Also added endpoint to check individual CRM applications by workflow reference. --- .../client/controller/CRMController.java | 10 ++++++-- .../PendingCRMApplicationsController.java | 7 ++++++ .../aconnect/client/service/CRMService.java | 23 ++++++++++++++++++- .../configuration/constant/AconnectURI.java | 1 + .../constant/TokenBypassURI.java | 1 + 5 files changed, 39 insertions(+), 3 deletions(-) diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/CRMController.java b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/CRMController.java index 8a5094f..0b6367f 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/CRMController.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/CRMController.java @@ -32,8 +32,14 @@ public class CRMController { } @PostMapping(AconnectURI.APPROVE_INDIVIDUAL_CRM_URI) - public Object approveCRM(@RequestBody ApproveCRMRequestDTO approveCRMRequestDTO, + public Object approveIndividualCRM(@RequestBody ApproveCRMRequestDTO approveCRMRequestDTO, @RequestHeader("Authorization") String token){ - return crmService.approveCRM(approveCRMRequestDTO, token); + return crmService.approveIndividualCRM(approveCRMRequestDTO, token); + } + + @PostMapping(AconnectURI.APPROVE_BUSINESS_CRM_URI) + public Object approveBusinessCRM(@RequestBody ApproveCRMRequestDTO approveCRMRequestDTO, + @RequestHeader("Authorization") String token){ + return crmService.approveBusinessCRM(approveCRMRequestDTO, token); } } diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/PendingCRMApplicationsController.java b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/PendingCRMApplicationsController.java index 8c7f3c5..3470168 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/PendingCRMApplicationsController.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/PendingCRMApplicationsController.java @@ -22,6 +22,13 @@ public class PendingCRMApplicationsController { return inProcessApplicationsService.getIndividualPendingCRM(request, token, susUserCode); } + @PostMapping(AconnectURI.CHECK_INDIVIDUAL_APPLICATIONS_URI) + public ResponseEntitygetIndividualApplication( + @RequestBody InProcessApplicationsRequestDTO request, @RequestParam("workFlowRefNum") Long workFlowRefNum, + @RequestHeader("Authorization") String token, @RequestHeader("SUS_USERCODE") String susUserCode){ + return inProcessApplicationsService.getPendingIndividualApplication(request, workFlowRefNum, token, susUserCode); + } + @PostMapping(AconnectURI.GET_BUSINESS_PENDING_APPLICATIONS_URI) public ResponseEntity getBusinessPendingCRMs(@RequestBody InProcessApplicationsRequestDTO request, @RequestHeader("Authorization") String token, @RequestHeader("SUS_USERCODE") String susUserCode) { 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 ca16290..9e821a2 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 @@ -65,7 +65,28 @@ public class CRMService { return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); } - public Object approveCRM(ApproveCRMRequestDTO approveCRMRequestDTO, String token) { + public Object approveIndividualCRM(ApproveCRMRequestDTO approveCRMRequestDTO, String token) { + String porOrgacode = approveCRMRequestDTO.getPorOrgacode(); + String url = crmURI + "/crm" + "/mongodb/formdata"; + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", token); + headers.set("POR_ORGACODE", approveCRMRequestDTO.getPorOrgacode()); + headers.set("SUS_USERCODE", approveCRMRequestDTO.getSusUserCode()); + headers.setContentType(MediaType.APPLICATION_JSON); + + HttpEntity entity = new HttpEntity<>(approveCRMRequestDTO, headers); + + ResponseEntity response = restTemplate.exchange( + url, + HttpMethod.PATCH, + entity, + Map.class + ); + + return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); + } + + public Object approveBusinessCRM(ApproveCRMRequestDTO approveCRMRequestDTO, String token) { String porOrgacode = approveCRMRequestDTO.getPorOrgacode(); String url = crmURI + "/crm" + "/mongodb/formdata"; HttpHeaders headers = new HttpHeaders(); diff --git a/common/src/main/java/com/mfsys/common/configuration/constant/AconnectURI.java b/common/src/main/java/com/mfsys/common/configuration/constant/AconnectURI.java index 07b913a..9b1d8c9 100644 --- a/common/src/main/java/com/mfsys/common/configuration/constant/AconnectURI.java +++ b/common/src/main/java/com/mfsys/common/configuration/constant/AconnectURI.java @@ -30,6 +30,7 @@ public interface AconnectURI { String GL_TO_ACCOUNT_TRANSACTION_URI = TRANSACTION_URI + "/gl-account"; String INDIVIDUAL_CRM_CREATION_URI = CRM + INDIVIDUAL + "/create"; String APPROVE_INDIVIDUAL_CRM_URI = CRM + INDIVIDUAL + "/approve"; + String APPROVE_BUSINESS_CRM_URI = CRM + BUSINESS + "/approve"; String GET_INDIVIDUAL_PENDING_APPLICATIONS_URI = CRM + INDIVIDUAL + "/pending-workflow"; String CHECK_INDIVIDUAL_PENDING_APPLICATIONS_URI = CRM + INDIVIDUAL + "/inprocess"; String CHECK_INDIVIDUAL_APPLICATIONS_URI = CRM + INDIVIDUAL + "/inprocess"; diff --git a/common/src/main/java/com/mfsys/common/configuration/constant/TokenBypassURI.java b/common/src/main/java/com/mfsys/common/configuration/constant/TokenBypassURI.java index b8372a5..1d5ec84 100644 --- a/common/src/main/java/com/mfsys/common/configuration/constant/TokenBypassURI.java +++ b/common/src/main/java/com/mfsys/common/configuration/constant/TokenBypassURI.java @@ -34,6 +34,7 @@ public interface TokenBypassURI { "/aconnect/deposit/business/create", "/aconnect/loan/individual/create", "/aconnect/loan/individual/approval", + "/aconnect/crm/business/approve", "/aconnect/deposit/transactions/cancel", "/aconnect/generalledger/transactions/cancel", "/aconnect/validate-primary",