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

View File

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

View File

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

View File

@ -20,7 +20,7 @@ public class LegalCustomerProductDirectoryRequest {
@NonNull @NonNull
private String appId; // Header obligatorio private String appId; // Header obligatorio
@NonNull @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 bankNumber; // VACMBNK - Numero de Banco (filtro)
private String currencyCode; // VACMCCY - Moneda (filtro) private String currencyCode; // VACMCCY - Moneda (filtro)

View File

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

View File

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

View File

@ -10,7 +10,7 @@ api:
source-id: RLCPD source-id: RLCPD
allowed: allowed:
request-validation: request-validation:
customer-ibs-number: '\d+' customer-id: '\d+'
account-status: '^(A|D|ACTBSUSD)$' account-status: '^(A|D|ACTBSUSD)$'
product-cv-code: '^(CV|CVFL)$' product-cv-code: '^(CV|CVFL)$'
limit-type: '^(PAG|REC)$' limit-type: '^(PAG|REC)$'
@ -23,4 +23,4 @@ api:
key: 'rec-legal-customer-product-directory' 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"}]' 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: 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 quarkus.smallrye-health.readiness-path: /actuator/health/ready
api.allowed.request-validation.cachea-indicator: ^(SI|NO)$ api.allowed.request-validation.cachea-indicator: ^(SI|NO)$
quarkus.log.console.enable: 'true' 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 quarkus.smallrye-openapi.path: /openapi