update error messages into private api; update generals
This commit is contained in:
parent
058f4ac97a
commit
b3a04f80de
2
pom.xml
2
pom.xml
@ -5,7 +5,7 @@
|
|||||||
<artifactId>bus-retrieve-security-notification</artifactId>
|
<artifactId>bus-retrieve-security-notification</artifactId>
|
||||||
<version>1.0-native-quarkus-jdk17</version>
|
<version>1.0-native-quarkus-jdk17</version>
|
||||||
<name>bus-retrieve-security-notification</name>
|
<name>bus-retrieve-security-notification</name>
|
||||||
<description>API Business - Read payment statuses of the file by ID</description>
|
<description>API Business - Read alert message by ID</description>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.release>17</maven.compiler.release>
|
<maven.compiler.release>17</maven.compiler.release>
|
||||||
|
|||||||
Binary file not shown.
@ -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) {
|
||||||
|
|||||||
@ -289,7 +289,7 @@ public class CorrespondenceResource {
|
|||||||
String channelCode,
|
String channelCode,
|
||||||
|
|
||||||
@QueryParam("customerReferenceFintechId")
|
@QueryParam("customerReferenceFintechId")
|
||||||
@Parameter(description = "ID de la fintech", example = "pranical-test")
|
@Parameter(description = "ID de la fintech", example = "provider-test")
|
||||||
String customerReferenceFintechId,
|
String customerReferenceFintechId,
|
||||||
|
|
||||||
@QueryParam("appId")
|
@QueryParam("appId")
|
||||||
|
|||||||
@ -6,6 +6,8 @@ import io.quarkus.runtime.annotations.RegisterForReflection;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@ToString
|
@ToString
|
||||||
@RegisterForReflection
|
@RegisterForReflection
|
||||||
@ -13,4 +15,5 @@ public class SecurityTraceConfig {
|
|||||||
private String url;
|
private String url;
|
||||||
private TimeoutConfig timeout;
|
private TimeoutConfig timeout;
|
||||||
private SecurityTraceRequest request;
|
private SecurityTraceRequest request;
|
||||||
|
private Map<String, String> converters;
|
||||||
}
|
}
|
||||||
@ -6,6 +6,7 @@ import com.banesco.common.domain.model.ApiResponse;
|
|||||||
import com.banesco.common.domain.model.HttpRequest;
|
import com.banesco.common.domain.model.HttpRequest;
|
||||||
import com.banesco.common.infrastructure.config.RestClientConfig;
|
import com.banesco.common.infrastructure.config.RestClientConfig;
|
||||||
import com.banesco.module.correspondence.domain.dto.request.CorrespondenceRequest;
|
import com.banesco.module.correspondence.domain.dto.request.CorrespondenceRequest;
|
||||||
|
import com.banesco.module.correspondence.domain.dto.response.CorrespondenceResponse;
|
||||||
import com.banesco.module.security_trace.application.usecase.SecurityTraceUseCase;
|
import com.banesco.module.security_trace.application.usecase.SecurityTraceUseCase;
|
||||||
import com.banesco.module.security_trace.domain.dto.request.SecurityTraceRequest;
|
import com.banesco.module.security_trace.domain.dto.request.SecurityTraceRequest;
|
||||||
import com.banesco.module.security_trace.domain.model.SecurityTraceConfig;
|
import com.banesco.module.security_trace.domain.model.SecurityTraceConfig;
|
||||||
@ -16,6 +17,7 @@ import jakarta.ws.rs.core.Response;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
@ -89,12 +91,13 @@ public class SecurityTraceClient implements SecurityTraceUseCase {
|
|||||||
) {
|
) {
|
||||||
long executedTime = (endTime - startTime);
|
long executedTime = (endTime - startTime);
|
||||||
int statusHttp = apiResponse.getStatus();
|
int statusHttp = apiResponse.getStatus();
|
||||||
ApiResponse<?> apiResponseData = (ApiResponse<?>) apiResponse.getEntity();
|
ApiResponse<CorrespondenceResponse> apiResponseData =
|
||||||
|
(ApiResponse<CorrespondenceResponse>) apiResponse.getEntity();
|
||||||
|
|
||||||
return SecurityTraceRequest.builder()
|
return SecurityTraceRequest.builder()
|
||||||
.sp(securityTraceConfig.getRequest().getSp())
|
.sp(securityTraceConfig.getRequest().getSp())
|
||||||
.codBan(securityTraceConfig.getRequest().getCodBan())
|
.codBan(securityTraceConfig.getRequest().getCodBan())
|
||||||
.codMon(securityTraceConfig.getRequest().getCodMon())
|
.codMon(getCodMon(apiResponseData))
|
||||||
.codEve(securityTraceConfig.getRequest().getCodEve())
|
.codEve(securityTraceConfig.getRequest().getCodEve())
|
||||||
.codEve2(securityTraceConfig.getRequest().getCodEve2())
|
.codEve2(securityTraceConfig.getRequest().getCodEve2())
|
||||||
.login(apiRequest.getChannelCode())
|
.login(apiRequest.getChannelCode())
|
||||||
@ -118,6 +121,46 @@ public class SecurityTraceClient implements SecurityTraceUseCase {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getCodMon(
|
||||||
|
ApiResponse<CorrespondenceResponse> apiResponseData
|
||||||
|
) {
|
||||||
|
String defaultCurrency = securityTraceConfig.getRequest().getCodMon();
|
||||||
|
|
||||||
|
if(
|
||||||
|
Objects.isNull(apiResponseData) ||
|
||||||
|
Objects.isNull(apiResponseData.getData()) ||
|
||||||
|
Objects.isNull(apiResponseData.getData().getCorrespondence()) ||
|
||||||
|
apiResponseData.getData().getCorrespondence().isEmpty()
|
||||||
|
) {
|
||||||
|
log.info("Moneda asignada por defecto: {}", defaultCurrency);
|
||||||
|
return defaultCurrency;
|
||||||
|
}
|
||||||
|
|
||||||
|
String currency = apiResponseData.getData().getCorrespondence().stream()
|
||||||
|
.filter(item ->
|
||||||
|
item.getTransaction() != null &&
|
||||||
|
item.getTransaction().getFinancialTransaction() != null &&
|
||||||
|
!StringUtil.isNullOrEmpty(item.getTransaction().getFinancialTransaction().getCurrencyCode())
|
||||||
|
)
|
||||||
|
.findFirst()
|
||||||
|
.map(item -> item.getTransaction().getFinancialTransaction().getCurrencyCode())
|
||||||
|
.orElse(null);
|
||||||
|
|
||||||
|
if (StringUtil.isNullOrEmpty(currency)) {
|
||||||
|
log.info("Moneda de la peticion/respuesta vacia, asignada por defecto: {}", defaultCurrency);
|
||||||
|
return defaultCurrency;
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultCurrency = securityTraceConfig.getConverters().getOrDefault(
|
||||||
|
currency.toUpperCase(),
|
||||||
|
currency.toUpperCase()
|
||||||
|
);
|
||||||
|
|
||||||
|
log.info("Moneda convertida o por defecto: {} -> {}", currency, defaultCurrency);
|
||||||
|
|
||||||
|
return defaultCurrency;
|
||||||
|
}
|
||||||
|
|
||||||
private String getStatusMessage(
|
private String getStatusMessage(
|
||||||
ApiResponse<?> apiResponseData,
|
ApiResponse<?> apiResponseData,
|
||||||
int statusHttp
|
int statusHttp
|
||||||
|
|||||||
@ -13,8 +13,8 @@ api:
|
|||||||
bus-retrieve-security-notification:
|
bus-retrieve-security-notification:
|
||||||
messages:
|
messages:
|
||||||
key: 'bus-retrieve-security-notification'
|
key: 'bus-retrieve-security-notification'
|
||||||
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:
|
rest-client:
|
||||||
dom-retrieve-security-notification: '{"url":"http://localhost:8083/correspondence/retrieve/{securityNotificationId}/{channelCode}","timeout":{"connect":10000,"response":10000}}'
|
dom-retrieve-security-notification: '{"url":"http://localhost:8083/correspondence/retrieve/{securityNotificationId}/{channelCode}","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","codEve":"CONSALERTS","codEve2":"CONSALERTS","codBan":"01","codMon":"BS"}}'
|
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","codEve":"CONSALERTS","codEve2":"CONSALERTS","codBan":"01","codMon":"BS"},"converters":{"VES":"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"}}}'
|
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"}}}'
|
||||||
Loading…
x
Reference in New Issue
Block a user