update error messages into private api; update generals

This commit is contained in:
Ramon Ramirez 2026-01-30 15:09:19 -04:00
parent 274d5fe80d
commit 913a5af3bd
6 changed files with 92 additions and 75 deletions

View File

@ -12,6 +12,9 @@ import lombok.extern.slf4j.Slf4j;
public class RequestValidatorHelper {
private final RequestValidationConfig config;
private static final String REQUIRED_CODE = "VDE01";
private static final String VALIDATE_CODE = "VDE02";
@Inject
public RequestValidatorHelper(
RequestValidationConfig config
@ -38,13 +41,13 @@ public class RequestValidatorHelper {
private void required(String value, String fieldName) {
if (value == null || value.trim().isEmpty()) {
throw HttpStatusCodeException.badRequest("VDE01", fieldName);
throw HttpStatusCodeException.badRequest(REQUIRED_CODE, fieldName);
}
}
private void validate(String value, String regex, String fieldName) {
if (value != null && !value.isEmpty() && !value.matches(regex)) {
throw HttpStatusCodeException.badRequest("VDE02", fieldName);
throw HttpStatusCodeException.badRequest(VALIDATE_CODE, fieldName);
}
}
}

View File

@ -58,103 +58,117 @@ public class HttpRequest {
private boolean logResponseBody = true;
public static <T> HttpRequest forApiResponse(
String url,
HttpMethod method,
Class<T> dataType
String url,
HttpMethod method,
Class<T> dataType
) {
return HttpRequest.builder()
.url(url)
.method(method)
.responseType(ApiResponse.class)
.genericType(dataType)
.apiResponse(true)
.build();
.url(url)
.method(method)
.responseType(ApiResponse.class)
.genericType(dataType)
.apiResponse(true)
.build();
}
public static <T> HttpRequest forApiResponseList(
String url,
HttpMethod method,
Class<T> elementType
String url,
HttpMethod method,
Class<T> elementType
) {
return HttpRequest.builder()
.url(url)
.method(method)
.responseType(ApiResponse.class)
.complexType(TypeBuilder.listOf(elementType))
.apiResponse(true)
.listResponse(true)
.build();
.url(url)
.method(method)
.responseType(ApiResponse.class)
.complexType(TypeBuilder.listOf(elementType))
.apiResponse(true)
.listResponse(true)
.build();
}
public static <T> HttpRequest forApiPrivateResponse(
String url,
String statusSuccess,
HttpMethod method,
Class<T> successType
String url,
String statusSuccess,
HttpMethod method,
Class<T> successType
) {
return HttpRequest.builder()
.url(url)
.method(method)
.responseType(ApiPrivateResponse.class)
.complexType(TypeBuilder.parametricType(
Either.class,
successType,
ApiPrivateError.class
))
.apiPrivateResponse(true)
.eitherResponse(true)
.errorType(ApiPrivateError.class)
.statusSuccess(statusSuccess)
.build();
.url(url)
.method(method)
.responseType(ApiPrivateResponse.class)
.complexType(TypeBuilder.parametricType(
Either.class,
successType,
ApiPrivateError.class
))
.apiPrivateResponse(true)
.eitherResponse(true)
.errorType(ApiPrivateError.class)
.statusSuccess(statusSuccess)
.build();
}
public static <T> HttpRequest forApiPrivateResponseList(
String url,
String statusSuccess,
HttpMethod method,
Class<T> elementType
String url,
String statusSuccess,
HttpMethod method,
Class<T> elementType
) {
return HttpRequest.builder()
.url(url)
.method(method)
.responseType(ApiPrivateResponse.class)
.complexType(TypeBuilder.parametricType(
Either.class,
TypeBuilder.listOf(elementType),
ApiPrivateError.class
))
.apiPrivateResponse(true)
.eitherResponse(true)
.listResponse(true)
.errorType(ApiPrivateError.class)
.statusSuccess(statusSuccess)
.build();
.url(url)
.method(method)
.responseType(ApiPrivateResponse.class)
.complexType(TypeBuilder.parametricType(
Either.class,
TypeBuilder.listOf(elementType),
ApiPrivateError.class
))
.apiPrivateResponse(true)
.eitherResponse(true)
.listResponse(true)
.errorType(ApiPrivateError.class)
.statusSuccess(statusSuccess)
.build();
}
public static <T> HttpRequest forDirectResponse(
String url,
HttpMethod method,
Class<T> responseType
String url,
HttpMethod method,
Class<T> responseType
) {
return HttpRequest.builder()
.url(url)
.method(method)
.responseType(responseType)
.build();
.url(url)
.method(method)
.responseType(responseType)
.build();
}
public static <T, R> HttpRequest forDirectResponse(
String url,
HttpMethod method,
Class<T> responseType,
Class<R> errorType
) {
return HttpRequest.builder()
.url(url)
.method(method)
.responseType(responseType)
.errorType(errorType)
.build();
}
public static <T, U> HttpRequest forGenericResponse(
String url,
HttpMethod method,
Class<T> rawType,
Class<U> genericType
String url,
HttpMethod method,
Class<T> rawType,
Class<U> genericType
) {
return HttpRequest.builder()
.url(url)
.method(method)
.responseType(rawType)
.complexType(TypeBuilder.parametricType(rawType, genericType))
.build();
.url(url)
.method(method)
.responseType(rawType)
.complexType(TypeBuilder.parametricType(rawType, genericType))
.build();
}
public HttpRequest withHeaders(Map<String, String> headers) {

View File

@ -217,7 +217,7 @@ public class DocserviceFileAuditTraceResource {
})
public Response provide(
@HeaderParam("customerReferenceFintechId")
@Parameter(description = "ID de la fintech", required = true, example = "pranical-test")
@Parameter(description = "ID de la fintech", required = true, example = "provider-test")
String customerReferenceFintechId,
@HeaderParam("appId")

View File

@ -17,6 +17,6 @@ api:
rec-docservice-file-audit-trace:
messages:
key: 'rec-docservice-file-audit-trace'
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":"VRN02","httpCode":"204","statusCode":"VRN02","description":"Cliente sin productos"}]'
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"},{"backendCode":"PIB-00","httpCode":409,"statusCode":"PIB-00","description":"Error Interno backend"},{"backendCode":"PIB-01","httpCode":409,"statusCode":"PIB-01","description":"Error Interno backend"}]'
rest-client:
bus-docservice-file-audit-trace: '{"url":"http://localhost:8082/docservice-file-audit-trace/provide","timeout":{"connect":15000,"response":15000},"config":{}}'

View File

@ -60,7 +60,7 @@ data:
quarkus.debug.print-startup-times: 'true'
quarkus.swagger-ui.path: /swagger-ui
quarkus.application.name: rec-docservice-file-audit-trace
api.rec-docservice-file-audit-trace.messages.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"}]'
api.rec-docservice-file-audit-trace.messages.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"},{"backendCode":"PIB-00","httpCode":409,"statusCode":"PIB-00","description":"Error Interno backend"},{"backendCode":"PIB-01","httpCode":409,"statusCode":"PIB-01","description":"Error Interno backend"}]'
quarkus.smallrye-health.ui.enable: 'false'
quarkus.swagger-ui.always-include: 'true'
api.rest-client.bus-docservice-file-audit-trace: '{"url":"http://bus-docservice-file-audit-trace-route-proyecto-prueba-ja.apps.desplakur3.desintra.banesco.com/docservice-file-audit-trace/provide","timeout":{"connect":15000,"response":15000},"config":{}}'