diff --git a/scripts/native/file/bus-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner b/scripts/native/file/bus-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner index b4342e4..8f12436 100644 Binary files a/scripts/native/file/bus-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner and b/scripts/native/file/bus-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner differ diff --git a/src/main/java/com/banesco/common/application/service/HttpClientService.java b/src/main/java/com/banesco/common/application/service/HttpClientService.java index 122e6e8..5b01e1f 100644 --- a/src/main/java/com/banesco/common/application/service/HttpClientService.java +++ b/src/main/java/com/banesco/common/application/service/HttpClientService.java @@ -107,10 +107,19 @@ public class HttpClientService implements HttpClientUseCase { String finalUrl = request.getUrl(); if (request.getPathParams() != null && !request.getPathParams().isEmpty()) { + log.info("Reemplazando path params. URL original: {}", finalUrl); + log.info("Path params recibidos: {}", request.getPathParams()); + for (Map.Entry entry : request.getPathParams().entrySet()) { String placeholder = "{" + entry.getKey() + "}"; - finalUrl = finalUrl.replace(placeholder, entry.getValue()); + String value = entry.getValue(); + log.info("Reemplazando '{}' con '{}'", placeholder, value); + finalUrl = finalUrl.replace(placeholder, value); } + + log.info("URL despues de reemplazar path params: {}", finalUrl); + } else { + log.warn("No hay path params para reemplazar en la URL: {}", finalUrl); } return appendQueryParams(finalUrl, request.getQueryParams()); diff --git a/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/DomLegalCustomerProductDirectoryClient.java b/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/DomLegalCustomerProductDirectoryClient.java index 83986e7..03f2e4b 100644 --- a/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/DomLegalCustomerProductDirectoryClient.java +++ b/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/DomLegalCustomerProductDirectoryClient.java @@ -37,13 +37,21 @@ public class DomLegalCustomerProductDirectoryClient implements DomainUseCase { Class responseType ) { String customerIbsNumber = params.getCustomerIbsNumber(); + Map pathParams = Map.of("customerId", customerIbsNumber); + Map queryParams = params.toQueryString(); + + log.info("Construyendo request al API de dominio"); + log.info("URL base configurada: {}", domainConfig.getUrl()); + log.info("Path params: {}", pathParams); + log.info("Query params: {}", queryParams); + HttpRequest request = HttpRequest.forApiResponse( domainConfig.getUrl(), HttpRequest.HttpMethod.GET, responseType ) - .withPathParams(Map.of("customerIbsNumber", customerIbsNumber)) - .withQueryParams(params.toQueryString()) + .withPathParams(pathParams) + .withQueryParams(queryParams) .withTimeout( domainConfig.getTimeout().getConnect(), domainConfig.getTimeout().getResponse() diff --git a/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/resource/LegalCustomerProductDirectoryResource.java b/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/resource/LegalCustomerProductDirectoryResource.java index ad2bdcc..e05b59a 100644 --- a/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/resource/LegalCustomerProductDirectoryResource.java +++ b/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/resource/LegalCustomerProductDirectoryResource.java @@ -24,7 +24,7 @@ import org.eclipse.microprofile.openapi.annotations.responses.APIResponses; import java.util.Objects; @Slf4j -@Path("/bus-legal-customer-product-directory") +@Path("/customer/accounts") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class LegalCustomerProductDirectoryResource { @@ -42,7 +42,7 @@ public class LegalCustomerProductDirectoryResource { } @GET - @Path("/retrieve/{customerIbsNumber : (?!retrieve$).*}") + @Path("/retrieve/{customerId}") @Operation( summary = "Recuperar productos de cliente legal", description = "Consulta masiva de cuentas por numero de cliente IBS" @@ -321,9 +321,9 @@ public class LegalCustomerProductDirectoryResource { ) }) public Response retrieve( - @PathParam("customerIbsNumber") + @PathParam("customerId") @Parameter(description = "Numero de cliente IBS (VCUSCUN)", example = "200053197") - String customerIbsNumber, + String customerId, @QueryParam("appId") @Parameter(description = "ID de la aplicacion", required = true, example = "DANIAPP") @@ -333,12 +333,12 @@ public class LegalCustomerProductDirectoryResource { @Parameter(description = "ID de la fintech", example = "pranical-test") String customerReferenceFintechId ) { - log.info("Iniciando consulta para cliente IBS: {}", customerIbsNumber); + log.info("Iniciando consulta para cliente IBS: {}", customerId); try { return Response.ok(useCase.execute( LegalCustomerProductDirectoryRequest.builder() - .customerIbsNumber(Objects.toString(customerIbsNumber, "")) + .customerIbsNumber(Objects.toString(customerId, "")) .customerReferenceFintechId(Objects.toString(customerReferenceFintechId, "")) .appId(Objects.toString(appId, "")) .build() diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index feae550..16827d6 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -17,6 +17,6 @@ api: key: 'bus-legal-customer-product-directory' content: '[{"backendCode":"200","httpCode":200,"statusCode":"200","description":"Operacion exitosa"},{"backendCode":"R404","httpCode":404,"statusCode":"404","description":"Datos de validacion no encontrado."},{"backendCode":"503","httpCode":503,"statusCode":"503","description":"Uso interno"},{"backendCode":"422","httpCode":422,"statusCode":"422","description":"Uso interno"},{"backendCode":"500","httpCode":500,"statusCode":"500","description":"Uso interno"},{"backendCode":"100","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"OSB-382505","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"OSB-380002","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"ERROR","httpCode":400,"statusCode":"400","description":"Uso interno"},{"backendCode":"400","httpCode":400,"statusCode":"400","description":"Uso interno"},{"backendCode":"401","httpCode":401,"statusCode":"401","description":"Uso interno"},{"backendCode":"403","httpCode":403,"statusCode":"403","description":"Uso interno"},{"backendCode":"404","httpCode":404,"statusCode":"404","description":"Uso interno"},{"backendCode":"default","httpCode":409,"statusCode":"409","description":"Conflicto"},{"backendCode":"424","httpCode":424,"statusCode":"424","description":"Error de dependencia"},{"backendCode":"VDE01","httpCode":400,"statusCode":"VDE01","description":"VDE01 - Error en dato de entrada obligatorio: %s"},{"backendCode":"VDE02","httpCode":400,"statusCode":"VDE02","description":"VDE02 - Error en valor permitido para campo: %s"},{"backendCode":"VRN04","httpCode":"503","statusCode":"VRN04","description":"Servicio en horario de mantenimiento","status":"error"},{"backendCode":"204","httpCode":"200","statusCode":"200","description":"Cliente sin productos","status":"ok"}]' rest-client: - dom-legal-customer-product-directory: '{"url":"http://localhost:8083/dom-legal-customer-product-directory/retrieve/{customerIbsNumber}","timeout":{"connect":10000,"response":10000}}' + dom-legal-customer-product-directory: '{"url":"http://localhost:8083/customer/accounts/retrieve/{customerId}","timeout":{"connect":10000,"response":10000}}' security-trace: '{"url":"http://api-register-security-route-apis-banesco-dev.apps.desplakur3.desintra.banesco.com/register-security/save","timeout":{"connect":10000,"response":10000},"request":{"sp":"spAPI_Traza","eventCod":"CANCTARJ","bankCod":"01","curCod":"BS"}}' service-status: '{"url":"http://api-get-service-status-route-apis-banesco-dev.apps.desplakur3.desintra.banesco.com/service/status","timeout":{"connect":10000,"response":10000},"request":{"applicationId": "","transactionId": "","bankService": {"bankCode": "01","serviceCode": "APIFI","eventCode": "P2PVUEL"}}}' \ No newline at end of file diff --git a/src/main/resources/configmap.yaml b/src/main/resources/configmap.yaml index ac76d32..f54f8e9 100644 --- a/src/main/resources/configmap.yaml +++ b/src/main/resources/configmap.yaml @@ -4,16 +4,16 @@ metadata: name: configmap-bus-legal-customer-product-directory namespace: proyecto-prueba-ja uid: 6ac424c2-6da8-476b-9c14-8537f4bf0d04 - resourceVersion: '3477923474' + resourceVersion: '3480280220' creationTimestamp: '2026-01-12T23:42:23Z' annotations: kubectl.kubernetes.io/last-applied-configuration: | - {"apiVersion":"v1","data":{"api.allowed.app-id":"[{\"appId\":\"DANIAPP\",\"request\":{\"serviceType\":\"P2P\",\"limitType\":\"REC\",\"casheaIndicator\":\"NO\"}}]","api.bus-legal-customer-product-directory.messages.content":"[{\"backendCode\":\"200\",\"httpCode\":200,\"statusCode\":\"200\",\"description\":\"Operacion exitosa\"},{\"backendCode\":\"R404\",\"httpCode\":404,\"statusCode\":\"404\",\"description\":\"Datos de validación no encontrado.\"},{\"backendCode\":\"503\",\"httpCode\":503,\"statusCode\":\"503\",\"description\":\"Uso interno\"},{\"backendCode\":\"422\",\"httpCode\":422,\"statusCode\":\"422\",\"description\":\"Uso interno\"},{\"backendCode\":\"500\",\"httpCode\":500,\"statusCode\":\"500\",\"description\":\"Uso interno\"},{\"backendCode\":\"100\",\"httpCode\":503,\"statusCode\":\"503\",\"description\":\"VDR13 - OSB Disponible\"},{\"backendCode\":\"OSB-382505\",\"httpCode\":503,\"statusCode\":\"503\",\"description\":\"VDR13 - OSB Disponible\"},{\"backendCode\":\"OSB-380002\",\"httpCode\":503,\"statusCode\":\"503\",\"description\":\"VDR13 - OSB Disponible\"},{\"backendCode\":\"ERROR\",\"httpCode\":400,\"statusCode\":\"400\",\"description\":\"Uso interno\"},{\"backendCode\":\"400\",\"httpCode\":400,\"statusCode\":\"400\",\"description\":\"Uso interno\"},{\"backendCode\":\"401\",\"httpCode\":401,\"statusCode\":\"401\",\"description\":\"Uso interno\"},{\"backendCode\":\"403\",\"httpCode\":403,\"statusCode\":\"403\",\"description\":\"Uso interno\"},{\"backendCode\":\"404\",\"httpCode\":404,\"statusCode\":\"404\",\"description\":\"Uso interno\"},{\"backendCode\":\"default\",\"httpCode\":409,\"statusCode\":\"409\",\"description\":\"Conflicto\"},{\"backendCode\":\"424\",\"httpCode\":424,\"statusCode\":\"424\",\"description\":\"Error de dependencia\"},{\"backendCode\":\"VDE01\",\"httpCode\":400,\"statusCode\":\"VDE01\",\"description\":\"VDE01 - Error en dato de entrada obligatorio: %s\"},{\"backendCode\":\"VDE02\",\"httpCode\":400,\"statusCode\":\"VDE02\",\"description\":\"VDE02 - Error en valor permitido para campo: %s\"},{\"backendCode\":\"VRN04\",\"httpCode\":\"503\",\"statusCode\":\"VRN04\",\"description\":\"Servicio en horario de mantenimiento\",\"status\":\"error\"},{\"backendCode\":\"204\",\"httpCode\":\"200\",\"statusCode\":\"200\",\"description\":\"Cliente sin productos\",\"status\":\"ok\"}]","api.bus-legal-customer-product-directory.messages.key":"bus-legal-customer-product-directory","api.read-messages.from-props":"true","api.rest-client.dom-legal-customer-product-directory":"{\"url\":\"http://dom-legal-customer-product-directory-route-proyecto-prueba-ja.apps.desplakur3.desintra.banesco.com/dom-legal-customer-product-directory/retrieve/{customerIbsNumber}\",\"timeout\":{\"connect\":10000,\"response\":10000}}","api.rest-client.security-trace":"{\"url\":\"http://api-register-security-route-apis-banesco-dev.apps.desplakur3.desintra.banesco.com/register-security/save\",\"timeout\":{\"connect\":10000,\"response\":10000},\"request\":{\"sp\":\"spAPI_Traza\",\"eventCod\":\"CANCTARJ\",\"bankCod\":\"01\",\"curCod\":\"BS\"}}","api.rest-client.service-status":"{\"url\":\"http://api-get-service-status-route-apis-banesco-dev.apps.desplakur3.desintra.banesco.com/service/status\",\"timeout\":{\"connect\":10000,\"response\":10000},\"request\":{\"applicationId\": \"\",\"transactionId\": \"\",\"bankService\": {\"bankCode\": \"01\",\"serviceCode\": \"APIFI\",\"eventCode\": \"P2PVUEL\"}}}","api.source-id":"BLCPD","quarkus.application.name":"bus-legal-customer-product-directory","quarkus.application.version":"1.0.0","quarkus.debug.print-startup-times":"true","quarkus.debug.reflection":"false","quarkus.http.core-threads":"1","quarkus.http.idle-timeout":"30s","quarkus.http.max-threads":"100","quarkus.http.non-application-root-path":"actuator","quarkus.http.port":"8080","quarkus.log.console.enable":"true","quarkus.log.console.format":"%d{HH:mm:ss.SSS} %-5p [%t] [%X{requestId}] %c{1} - %s%e%n","quarkus.log.level":"INFO","quarkus.profile":"dev","quarkus.smallrye-health.liveness-path":"/actuator/health/live","quarkus.smallrye-health.readiness-path":"/actuator/health/ready ","quarkus.smallrye-health.root-path":"/actuator/health","quarkus.smallrye-health.ui.enable":"false","quarkus.smallrye-openapi.enable":"true","quarkus.smallrye-openapi.path":"/openapi","quarkus.swagger-ui.always-include":"true","quarkus.swagger-ui.path":"/swagger-ui"},"kind":"ConfigMap","metadata":{"annotations":{},"app":"bus-legal-customer-product-directory","labels":null,"name":"configmap-bus-legal-customer-product-directory","namespace":"proyecto-prueba-ja"}} + {"apiVersion":"v1","data":{"api.allowed.app-id":"[{\"appId\":\"DANIAPP\",\"request\":{\"serviceType\":\"P2P\",\"limitType\":\"REC\",\"casheaIndicator\":\"NO\"}}]","api.bus-legal-customer-product-directory.messages.content":"[{\"backendCode\":\"200\",\"httpCode\":200,\"statusCode\":\"200\",\"description\":\"Operacion exitosa\"},{\"backendCode\":\"R404\",\"httpCode\":404,\"statusCode\":\"404\",\"description\":\"Datos de validación no encontrado.\"},{\"backendCode\":\"503\",\"httpCode\":503,\"statusCode\":\"503\",\"description\":\"Uso interno\"},{\"backendCode\":\"422\",\"httpCode\":422,\"statusCode\":\"422\",\"description\":\"Uso interno\"},{\"backendCode\":\"500\",\"httpCode\":500,\"statusCode\":\"500\",\"description\":\"Uso interno\"},{\"backendCode\":\"100\",\"httpCode\":503,\"statusCode\":\"503\",\"description\":\"VDR13 - OSB Disponible\"},{\"backendCode\":\"OSB-382505\",\"httpCode\":503,\"statusCode\":\"503\",\"description\":\"VDR13 - OSB Disponible\"},{\"backendCode\":\"OSB-380002\",\"httpCode\":503,\"statusCode\":\"503\",\"description\":\"VDR13 - OSB Disponible\"},{\"backendCode\":\"ERROR\",\"httpCode\":400,\"statusCode\":\"400\",\"description\":\"Uso interno\"},{\"backendCode\":\"400\",\"httpCode\":400,\"statusCode\":\"400\",\"description\":\"Uso interno\"},{\"backendCode\":\"401\",\"httpCode\":401,\"statusCode\":\"401\",\"description\":\"Uso interno\"},{\"backendCode\":\"403\",\"httpCode\":403,\"statusCode\":\"403\",\"description\":\"Uso interno\"},{\"backendCode\":\"404\",\"httpCode\":404,\"statusCode\":\"404\",\"description\":\"Uso interno\"},{\"backendCode\":\"default\",\"httpCode\":409,\"statusCode\":\"409\",\"description\":\"Conflicto\"},{\"backendCode\":\"424\",\"httpCode\":424,\"statusCode\":\"424\",\"description\":\"Error de dependencia\"},{\"backendCode\":\"VDE01\",\"httpCode\":400,\"statusCode\":\"VDE01\",\"description\":\"VDE01 - Error en dato de entrada obligatorio: %s\"},{\"backendCode\":\"VDE02\",\"httpCode\":400,\"statusCode\":\"VDE02\",\"description\":\"VDE02 - Error en valor permitido para campo: %s\"},{\"backendCode\":\"VRN04\",\"httpCode\":\"503\",\"statusCode\":\"VRN04\",\"description\":\"Servicio en horario de mantenimiento\",\"status\":\"error\"},{\"backendCode\":\"204\",\"httpCode\":\"200\",\"statusCode\":\"200\",\"description\":\"Cliente sin productos\",\"status\":\"ok\"}]","api.bus-legal-customer-product-directory.messages.key":"bus-legal-customer-product-directory","api.read-messages.from-props":"true","api.rest-client.dom-legal-customer-product-directory":"{\"url\":\"http://dom-legal-customer-product-directory-route-proyecto-prueba-ja.apps.desplakur3.desintra.banesco.com/customer/accounts/retrieve/{customerId}\",\"timeout\":{\"connect\":10000,\"response\":10000}}","api.rest-client.security-trace":"{\"url\":\"http://api-register-security-route-apis-banesco-dev.apps.desplakur3.desintra.banesco.com/register-security/save\",\"timeout\":{\"connect\":10000,\"response\":10000},\"request\":{\"sp\":\"spAPI_Traza\",\"eventCod\":\"CANCTARJ\",\"bankCod\":\"01\",\"curCod\":\"BS\"}}","api.rest-client.service-status":"{\"url\":\"http://api-get-service-status-route-apis-banesco-dev.apps.desplakur3.desintra.banesco.com/service/status\",\"timeout\":{\"connect\":10000,\"response\":10000},\"request\":{\"applicationId\": \"\",\"transactionId\": \"\",\"bankService\": {\"bankCode\": \"01\",\"serviceCode\": \"APIFI\",\"eventCode\": \"P2PVUEL\"}}}","api.source-id":"BLCPD","quarkus.application.name":"bus-legal-customer-product-directory","quarkus.application.version":"1.0.0","quarkus.debug.print-startup-times":"true","quarkus.debug.reflection":"false","quarkus.http.core-threads":"1","quarkus.http.idle-timeout":"30s","quarkus.http.max-threads":"100","quarkus.http.non-application-root-path":"actuator","quarkus.http.port":"8080","quarkus.log.console.enable":"true","quarkus.log.console.format":"%d{HH:mm:ss.SSS} %-5p [%t] [%X{requestId}] %c{1} - %s%e%n","quarkus.log.level":"INFO","quarkus.profile":"dev","quarkus.smallrye-health.liveness-path":"/actuator/health/live","quarkus.smallrye-health.readiness-path":"/actuator/health/ready ","quarkus.smallrye-health.root-path":"/actuator/health","quarkus.smallrye-health.ui.enable":"false","quarkus.smallrye-openapi.enable":"true","quarkus.smallrye-openapi.path":"/openapi","quarkus.swagger-ui.always-include":"true","quarkus.swagger-ui.path":"/swagger-ui"},"kind":"ConfigMap","metadata":{"annotations":{},"app":"bus-legal-customer-product-directory","labels":null,"name":"configmap-bus-legal-customer-product-directory","namespace":"proyecto-prueba-ja"}} managedFields: - manager: kubectl-client-side-apply operation: Update apiVersion: v1 - time: '2026-01-12T23:42:23Z' + time: '2026-01-14T01:04:39Z' fieldsType: FieldsV1 fieldsV1: 'f:data': @@ -77,7 +77,7 @@ data: api.source-id: BLCPD quarkus.smallrye-health.root-path: /actuator/health quarkus.smallrye-openapi.enable: 'true' - api.rest-client.dom-legal-customer-product-directory: '{"url":"http://dom-legal-customer-product-directory-route-proyecto-prueba-ja.apps.desplakur3.desintra.banesco.com/dom-legal-customer-product-directory/retrieve/{customerIbsNumber}","timeout":{"connect":10000,"response":10000}}' + api.rest-client.dom-legal-customer-product-directory: '{"url":"http://dom-legal-customer-product-directory-route-proyecto-prueba-ja.apps.desplakur3.desintra.banesco.com/customer/accounts/retrieve/{customerId}","timeout":{"connect":10000,"response":10000}}' quarkus.smallrye-health.readiness-path: '/actuator/health/ready ' quarkus.log.console.enable: 'true' quarkus.smallrye-openapi.path: /openapi