diff --git a/pom.xml b/pom.xml index 7881cbb..05d7e53 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ dom-create-security-notification 1.0-native-quarkus-jdk17 dom-create-security-notification - API Domain - Create payment single request + API Domain - Create payment alert 17 diff --git a/scripts/native/file/dom-create-security-notification-1.0-native-quarkus-jdk17-runner b/scripts/native/file/dom-create-security-notification-1.0-native-quarkus-jdk17-runner index e1ca0b1..685c14e 100644 Binary files a/scripts/native/file/dom-create-security-notification-1.0-native-quarkus-jdk17-runner and b/scripts/native/file/dom-create-security-notification-1.0-native-quarkus-jdk17-runner differ diff --git a/src/main/java/com/banesco/common/domain/model/HttpRequest.java b/src/main/java/com/banesco/common/domain/model/HttpRequest.java index 7b99dae..35a46e8 100644 --- a/src/main/java/com/banesco/common/domain/model/HttpRequest.java +++ b/src/main/java/com/banesco/common/domain/model/HttpRequest.java @@ -143,6 +143,20 @@ public class HttpRequest { .build(); } + public static HttpRequest forDirectResponse( + String url, + HttpMethod method, + Class responseType, + Class errorType + ) { + return HttpRequest.builder() + .url(url) + .method(method) + .responseType(responseType) + .errorType(errorType) + .build(); + } + public static HttpRequest forGenericResponse( String url, HttpMethod method, diff --git a/src/main/java/com/banesco/common/infrastructure/config/RestClientConfig.java b/src/main/java/com/banesco/common/infrastructure/config/RestClientConfig.java index 8152f5b..acee1e7 100644 --- a/src/main/java/com/banesco/common/infrastructure/config/RestClientConfig.java +++ b/src/main/java/com/banesco/common/infrastructure/config/RestClientConfig.java @@ -21,7 +21,7 @@ public class RestClientConfig { private final ObjectMapper objectMapper; private static final String API_BASE = "api.rest-client."; - private static final String API_PAYMENT_FILE_NAME = "security-notification"; + private static final String API_SECURITY_NOTIFICATION_NAME = "security-notification"; @Inject public RestClientConfig( @@ -33,7 +33,7 @@ public class RestClientConfig { } public SecurityNotificationConfig getSecurityNotificationConfig() { - return getConfig(API_PAYMENT_FILE_NAME, SecurityNotificationConfig.class); + return getConfig(API_SECURITY_NOTIFICATION_NAME, SecurityNotificationConfig.class); } private T getConfig( diff --git a/src/main/java/com/banesco/module/correspondence/application/service/CorrespondenceService.java b/src/main/java/com/banesco/module/correspondence/application/service/CorrespondenceService.java index 456a948..537bfb0 100644 --- a/src/main/java/com/banesco/module/correspondence/application/service/CorrespondenceService.java +++ b/src/main/java/com/banesco/module/correspondence/application/service/CorrespondenceService.java @@ -45,7 +45,7 @@ public class CorrespondenceService implements CorrespondenceUseCase { ); } catch (ApiPrivateException e) { log.warn("Excepcion de la api privada: {} -> {}", e.getStatusCode(), e.getMessage()); - response = messageHelper.handleException(HttpStatusCodeException.badRequest("400")); + response = messageHelper.handleException(HttpStatusCodeException.conflict(e.getStatusCode())); } catch (HttpStatusCodeException e) { log.error("Excepcion HTTP del api privada: {} - {}", e.getStatusCode(), e.getErrorCode()); response = messageHelper.handleException(e); diff --git a/src/main/java/com/banesco/module/correspondence/infrastructure/adapter/ApiPrivateAdapter.java b/src/main/java/com/banesco/module/correspondence/infrastructure/adapter/ApiPrivateAdapter.java index a2e1b3f..88d88e4 100644 --- a/src/main/java/com/banesco/module/correspondence/infrastructure/adapter/ApiPrivateAdapter.java +++ b/src/main/java/com/banesco/module/correspondence/infrastructure/adapter/ApiPrivateAdapter.java @@ -30,11 +30,12 @@ public class ApiPrivateAdapter implements ApiPrivateRepository { CorrespondenceRequest request ) { SecurityNotification response = securityNotificationUseCase.execute( - ServicingIssueMapper.toSecurityNotification(request), SecurityNotification.class + ServicingIssueMapper.toSecurityNotification(request), + SecurityNotification.class ); if(Objects.isNull(response) || Objects.isNull(response.getId())) { - throw HttpStatusCodeException.badRequest("400"); + throw HttpStatusCodeException.conflict("PIBE-00"); } log.info("Resultado de la transaccion obtenida: {}", response.getId()); diff --git a/src/main/java/com/banesco/module/instruction/domain/model/Instruction.java b/src/main/java/com/banesco/module/instruction/domain/model/Instruction.java index 14614de..3f1054b 100644 --- a/src/main/java/com/banesco/module/instruction/domain/model/Instruction.java +++ b/src/main/java/com/banesco/module/instruction/domain/model/Instruction.java @@ -12,5 +12,5 @@ import lombok.*; @RegisterForReflection @JsonInclude(JsonInclude.Include.NON_NULL) public class Instruction { - private String instructionPurposeType; // Request JSON: "channelOrigin" (BOL) + private String instructionPurposeType; // Request JSON: "channelOrigin" (consolaPredictiva) } diff --git a/src/main/java/com/banesco/module/security_notification/infrastructure/client/SecurityNotificationClient.java b/src/main/java/com/banesco/module/security_notification/infrastructure/client/SecurityNotificationClient.java index b5cc6ab..c291861 100644 --- a/src/main/java/com/banesco/module/security_notification/infrastructure/client/SecurityNotificationClient.java +++ b/src/main/java/com/banesco/module/security_notification/infrastructure/client/SecurityNotificationClient.java @@ -26,6 +26,8 @@ public class SecurityNotificationClient implements SecurityNotificationUseCase { private final HttpClientUseCase httpClientUseCase; private final SecurityNotificationConfig securityNotificationConfig; + private static final String EMPTY_MESSAGE = "EMPTY_MESSAGE"; + @Inject public SecurityNotificationClient( SerializationHelper serializationHelper, @@ -72,12 +74,19 @@ public class SecurityNotificationClient implements SecurityNotificationUseCase { ); throw ApiPrivateException.builder() - .statusCode(response.getEstatus()) - .message("EMPTY_MESSAGE") + .statusCode("PIBE-00") + .message(EMPTY_MESSAGE) .build(); } if (detail.isLeft()) { + if(detail.getLeft() == null) { + throw ApiPrivateException.builder() + .statusCode("PIBE-00") + .message(EMPTY_MESSAGE) + .build(); + } + return detail.getLeft(); } @@ -92,10 +101,10 @@ public class SecurityNotificationClient implements SecurityNotificationUseCase { ); throw ApiPrivateException.builder() - .statusCode(response.getEstatus()) + .statusCode("PIBE-01") .message((error.getCodError() != null) ? error.getCodError() + ":" + error.getMensajeError() - : "EMPTY_MESSAGE" + : EMPTY_MESSAGE ) .build(); } catch (ApiPrivateException e) { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index e0d3f04..69b2117 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -13,6 +13,6 @@ api: dom-create-security-notification: messages: key: 'dom-create-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":"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":"PIBE-00","httpCode":409,"statusCode":"PIB-00","description":"Error Interno backend"},{"backendCode":"PIBE-01","httpCode":409,"statusCode":"PIB-01","description":"Error Interno backend"}]' rest-client: security-notification: '{"url":"http://10.135.193.156:8080/AlertSecurity/notificationInteractive/v1/generate/createAlertPush","timeout":{"connect":10000,"response":10000},"valueDefault":{"currency":"VES","expirationTime":0},"statusSuccess":"00"}' \ No newline at end of file diff --git a/src/main/resources/configmap.yaml b/src/main/resources/configmap.yaml index 2fb682b..9e60919 100644 --- a/src/main/resources/configmap.yaml +++ b/src/main/resources/configmap.yaml @@ -72,7 +72,7 @@ data: api.read-messages.from-props: 'true' quarkus.http.port: '8080' quarkus.profile: dev - api.dom-create-security-notification.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"},{"backend_code":"204","http_code":"200","status_code":"200","description":"Cliente sin productos","status":"ok"}]' + api.dom-create-security-notification.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":"PIBE-00","httpCode":409,"statusCode":"PIB-00","description":"Error Interno backend"},{"backendCode":"PIBE-01","httpCode":409,"statusCode":"PIB-01","description":"Error Interno backend"}]' quarkus.log.console.format: '%d{HH:mm:ss.SSS} %-5p [%t] [%X{requestId}] %c{1} - %s%e%n' quarkus.http.idle-timeout: 30s quarkus.thread-pool.max-threads: '100'