update error messages into private api; update generals
This commit is contained in:
parent
c2893f5e49
commit
078010ac85
Binary file not shown.
@ -12,6 +12,9 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
public class RequestValidatorHelper {
|
public class RequestValidatorHelper {
|
||||||
private final RequestValidationConfig config;
|
private final RequestValidationConfig config;
|
||||||
|
|
||||||
|
private static final String REQUIRED_CODE = "VDE01";
|
||||||
|
private static final String VALIDATE_CODE = "VDE02";
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public RequestValidatorHelper(
|
public RequestValidatorHelper(
|
||||||
RequestValidationConfig config
|
RequestValidationConfig config
|
||||||
@ -30,18 +33,18 @@ public class RequestValidatorHelper {
|
|||||||
public void validateFieldValues(
|
public void validateFieldValues(
|
||||||
LegalCustomerProductDirectoryRequest request
|
LegalCustomerProductDirectoryRequest request
|
||||||
) {
|
) {
|
||||||
validate(request.getCustomerId(), config.customerId(), "customerId");
|
validate(request.getCustomerId(), config.customerIdNumber(), "customerId");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void required(String value, String fieldName) {
|
private void required(String value, String fieldName) {
|
||||||
if (value == null || value.trim().isEmpty()) {
|
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) {
|
private void validate(String value, String regex, String fieldName) {
|
||||||
if (value != null && !value.isEmpty() && !value.matches(regex)) {
|
if (value != null && !value.isEmpty() && !value.matches(regex)) {
|
||||||
throw HttpStatusCodeException.badRequest("VDE02", fieldName);
|
throw HttpStatusCodeException.badRequest(VALIDATE_CODE, fieldName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,103 +58,117 @@ public class HttpRequest {
|
|||||||
private boolean logResponseBody = true;
|
private boolean logResponseBody = true;
|
||||||
|
|
||||||
public static <T> HttpRequest forApiResponse(
|
public static <T> HttpRequest forApiResponse(
|
||||||
String url,
|
String url,
|
||||||
HttpMethod method,
|
HttpMethod method,
|
||||||
Class<T> dataType
|
Class<T> dataType
|
||||||
) {
|
) {
|
||||||
return HttpRequest.builder()
|
return HttpRequest.builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method(method)
|
.method(method)
|
||||||
.responseType(ApiResponse.class)
|
.responseType(ApiResponse.class)
|
||||||
.genericType(dataType)
|
.genericType(dataType)
|
||||||
.apiResponse(true)
|
.apiResponse(true)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> HttpRequest forApiResponseList(
|
public static <T> HttpRequest forApiResponseList(
|
||||||
String url,
|
String url,
|
||||||
HttpMethod method,
|
HttpMethod method,
|
||||||
Class<T> elementType
|
Class<T> elementType
|
||||||
) {
|
) {
|
||||||
return HttpRequest.builder()
|
return HttpRequest.builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method(method)
|
.method(method)
|
||||||
.responseType(ApiResponse.class)
|
.responseType(ApiResponse.class)
|
||||||
.complexType(TypeBuilder.listOf(elementType))
|
.complexType(TypeBuilder.listOf(elementType))
|
||||||
.apiResponse(true)
|
.apiResponse(true)
|
||||||
.listResponse(true)
|
.listResponse(true)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> HttpRequest forApiPrivateResponse(
|
public static <T> HttpRequest forApiPrivateResponse(
|
||||||
String url,
|
String url,
|
||||||
String statusSuccess,
|
String statusSuccess,
|
||||||
HttpMethod method,
|
HttpMethod method,
|
||||||
Class<T> successType
|
Class<T> successType
|
||||||
) {
|
) {
|
||||||
return HttpRequest.builder()
|
return HttpRequest.builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method(method)
|
.method(method)
|
||||||
.responseType(ApiPrivateResponse.class)
|
.responseType(ApiPrivateResponse.class)
|
||||||
.complexType(TypeBuilder.parametricType(
|
.complexType(TypeBuilder.parametricType(
|
||||||
Either.class,
|
Either.class,
|
||||||
successType,
|
successType,
|
||||||
ApiPrivateError.class
|
ApiPrivateError.class
|
||||||
))
|
))
|
||||||
.apiPrivateResponse(true)
|
.apiPrivateResponse(true)
|
||||||
.eitherResponse(true)
|
.eitherResponse(true)
|
||||||
.errorType(ApiPrivateError.class)
|
.errorType(ApiPrivateError.class)
|
||||||
.statusSuccess(statusSuccess)
|
.statusSuccess(statusSuccess)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> HttpRequest forApiPrivateResponseList(
|
public static <T> HttpRequest forApiPrivateResponseList(
|
||||||
String url,
|
String url,
|
||||||
String statusSuccess,
|
String statusSuccess,
|
||||||
HttpMethod method,
|
HttpMethod method,
|
||||||
Class<T> elementType
|
Class<T> elementType
|
||||||
) {
|
) {
|
||||||
return HttpRequest.builder()
|
return HttpRequest.builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method(method)
|
.method(method)
|
||||||
.responseType(ApiPrivateResponse.class)
|
.responseType(ApiPrivateResponse.class)
|
||||||
.complexType(TypeBuilder.parametricType(
|
.complexType(TypeBuilder.parametricType(
|
||||||
Either.class,
|
Either.class,
|
||||||
TypeBuilder.listOf(elementType),
|
TypeBuilder.listOf(elementType),
|
||||||
ApiPrivateError.class
|
ApiPrivateError.class
|
||||||
))
|
))
|
||||||
.apiPrivateResponse(true)
|
.apiPrivateResponse(true)
|
||||||
.eitherResponse(true)
|
.eitherResponse(true)
|
||||||
.listResponse(true)
|
.listResponse(true)
|
||||||
.errorType(ApiPrivateError.class)
|
.errorType(ApiPrivateError.class)
|
||||||
.statusSuccess(statusSuccess)
|
.statusSuccess(statusSuccess)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> HttpRequest forDirectResponse(
|
public static <T> HttpRequest forDirectResponse(
|
||||||
String url,
|
String url,
|
||||||
HttpMethod method,
|
HttpMethod method,
|
||||||
Class<T> responseType
|
Class<T> responseType
|
||||||
) {
|
) {
|
||||||
return HttpRequest.builder()
|
return HttpRequest.builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method(method)
|
.method(method)
|
||||||
.responseType(responseType)
|
.responseType(responseType)
|
||||||
.build();
|
.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(
|
public static <T, U> HttpRequest forGenericResponse(
|
||||||
String url,
|
String url,
|
||||||
HttpMethod method,
|
HttpMethod method,
|
||||||
Class<T> rawType,
|
Class<T> rawType,
|
||||||
Class<U> genericType
|
Class<U> genericType
|
||||||
) {
|
) {
|
||||||
return HttpRequest.builder()
|
return HttpRequest.builder()
|
||||||
.url(url)
|
.url(url)
|
||||||
.method(method)
|
.method(method)
|
||||||
.responseType(rawType)
|
.responseType(rawType)
|
||||||
.complexType(TypeBuilder.parametricType(rawType, genericType))
|
.complexType(TypeBuilder.parametricType(rawType, genericType))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
public HttpRequest withHeaders(Map<String, String> headers) {
|
public HttpRequest withHeaders(Map<String, String> headers) {
|
||||||
|
|||||||
@ -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 customerId();
|
String customerIdNumber();
|
||||||
String accountStatus();
|
String accountStatus();
|
||||||
String productCvCode();
|
String productCvCode();
|
||||||
String limitType();
|
String limitType();
|
||||||
|
|||||||
@ -318,7 +318,7 @@ public class LegalCustomerProductDirectoryResource {
|
|||||||
})
|
})
|
||||||
public Response retrieve(
|
public Response retrieve(
|
||||||
@HeaderParam("customerReferenceFintechId")
|
@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,
|
String customerReferenceFintechId,
|
||||||
|
|
||||||
@HeaderParam("appId")
|
@HeaderParam("appId")
|
||||||
|
|||||||
@ -10,7 +10,7 @@ api:
|
|||||||
source-id: RLCPD
|
source-id: RLCPD
|
||||||
allowed:
|
allowed:
|
||||||
request-validation:
|
request-validation:
|
||||||
customer-id: '\d+'
|
customer-id-number: '\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)$'
|
||||||
@ -21,6 +21,6 @@ api:
|
|||||||
rec-legal-customer-product-directory:
|
rec-legal-customer-product-directory:
|
||||||
messages:
|
messages:
|
||||||
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":"VRN01","httpCode":"400","statusCode":"VRN01","description":"Campo Codigo de IBS Requerido"},{"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":"VRN01","httpCode":400,"statusCode":"VRN01","description":"Campo Codigo de IBS Requerido"},{"backendCode":"VRN02","httpCode":204,"statusCode":"VRN02","description":"Cliente sin productos"}]'
|
||||||
rest-client:
|
rest-client:
|
||||||
bus-legal-customer-product-directory: '{"url":"http://localhost:8082/legal-customer-product-directory/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":{}}'
|
||||||
@ -68,14 +68,13 @@ data:
|
|||||||
api.allowed.request-validation.limit-type: ^(PAG|REC)$
|
api.allowed.request-validation.limit-type: ^(PAG|REC)$
|
||||||
api.allowed.request-validation.product-cv-code: ^(CV|CVFL)$
|
api.allowed.request-validation.product-cv-code: ^(CV|CVFL)$
|
||||||
api.read-messages.from-props: 'true'
|
api.read-messages.from-props: 'true'
|
||||||
api.rest-client.register-security: '{"url":"http://api-register-security-route-proyecto-prueba-ja.apps.desplakur3.desintra.banesco.com/register-security/save","timeout":{"connect":20000,"response":20000},"config":{"sp":"spAPI_Traza","codEve":"P2PVUEL","codEve2":"P2PVUEL","codBan":"01","codMon":"BS"}}'
|
|
||||||
quarkus.http.port: '8080'
|
quarkus.http.port: '8080'
|
||||||
api.allowed.request-validation.customer-ibs-number: \d+
|
api.allowed.request-validation.customer-ibs-number: \d+
|
||||||
quarkus.profile: dev
|
quarkus.profile: dev
|
||||||
api.allowed.request-validation.account-status: ^(A|O|ACTBSUSD)$
|
api.allowed.request-validation.account-status: ^(A|O|ACTBSUSD)$
|
||||||
quarkus.log.console.format: '%d{HH:mm:ss.SSS} %-5p [%t] [%X{requestId}] %c{1} - %s%e%n'
|
quarkus.log.console.format: '%d{HH:mm:ss.SSS} %-5p [%t] [%X{requestId}] %c{1} - %s%e%n'
|
||||||
quarkus.http.idle-timeout: 30s
|
quarkus.http.idle-timeout: 30s
|
||||||
api.recLogalCustomerProductDirectory.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"}]'
|
api.recLogalCustomerProductDirectory.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":"VRN01","httpCode":400,"statusCode":"VRN01","description":"Campo Codigo de IBS Requerido"},{"backendCode":"VRN02","httpCode":204,"statusCode":"VRN02","description":"Cliente sin productos"}]'
|
||||||
quarkus.thread-pool.max-threads: '100'
|
quarkus.thread-pool.max-threads: '100'
|
||||||
quarkus.smallrye-health.liveness-path: /actuator/health/live
|
quarkus.smallrye-health.liveness-path: /actuator/health/live
|
||||||
api.source-id: LCPD
|
api.source-id: LCPD
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user