diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/DepositAccountController.java b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/DepositAccountController.java index 1b8cc4d..32ef557 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/DepositAccountController.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/DepositAccountController.java @@ -1,7 +1,38 @@ package com.mfsys.aconnect.client.controller; -import org.springframework.web.bind.annotation.RestController; +import com.mfsys.aconnect.client.dto.WorkflowRequestDTO; +import com.mfsys.aconnect.client.service.CRMService; +import com.mfsys.aconnect.client.service.DepositAccountService; +import com.mfsys.common.configuration.constant.AconnectURI; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; @RestController public class DepositAccountController { + + @Autowired + private DepositAccountService depositAccountService; + + @Autowired + public DepositAccountController(DepositAccountService depositAccountService) { + this.depositAccountService = depositAccountService; + } + + @PostMapping(AconnectURI.INDIVIDUAL_DEPOSIT_CREATION_URI) + public Object createIndividualDeposit(@RequestBody WorkflowRequestDTO workflowRequestDTO, + @RequestHeader("Authorization") String token) { + return depositAccountService.createIndividualDeposit(workflowRequestDTO, token); + } + + @PatchMapping(AconnectURI.UPDATE_DEPOSIT_CREATION_URI) + public Object updateIndividualDeposit(@RequestBody WorkflowRequestDTO workflowRequestDTO, + @RequestHeader("Authorization") String token) { + return depositAccountService.approvalIndividualDeposit(workflowRequestDTO, token); + } + + @PostMapping(AconnectURI.BUSINESS_DEPOSIT_CREATION_URI) + public Object createBusinessCRM(@RequestBody WorkflowRequestDTO workflowRequestDTO, + @RequestHeader("Authorization") String token) { + return depositAccountService.createBusinessDeposit(workflowRequestDTO, token); + } } diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/LoanAccountController.java b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/LoanAccountController.java index 1b2e27a..2176eea 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/client/controller/LoanAccountController.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/controller/LoanAccountController.java @@ -1,7 +1,30 @@ package com.mfsys.aconnect.client.controller; +import com.mfsys.aconnect.client.dto.WorkflowRequestDTO; +import com.mfsys.aconnect.client.service.DepositAccountService; +import com.mfsys.aconnect.client.service.LoanAccountService; +import com.mfsys.common.configuration.constant.AconnectURI; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RestController; @RestController public class LoanAccountController { + + @Autowired + private LoanAccountService loanAccountService; + + @Autowired + public LoanAccountController(LoanAccountService loanAccountService) { + this.loanAccountService = loanAccountService; + } + + @PostMapping(AconnectURI.INDIVIDUAL_LOAN_CREATION_URI) + public Object createIndividualCRM(@RequestBody WorkflowRequestDTO workflowRequestDTO, + @RequestHeader("Authorization") String token) { + return loanAccountService.createIndividualLoan(workflowRequestDTO, token); + } + } diff --git a/aconnect/src/main/java/com/mfsys/aconnect/client/service/DepositAccountService.java b/aconnect/src/main/java/com/mfsys/aconnect/client/service/DepositAccountService.java new file mode 100644 index 0000000..7e33a91 --- /dev/null +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/DepositAccountService.java @@ -0,0 +1,88 @@ +package com.mfsys.aconnect.client.service; + +import com.mfsys.aconnect.client.dto.WorkflowRequestDTO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.*; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.util.Map; + +@Service +public class DepositAccountService { + + @Value("${app.deposit.uri}") + private String depositURI; + + + private final RestTemplate restTemplate; + public DepositAccountService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + public Object createIndividualDeposit(WorkflowRequestDTO workflowRequestDTO, String token) { + String porOrgacode = workflowRequestDTO.getPorOrgacode(); + String url = depositURI + "/deposit" + "/mongodb/formdata" ; + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", token); + headers.set("POR_ORGACODE", porOrgacode); + headers.set("SUS_USERCODE", workflowRequestDTO.getSusUsercode()); + headers.setContentType(MediaType.APPLICATION_JSON); + + HttpEntity entity = new HttpEntity<>(workflowRequestDTO, headers); + + ResponseEntity response = restTemplate.exchange( + url, + HttpMethod.POST, + entity, + Map.class + ); + + return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); + } + + + public Object approvalIndividualDeposit(WorkflowRequestDTO workflowRequestDTO, String token) { + String porOrgacode = workflowRequestDTO.getPorOrgacode(); + String url = depositURI + "/deposit" + "/mongodb/formdata" ; + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", token); + headers.set("POR_ORGACODE", porOrgacode); + headers.set("SUS_USERCODE", workflowRequestDTO.getSusUsercode()); + headers.setContentType(MediaType.APPLICATION_JSON); + + HttpEntity entity = new HttpEntity<>(workflowRequestDTO, headers); + restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory()); + + ResponseEntity response = restTemplate.exchange( + url, + HttpMethod.PATCH, + entity, + Map.class + ); + + return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); + } + + public Object createBusinessDeposit(WorkflowRequestDTO workflowRequestDTO, String token) { + String porOrgacode = workflowRequestDTO.getPorOrgacode(); + String url = depositURI + "/deposit" + "/mongodb/formdata" ; + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", token); + headers.set("POR_ORGACODE", porOrgacode); + headers.set("SUS_USERCODE", workflowRequestDTO.getSusUsercode()); + headers.setContentType(MediaType.APPLICATION_JSON); + + HttpEntity entity = new HttpEntity<>(workflowRequestDTO, headers); + + ResponseEntity response = restTemplate.exchange( + url, + HttpMethod.POST, + entity, + Map.class + ); + + return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); + } +} 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 new file mode 100644 index 0000000..06953d4 --- /dev/null +++ b/aconnect/src/main/java/com/mfsys/aconnect/client/service/LoanAccountService.java @@ -0,0 +1,41 @@ +package com.mfsys.aconnect.client.service; + +import com.mfsys.aconnect.client.dto.WorkflowRequestDTO; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.*; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +import java.util.Map; + +@Service +public class LoanAccountService { + + @Value("${app.loan.uri}") + private String loanURI; + + private final RestTemplate restTemplate = new RestTemplate(); + + + public Object createIndividualLoan(WorkflowRequestDTO workflowRequestDTO, String token) { + String porOrgacode = workflowRequestDTO.getPorOrgacode(); + String url = loanURI + "/loan" + "/mongodb/formdata" ; + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", token); + headers.set("POR_ORGACODE", porOrgacode); + headers.set("SUS_USERCODE", workflowRequestDTO.getSusUsercode()); + headers.setContentType(MediaType.APPLICATION_JSON); + + HttpEntity entity = new HttpEntity<>(workflowRequestDTO, headers); + + ResponseEntity response = restTemplate.exchange( + url, + HttpMethod.POST, + entity, + Map.class + ); + + return ResponseEntity.status(response.getStatusCode()).body(response.getBody()); + } + +} 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 new file mode 100644 index 0000000..40f281a --- /dev/null +++ b/aconnect/src/main/java/com/mfsys/aconnect/configuration/config/RestTemplateConfig.java @@ -0,0 +1,15 @@ +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()); + } +} diff --git a/aconnect/src/main/java/com/mfsys/aconnect/usermanagement/dto/PermissionDTO.java b/aconnect/src/main/java/com/mfsys/aconnect/usermanagement/dto/PermissionDTO.java index 22def00..77c8fcb 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/usermanagement/dto/PermissionDTO.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/usermanagement/dto/PermissionDTO.java @@ -5,6 +5,6 @@ import java.util.List; @Data public class PermissionDTO { - private List permissions; + private String permissions; private String userId; } diff --git a/aconnect/src/main/java/com/mfsys/aconnect/usermanagement/service/UserService.java b/aconnect/src/main/java/com/mfsys/aconnect/usermanagement/service/UserService.java index ec9b62e..25040f7 100644 --- a/aconnect/src/main/java/com/mfsys/aconnect/usermanagement/service/UserService.java +++ b/aconnect/src/main/java/com/mfsys/aconnect/usermanagement/service/UserService.java @@ -109,7 +109,7 @@ public class UserService { PermissionDTO dto = new PermissionDTO(); dto.setUserId(userId); if (user.getPermissions() != null && !user.getPermissions().isEmpty()) { - dto.setPermissions(java.util.Arrays.asList(user.getPermissions().split(","))); + dto.setPermissions((user.getPermissions())); } return dto; } diff --git a/common/pom.xml b/common/pom.xml index 4742aee..69707fc 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -47,7 +47,11 @@ org.springframework.boot spring-boot-starter-web - + + org.apache.httpcomponents.client5 + httpclient5 + 5.2.1 + org.projectlombok lombok 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 2bc59b2..d0d600a 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 @@ -29,6 +29,8 @@ public interface AconnectURI { String INDIVIDUAL_CRM_CREATION_URI = CRM + INDIVIDUAL + "/create"; String BUSINESS_CRM_CREATION_URI = CRM + BUSINESS + "/create"; String INDIVIDUAL_DEPOSIT_CREATION_URI = DEPOSIT + INDIVIDUAL + "/create"; + String UPDATE_DEPOSIT_CREATION_URI = DEPOSIT + INDIVIDUAL + "/approval"; + String BUSINESS_DEPOSIT_CREATION_URI = DEPOSIT + BUSINESS + "/create"; String INDIVIDUAL_LOAN_CREATION_URI = LOAN + INDIVIDUAL + "/create"; 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 70b51ce..649406a 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 @@ -21,7 +21,9 @@ public interface TokenBypassURI { "/aconnect/crm/individual/create", "/aconnect/crm/business/create", "/aconnect/deposit/individual/create", + "/aconnect/deposit/individual/approval", "/aconnect/deposit/business/create", + "/aconnect/loan/individual/create", "/aconnect/deposit/transactions/cancel", "/aconnect/generalledger/transactions/cancel", diff --git a/common/src/main/java/com/mfsys/common/configuration/model/Logger.java b/common/src/main/java/com/mfsys/common/configuration/model/Logger.java index 16b6c6c..460e365 100644 --- a/common/src/main/java/com/mfsys/common/configuration/model/Logger.java +++ b/common/src/main/java/com/mfsys/common/configuration/model/Logger.java @@ -24,7 +24,7 @@ public class Logger { @Column(name = "REQUEST_URI", nullable = false, length = 200) private String requestUri; - @Column(name = "REQUEST_BODY", length = 4000) + @Column(name = "REQUEST_BODY", length = 10000) private String requestBody; @Column(name = "REMOTE_IP", nullable = false, length = 50)