udpate path and parameter

This commit is contained in:
Ramon Ramirez 2026-01-14 09:09:13 -04:00
parent 5a1c6fa2c5
commit bfa8359c52
9 changed files with 17 additions and 25 deletions

View File

@ -22,7 +22,7 @@ public class RequestValidatorHelper {
public void validateRequired(
LegalCustomerProductDirectoryRequest request
) {
required(request.getCustomerIbsNumber(), "customerIbsNumber");
required(request.getCustomerId(), "customerId");
required(request.getCustomerReferenceFintechId(), "customerReferenceFintechId");
required(request.getAppId(), "appId");
}
@ -30,7 +30,7 @@ public class RequestValidatorHelper {
public void validateFieldValues(
LegalCustomerProductDirectoryRequest request
) {
validate(request.getCustomerIbsNumber(), config.customerIbsNumber(), "customerIbsNumber");
validate(request.getCustomerId(), config.customerId(), "customerId");
validate(request.getAccountStatus(), config.accountStatus(), "accountStatus");
validate(request.getProductCvCode(), config.productCvCode(), "productCvCode");
validate(request.getLimitType(), config.limitType(), "limitType");

View File

@ -4,7 +4,7 @@ import io.smallrye.config.ConfigMapping;
@ConfigMapping(prefix = "api.allowed.request-validation")
public interface RequestValidationConfig {
String customerIbsNumber();
String customerId();
String accountStatus();
String productCvCode();
String limitType();

View File

@ -37,7 +37,7 @@ public class LegalCustomerProductDirectoryService implements LegalCustomerProduc
public ApiResponse<LegalCustomerProductDirectoryResponse> execute(
LegalCustomerProductDirectoryRequest request
) {
log.info("Iniciando ejecucion para el cliente: {}", request.getCustomerIbsNumber());
log.info("Iniciando ejecucion para el cliente: {}", request.getCustomerId());
validate(request);
@ -72,7 +72,7 @@ public class LegalCustomerProductDirectoryService implements LegalCustomerProduc
private ApiResponse<LegalCustomerProductDirectoryResponse> business(
LegalCustomerProductDirectoryRequest request
) {
log.info("Ejecutando llamada al api de negocio: {}", request.getCustomerIbsNumber());
log.info("Ejecutando llamada al api de negocio: {}", request.getCustomerId());
return businessUseCase.execute(request, LegalCustomerProductDirectoryResponse.class);
}
}

View File

@ -20,7 +20,7 @@ public class LegalCustomerProductDirectoryRequest {
@NonNull
private String appId; // Header obligatorio
@NonNull
private String customerIbsNumber; // VCUSCUN - Obligatorio (Numero de cliente IBS)
private String customerId; // VCUSCUN - Obligatorio (Numero de cliente IBS)
private String bankNumber; // VACMBNK - Numero de Banco (filtro)
private String currencyCode; // VACMCCY - Moneda (filtro)

View File

@ -36,22 +36,14 @@ public class BusLegalCustomerProductDirectoryClient implements BusinessUseCase {
LegalCustomerProductDirectoryRequest params,
Class<T> responseType
) {
String customerIbsNumber = params.getCustomerIbsNumber();
Map<String, String> pathParams = Map.of("customerId", customerIbsNumber);
Map<String, String> queryParams = params.toQueryString();
log.info("Construyendo request al API de negocio");
log.info("URL base configurada: {}", businessConfig.getUrl());
log.info("Path params: {}", pathParams);
log.info("Query params: {}", queryParams);
String customerId = params.getCustomerId();
HttpRequest request = HttpRequest.forApiResponse(
businessConfig.getUrl(),
HttpRequest.HttpMethod.GET,
responseType
)
.withPathParams(pathParams)
.withQueryParams(queryParams)
.withPathParams(Map.of("customerId", customerId))
.withQueryParams(params.toQueryString())
.withTimeout(
businessConfig.getTimeout().getConnect(),
businessConfig.getTimeout().getResponse()
@ -71,7 +63,7 @@ public class BusLegalCustomerProductDirectoryClient implements BusinessUseCase {
} catch (HttpApiResponseException e) {
log.error(
"Error HTTP con ApiResponse consultando cliente {}: {}",
customerIbsNumber,
customerId,
e.getApiResponse()
);
@ -82,14 +74,14 @@ public class BusLegalCustomerProductDirectoryClient implements BusinessUseCase {
} catch (HttpStatusCodeException e) {
log.error(
"Error HTTP consultando cliente {}: {} - {}",
customerIbsNumber,
customerId,
e.getStatusCode(),
e.getMessage()
);
throw e;
} catch (Exception e) {
log.error("Error consultando cliente {}: {}", customerIbsNumber, e.getMessage());
log.error("Error consultando cliente {}: {}", customerId, e.getMessage());
throw HttpStatusCodeException.serviceUnavailable("503");
}
}

View File

@ -219,7 +219,7 @@ public class LegalCustomerProductDirectoryResource {
"data": null,
"statusResponse": {
"statusCode": "VDE01",
"message": "El campo customerIbsNumber es obligatorio"
"message": "El campo customerId es obligatorio"
}
}
"""
@ -338,7 +338,7 @@ public class LegalCustomerProductDirectoryResource {
try {
return Response.ok(useCase.execute(
LegalCustomerProductDirectoryRequest.builder()
.customerIbsNumber(Objects.toString(customerId, ""))
.customerId(Objects.toString(customerId, ""))
.customerReferenceFintechId(customerReferenceFintechId)
.appId(appId)
.build()

View File

@ -10,7 +10,7 @@ api:
source-id: RLCPD
allowed:
request-validation:
customer-ibs-number: '\d+'
customer-id: '\d+'
account-status: '^(A|D|ACTBSUSD)$'
product-cv-code: '^(CV|CVFL)$'
limit-type: '^(PAG|REC)$'
@ -23,4 +23,4 @@ api:
key: 'rec-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:
bus-legal-customer-product-directory: '{"url":"http://localhost:8082/customer/accounts/retrieve/{customerId}","timeout":{"connect":15000,"response":15000},"config":{}}'
bus-legal-customer-product-directory: '{"url":"http://localhost:8082/legal-customer-product-directory/retrieve/{customerId}","timeout":{"connect":15000,"response":15000},"config":{}}'

View File

@ -85,5 +85,5 @@ data:
quarkus.smallrye-health.readiness-path: /actuator/health/ready
api.allowed.request-validation.cachea-indicator: ^(SI|NO)$
quarkus.log.console.enable: 'true'
api.rest-client.bus-legal-customer-product-directory: '{"url":"http://bus-legal-customer-product-directory-route-proyecto-prueba-ja.apps.desplakur3.desintra.banesco.com/customer/accounts/retrieve/{customerId}","timeout":{"connect":20000,"response":20000},"config":{}}'
api.rest-client.bus-legal-customer-product-directory: '{"url":"http://bus-legal-customer-product-directory-route-proyecto-prueba-ja.apps.desplakur3.desintra.banesco.com/legal-customer-product-directory/retrieve/{customerId}","timeout":{"connect":20000,"response":20000},"config":{}}'
quarkus.smallrye-openapi.path: /openapi