diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 59eb284..81b801a 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -8,11 +8,14 @@ - + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 324f616..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 35eb1dd..1759d97 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,5 +2,6 @@ + \ No newline at end of file diff --git a/bus-update-card-status/pom.xml b/bus-update-card-status/pom.xml index b63c4bd..1e17fa4 100644 --- a/bus-update-card-status/pom.xml +++ b/bus-update-card-status/pom.xml @@ -45,7 +45,7 @@ com.banesco - commons-bian + commons 1.0 diff --git a/bus-update-card-status/src/main/java/com/banesco/application/helper/UpdateCardStatusRequestValidator.java b/bus-update-card-status/src/main/java/com/banesco/application/helper/UpdateCardStatusRequestValidator.java index 1a92b57..682092b 100644 --- a/bus-update-card-status/src/main/java/com/banesco/application/helper/UpdateCardStatusRequestValidator.java +++ b/bus-update-card-status/src/main/java/com/banesco/application/helper/UpdateCardStatusRequestValidator.java @@ -2,7 +2,7 @@ package com.banesco.application.helper; import com.banesco.common.application.exception.BanRuntimeException; -import com.banesco.common.domain.dto.bian.device.StringHelper; +import com.banesco.common.infraestructure.helpers.StringHelper; import com.banesco.commons.config.StatusCodes; import com.banesco.domain.bian.request.BusUpdateCardStatusRequest; import jakarta.enterprise.context.ApplicationScoped; diff --git a/bus-update-card-status/src/main/java/com/banesco/application/rest/controllers/UpdateCardStatusController.java b/bus-update-card-status/src/main/java/com/banesco/application/rest/controllers/UpdateCardStatusController.java index c0e32eb..418c511 100644 --- a/bus-update-card-status/src/main/java/com/banesco/application/rest/controllers/UpdateCardStatusController.java +++ b/bus-update-card-status/src/main/java/com/banesco/application/rest/controllers/UpdateCardStatusController.java @@ -3,9 +3,9 @@ package com.banesco.application.rest.controllers; import com.banesco.application.helper.UpdateCardStatusRequestValidator; import com.banesco.common.application.exception.BanBackendException; import com.banesco.common.application.exception.BanRuntimeException; -import com.banesco.common.domain.dto.bian.device.JsonHelper; -import com.banesco.common.domain.dto.bian.device.LoggerHelper; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; +import com.banesco.common.infraestructure.helpers.JsonHelper; +import com.banesco.common.infraestructure.helpers.LoggerHelper; import com.banesco.commons.config.AppConf; import com.banesco.commons.config.StatusCodes; import com.banesco.domain.bian.request.BusUpdateCardStatusRequest; @@ -153,7 +153,6 @@ public class UpdateCardStatusController { BusUpdateCardStatusRequest request) { - BusUpdateCardStatusResponse dataResponse = null; log.info("INICIO =>"); String requestId = request.getRequestId(); log.info(LoggerHelper.buildInfoRequest(requestId, JsonHelper.getJsonFromObject(request))); @@ -195,9 +194,10 @@ public class UpdateCardStatusController { } BusUpdateCardStatusResponse response = new BusUpdateCardStatusResponse(); + response.setStatusResponse( - new StatusResponse( - backendCode.equals(StatusCodes.SUCCESS_OPERATION.getStatusCode()) ? "ok" : "error", + new BianStatusResponse( + backendDesc.equals(StatusCodes.SUCCESS_OPERATION.getStatusDesc()) ? "ok" : "error", backendCode, backendDesc, requestId diff --git a/bus-update-card-status/src/main/java/com/banesco/commons/config/AppConf.java b/bus-update-card-status/src/main/java/com/banesco/commons/config/AppConf.java index a8bf2ff..8e187dc 100644 --- a/bus-update-card-status/src/main/java/com/banesco/commons/config/AppConf.java +++ b/bus-update-card-status/src/main/java/com/banesco/commons/config/AppConf.java @@ -1,10 +1,10 @@ package com.banesco.commons.config; import com.banesco.common.application.exception.BanRuntimeException; -import com.banesco.common.domain.dto.bian.device.DateHelper; -import com.banesco.common.domain.dto.bian.device.JsonHelper; -import com.banesco.common.domain.dto.bian.device.RequestHelper; import com.banesco.common.domain.model.ApiConfig; +import com.banesco.common.infraestructure.helpers.DateHelper; +import com.banesco.common.infraestructure.helpers.JsonHelper; +import com.banesco.common.infraestructure.helpers.RequestHelper; import com.banesco.commons.exceptions.BanConfigException; import com.banesco.domain.models.CurrentState; import jakarta.inject.Singleton; @@ -13,7 +13,7 @@ import lombok.extern.slf4j.Slf4j; import org.eclipse.microprofile.config.Config; import org.eclipse.microprofile.config.ConfigProvider; -import java.time.LocalDateTime; +import java.util.Map; import java.util.NoSuchElementException; @@ -86,10 +86,10 @@ public class AppConf { public CurrentState getCurrentState(String requestId) { - LocalDateTime now = dateHelper.getCurrentDateTime(); + Map now = (Map) dateHelper.getCurrentVenezuelanDateTime(true); return new CurrentState( - dateHelper.getDate(now), - dateHelper.getTime(now), + now.get("date"), + now.get("time"), requestId ); } diff --git a/bus-update-card-status/src/main/java/com/banesco/commons/exceptions/InternalExceptionMapper.java b/bus-update-card-status/src/main/java/com/banesco/commons/exceptions/InternalExceptionMapper.java index 70dffff..dee0686 100644 --- a/bus-update-card-status/src/main/java/com/banesco/commons/exceptions/InternalExceptionMapper.java +++ b/bus-update-card-status/src/main/java/com/banesco/commons/exceptions/InternalExceptionMapper.java @@ -1,6 +1,6 @@ package com.banesco.commons.exceptions; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import com.banesco.domain.bian.response.BusUpdateCardStatusResponse; import io.vertx.ext.web.RoutingContext; import jakarta.inject.Inject; @@ -29,7 +29,7 @@ public class InternalExceptionMapper { case "/card/status/update": BusUpdateCardStatusResponse response = new BusUpdateCardStatusResponse(); response.setStatusResponse( - new StatusResponse( + new BianStatusResponse( "error", "CONFLICT", "Uso interno", diff --git a/bus-update-card-status/src/main/java/com/banesco/commons/exceptions/MalformedPayloadExceptionMapper.java b/bus-update-card-status/src/main/java/com/banesco/commons/exceptions/MalformedPayloadExceptionMapper.java index 0e2b663..e14359f 100644 --- a/bus-update-card-status/src/main/java/com/banesco/commons/exceptions/MalformedPayloadExceptionMapper.java +++ b/bus-update-card-status/src/main/java/com/banesco/commons/exceptions/MalformedPayloadExceptionMapper.java @@ -1,6 +1,6 @@ package com.banesco.commons.exceptions; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import com.banesco.commons.config.StatusCodes; import com.banesco.domain.bian.response.BusUpdateCardStatusResponse; import io.vertx.core.http.HttpServerRequest; @@ -29,13 +29,13 @@ public class MalformedPayloadExceptionMapper implements ExceptionMapper { public BusUpdateCardStatusResponse() { super(); } - public BusUpdateCardStatusResponse(StatusResponse statusResponse) { - super(statusResponse); + public BusUpdateCardStatusResponse(BianStatusResponse statusResponse, Object data) { + super(statusResponse, data); } @Override diff --git a/bus-update-card-status/src/main/java/com/banesco/domain/ports/outbound/PaymentCardPort.java b/bus-update-card-status/src/main/java/com/banesco/domain/ports/outbound/PaymentCardPort.java index 1bc47c0..dc717a0 100644 --- a/bus-update-card-status/src/main/java/com/banesco/domain/ports/outbound/PaymentCardPort.java +++ b/bus-update-card-status/src/main/java/com/banesco/domain/ports/outbound/PaymentCardPort.java @@ -1,9 +1,8 @@ package com.banesco.domain.ports.outbound; -import com.banesco.common.domain.dto.bian.response.StatusResponse; import com.banesco.domain.bian.request.BusUpdateCardStatusRequest; public interface PaymentCardPort { - StatusResponse updateCardStatus(String productAccountId, BusUpdateCardStatusRequest request); + void updateCardStatus(String clearAccount, BusUpdateCardStatusRequest request); } diff --git a/bus-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java b/bus-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java index 747ae5a..86f2469 100644 --- a/bus-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java +++ b/bus-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java @@ -1,12 +1,10 @@ package com.banesco.domain.services; -import com.banesco.common.application.exception.BanBackendException; import com.banesco.common.application.exception.BanRuntimeException; import com.banesco.common.domain.dto.bian.customer.CustomerReference; -import com.banesco.common.domain.dto.bian.device.JsonHelper; -import com.banesco.common.domain.dto.bian.device.StringHelper; -import com.banesco.common.domain.dto.bian.response.StatusResponse; import com.banesco.common.domain.model.RedisParam; +import com.banesco.common.infraestructure.helpers.JsonHelper; +import com.banesco.common.infraestructure.helpers.StringHelper; import com.banesco.commons.config.AppConf; import com.banesco.commons.config.StatusCodes; import com.banesco.domain.bian.request.BusUpdateCardStatusRequest; @@ -24,7 +22,6 @@ public class UpdateCardStatusService implements UpdateCardStatusUseCase { private final PaymentCardPort paymentCardPort; - private final String RESULT_OK = StatusCodes.SUCCESS_OPERATION.getStatusCode(); private final RedisParam redisParam; @@ -42,17 +39,12 @@ public class UpdateCardStatusService implements UpdateCardStatusUseCase { @Override public void execute(BusUpdateCardStatusRequest request) { - CustomerProduct customerProduct = getCustomerProductByCardNumber(request.getCustomerReference(), request.getDevice().getDeviceSessionReference(), request.getCardReference().getCardNumber()); - StatusResponse statusResponse = paymentCardPort.updateCardStatus(customerProduct.getClearAccount(), request); - - if (!statusResponse.statusCode().equals(RESULT_OK)) { - throw new BanBackendException(statusResponse.statusCode(), statusResponse.message()); - } + paymentCardPort.updateCardStatus(customerProduct.getClearAccount(), request); } diff --git a/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/UpdateCardStatusRequest.java b/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/UpdateCardStatusRequest.java index 63a3518..cd9a704 100644 --- a/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/UpdateCardStatusRequest.java +++ b/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/UpdateCardStatusRequest.java @@ -2,8 +2,8 @@ package com.banesco.infrastructure.dtos.card; import com.banesco.common.domain.dto.bian.customer.CustomerReference; -import com.banesco.common.domain.dto.bian.device.Device; import com.banesco.domain.bian.dto.CardReference; +import com.banesco.infrastructure.dtos.osb.MsgRqHdr; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.AllArgsConstructor; import lombok.Data; @@ -14,9 +14,8 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class UpdateCardStatusRequest { - String requestId; - String fintechId; - CustomerReference customerReference; - Device device; - CardReference cardReference; + private MsgRqHdr msgRqHdr; + private CustomerReference customerReference; + private CardReference cardReference; + private String domain; } diff --git a/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/UpdateCardStatusResponse.java b/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/UpdateCardStatusResponse.java deleted file mode 100644 index 66116b9..0000000 --- a/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/UpdateCardStatusResponse.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.banesco.infrastructure.dtos.card; - - -import com.banesco.common.domain.dto.bian.response.BaseResponse; -import com.banesco.common.domain.dto.bian.response.StatusResponse; -import io.quarkus.runtime.annotations.RegisterForReflection; -import lombok.Data; -import lombok.EqualsAndHashCode; - -@RegisterForReflection -@Data -@EqualsAndHashCode(callSuper = false) -public class UpdateCardStatusResponse extends BaseResponse { - public UpdateCardStatusResponse() { - super(); - } - - public UpdateCardStatusResponse(StatusResponse statusResponse) { - super(statusResponse); - } - -} diff --git a/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/soap/BlockUnblockDebitCardRs.java b/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/soap/BlockUnblockDebitCardRs.java index 4f71ca4..2b41681 100644 --- a/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/soap/BlockUnblockDebitCardRs.java +++ b/bus-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/soap/BlockUnblockDebitCardRs.java @@ -5,16 +5,15 @@ import com.banesco.infrastructure.dtos.osb.MsgRsHdr; import com.banesco.infrastructure.dtos.osb.Status; import io.quarkus.runtime.annotations.RegisterForReflection; - import java.util.ArrayList; import java.util.List; /** *

Clase Java para anonymous complex type. - * + * *

El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase. - * + * *

  * <complexType>
  *   <complexContent>
@@ -27,8 +26,6 @@ import java.util.List;
  *   </complexContent>
  * </complexType>
  * 
- * - * */ @RegisterForReflection public class BlockUnblockDebitCardRs { @@ -40,11 +37,9 @@ public class BlockUnblockDebitCardRs { /** * Obtiene el valor de la propiedad msgRsHdr. - * - * @return - * possible object is - * {@link MsgRsHdr } - * + * + * @return possible object is + * {@link MsgRsHdr } */ public MsgRsHdr getMsgRsHdr() { return msgRsHdr; @@ -52,11 +47,9 @@ public class BlockUnblockDebitCardRs { /** * Define el valor de la propiedad msgRsHdr. - * - * @param value - * allowed object is - * {@link MsgRsHdr } - * + * + * @param value allowed object is + * {@link MsgRsHdr } */ public void setMsgRsHdr(MsgRsHdr value) { this.msgRsHdr = value; @@ -64,25 +57,23 @@ public class BlockUnblockDebitCardRs { /** * Gets the value of the status property. - * + * *

* This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the Jakarta XML Binding object. * This is why there is not a set method for the status property. - * + * *

* For example, to add a new item, do as follows: *

      *    getStatus().add(newItem);
      * 
- * - * + * + * *

* Objects of the following type(s) are allowed in the list * {@link Status } - * - * */ public List getStatus() { if (status == null) { diff --git a/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/PaymentCardAdapter.java b/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/PaymentCardAdapter.java index d6a61ee..98be51d 100644 --- a/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/PaymentCardAdapter.java +++ b/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/PaymentCardAdapter.java @@ -1,11 +1,14 @@ package com.banesco.infrastructure.rest; -import com.banesco.common.domain.dto.bian.response.StatusResponse; import com.banesco.common.domain.model.ApiConfig; import com.banesco.commons.config.AppConf; import com.banesco.domain.bian.request.BusUpdateCardStatusRequest; +import com.banesco.domain.models.CurrentState; import com.banesco.domain.ports.outbound.PaymentCardPort; +import com.banesco.infrastructure.dtos.osb.ApplicantData; +import com.banesco.infrastructure.dtos.osb.MsgRqHdr; import com.banesco.infrastructure.rest.mappers.PaymentCardMapper; +import com.banesco.infrastructure.rest.mappers.SoapHeaderMapper; import com.banesco.infrastructure.rest.repositories.PaymentCardRepository; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -20,29 +23,52 @@ public class PaymentCardAdapter implements PaymentCardPort { private final PaymentCardRepository paymentRepository; private final PaymentCardMapper paymentCardMapper; + private final SoapHeaderMapper soapHeaderMapper; + private final String OPERATION_NAME = "update-card-status"; AppConf appConf; @Inject public PaymentCardAdapter(AppConf appConf, - PaymentCardMapper paymentCardMapper) { + PaymentCardMapper paymentCardMapper, + SoapHeaderMapper soapHeaderMapper + ) { this.appConf = appConf; this.paymentCardMapper = paymentCardMapper; - ApiConfig apiConfig = appConf.loadApiConfig("api.rest-client." + OPERATION_NAME); + this.soapHeaderMapper = soapHeaderMapper; + ApiConfig apiConfig = appConf.loadApiConfig("api.rest-client." + OPERATION_NAME + ".endpoint"); paymentRepository = new PaymentCardRepository(apiConfig); } - public StatusResponse updateCardStatus(String productAccountId, BusUpdateCardStatusRequest request) { + public void updateCardStatus(String clearAccount, BusUpdateCardStatusRequest request) { + + CurrentState currentState = appConf.getCurrentState(request.getRequestId()); + + MsgRqHdr msgRqHdr = soapHeaderMapper.getHeaderBySrcAppId( + OPERATION_NAME, + currentState + ); - return paymentRepository.updateCardStatus( + if (msgRqHdr.getApplicantData() == null) { + msgRqHdr.setApplicantData(new ApplicantData()); + } + + msgRqHdr.getApplicantData().setIpAddress(request.getDevice().getDeviceIp()); + + + paymentRepository.updateCardStatus( + request.getRequestId(), this.paymentCardMapper.toBusinessRequest( - appConf.getCurrentState(request.getRequestId()), - request + msgRqHdr, + request, + clearAccount, + appConf.getSoapDomainCurrent() ) + ); diff --git a/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/RegisterSecurityAdapter.java b/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/RegisterSecurityAdapter.java deleted file mode 100644 index fa0049d..0000000 --- a/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/RegisterSecurityAdapter.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.banesco.infrastructure.rest; - -import com.banesco.common.domain.dto.bian.device.LoggerHelper; -import com.banesco.common.domain.model.ApiConfig; -import com.banesco.commons.config.AppConf; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.ws.rs.core.Response; -import lombok.extern.slf4j.Slf4j; -import org.eclipse.microprofile.rest.client.RestClientBuilder; - -import java.net.URI; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.TimeUnit; - - -@ApplicationScoped -@Slf4j -public class RegisterSecurityAdapter implements RegisterSecurityPort { - - private final RegisterSecurityRestClient restClient; - - private final String registerSecuritySP; - private final String registerSecurityEventCod; - private final String registerSecurityBankCod; - private final String registerSecurityCurCOd; - - - @Inject - public RegisterSecurityAdapter(AppConf appConf) { - - ApiConfig apiConfig = appConf.loadApiConfig("api.rest-client.register-security"); - - restClient = RestClientBuilder.newBuilder().baseUri( - URI.create(apiConfig.getUrl()) - ). - connectTimeout(apiConfig.getTimeout().getConnect(), TimeUnit.MILLISECONDS) - .readTimeout(apiConfig.getTimeout().getResponse(), TimeUnit.MILLISECONDS) - .build(RegisterSecurityRestClient.class); - - registerSecuritySP = apiConfig.getConfig().get("sp"); - registerSecurityEventCod = apiConfig.getConfig().get("eventCod"); - registerSecurityBankCod = apiConfig.getConfig().get("bankCod"); - registerSecurityCurCOd = apiConfig.getConfig().get("curCod"); - } - - - public void writeTrace(String requestId, RegisterSecurityRq request) { - - request.setSp(registerSecuritySP); - request.setCodEve(registerSecurityEventCod); - request.setCodEve2(registerSecurityEventCod); - request.setCodBan(registerSecurityBankCod); - request.setCodMon(registerSecurityCurCOd); - log.info(LoggerHelper.buildInfoPrivateRequest(requestId, "REGISTER_SECURITY", request)); - - CompletableFuture.supplyAsync(() -> { - // Simulate some processing - try { - Response responseHttp = restClient.invoke(request); - Object response = responseHttp.readEntity(Object.class); - log.info(LoggerHelper.buildInfoPrivateResponse(requestId, "REGISTER_SECURITY", response != null ? response.toString() : "null")); - } catch (Exception e) { - log.error(LoggerHelper.buildError("REGISTER_SECURITY - " + requestId, "Error calling API: " + e.getMessage())); - log.error("Error writing trace: {}", e.getMessage()); - } - return null; - }); - - } - - -} diff --git a/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/mappers/PaymentCardMapper.java b/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/mappers/PaymentCardMapper.java index 975aec3..67d3dd2 100644 --- a/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/mappers/PaymentCardMapper.java +++ b/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/mappers/PaymentCardMapper.java @@ -1,8 +1,8 @@ package com.banesco.infrastructure.rest.mappers; import com.banesco.domain.bian.request.BusUpdateCardStatusRequest; -import com.banesco.domain.models.CurrentState; import com.banesco.infrastructure.dtos.card.UpdateCardStatusRequest; +import com.banesco.infrastructure.dtos.osb.MsgRqHdr; import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped @@ -10,16 +10,18 @@ public class PaymentCardMapper { public UpdateCardStatusRequest toBusinessRequest( - CurrentState currentState, - BusUpdateCardStatusRequest receptionRequest + MsgRqHdr msgRqHdr, + BusUpdateCardStatusRequest receptionRequest, + String clearAccount, + String domain ) { + receptionRequest.getCardReference().setCardNumber(clearAccount); UpdateCardStatusRequest request = new UpdateCardStatusRequest( - currentState.requestId(), - receptionRequest.getCustomerReferenceFintechId(), + msgRqHdr, receptionRequest.getCustomerReference(), - receptionRequest.getDevice(), - receptionRequest.getCardReference() + receptionRequest.getCardReference(), + domain ); diff --git a/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/mappers/SoapHeaderMapper.java b/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/mappers/SoapHeaderMapper.java new file mode 100644 index 0000000..3eb7293 --- /dev/null +++ b/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/mappers/SoapHeaderMapper.java @@ -0,0 +1,68 @@ +package com.banesco.infrastructure.rest.mappers; + +import com.banesco.common.application.exception.BanBackendException; +import com.banesco.common.infraestructure.helpers.JsonHelper; +import com.banesco.commons.config.AppConf; +import com.banesco.domain.models.CurrentState; +import com.banesco.infrastructure.dtos.osb.MsgRqHdr; +import jakarta.enterprise.context.ApplicationScoped; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.microprofile.config.Config; + +import java.util.HashMap; +import java.util.Map; + + +@ApplicationScoped +@Slf4j +public class SoapHeaderMapper { + + public final Map SOAP_HEADERS = new HashMap<>(); + + private final Config configEnv; + + public SoapHeaderMapper(AppConf appConf) { + configEnv = appConf.getConfigEnv(); + } + + /** + * Permite obtener el Request Header de una operacion hacia servicios SOAP + * + * @param operationName + * @return + */ + public MsgRqHdr getHeaderBySrcAppId(String operationName, CurrentState currentState) { + + MsgRqHdr msgRqHdr = SOAP_HEADERS.get(operationName); + String msgRqHdrEnvName = "api.rest-client." + operationName + ".msgRqHdr"; + try { + if (msgRqHdr == null) { + String soapHeaderStr = configEnv.getValue("api.rest-client." + operationName + ".msgRqHdr", String.class); + msgRqHdr = JsonHelper.getObjectFromJson( + soapHeaderStr, + MsgRqHdr.class); + log.info("[SOAP HEADER loaded]:{} -> {}", operationName, soapHeaderStr); + + if (msgRqHdr == null) { + throw new BanBackendException("CONF02", msgRqHdrEnvName + " invalid or bad configured."); + } + + SOAP_HEADERS.put(operationName, msgRqHdr); + } + + msgRqHdr = msgRqHdr.clone(); + msgRqHdr.setRequestId(currentState.requestId()); + msgRqHdr.setMessageDate(currentState.date()); + msgRqHdr.setMessageTime(currentState.time()); + msgRqHdr.getNetworkTrnInfo().get(0).setTransactionDate(currentState.date()); + msgRqHdr.getNetworkTrnInfo().get(0).setTransactionTime(currentState.time()); + + + return msgRqHdr; + } catch (Exception e) { + throw new BanBackendException("CONF02", msgRqHdrEnvName + " invalid or bad configured."); + } + + } + +} diff --git a/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/repositories/PaymentCardRepository.java b/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/repositories/PaymentCardRepository.java index 0c47272..376c125 100644 --- a/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/repositories/PaymentCardRepository.java +++ b/bus-update-card-status/src/main/java/com/banesco/infrastructure/rest/repositories/PaymentCardRepository.java @@ -1,13 +1,14 @@ package com.banesco.infrastructure.rest.repositories; -import com.banesco.common.domain.dto.bian.device.JsonHelper; -import com.banesco.common.domain.dto.bian.device.LoggerHelper; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.application.exception.BanBackendException; +import com.banesco.common.application.exception.BanRuntimeException; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import com.banesco.common.domain.model.ApiConfig; +import com.banesco.common.infraestructure.helpers.JsonHelper; +import com.banesco.common.infraestructure.helpers.LoggerHelper; import com.banesco.commons.config.StatusCodes; -import com.banesco.commons.utils.ResponseUtil; import com.banesco.infrastructure.dtos.card.UpdateCardStatusRequest; -import com.banesco.infrastructure.dtos.card.UpdateCardStatusResponse; +import com.banesco.infrastructure.dtos.card.soap.BlockUnblockDebitCardRs; import com.banesco.infrastructure.dtos.osb.AdditionalStatus; import com.banesco.infrastructure.dtos.osb.Status; import com.banesco.infrastructure.rest.clients.BusUpdateCardStatusRestClient; @@ -31,7 +32,7 @@ public class PaymentCardRepository { private final BusUpdateCardStatusRestClient restClient; - private final String OPERATION_NAME = "BUS_UPDATE_CARD_STATUS"; + private final String OPERATION_NAME = "PRV_UPDATE_CARD_STATUS"; public PaymentCardRepository(ApiConfig apiConfig) { @@ -46,37 +47,46 @@ public class PaymentCardRepository { } - public StatusResponse updateCardStatus(UpdateCardStatusRequest request) { + public void updateCardStatus(String requestId, UpdateCardStatusRequest request) { + BlockUnblockDebitCardRs response = null; try { - log.info(LoggerHelper.buildInfoPrivateRequest(request.getRequestId(), OPERATION_NAME, JsonHelper.getJsonFromObject(request))); + log.info(LoggerHelper.buildInfoPrivateRequest(requestId, OPERATION_NAME, JsonHelper.getJsonFromObject(request))); Response responseHttp = restClient.invoke(request); - UpdateCardStatusResponse response = responseHttp.readEntity(UpdateCardStatusResponse.class); - log.info(LoggerHelper.buildInfoPrivateResponse(request.getRequestId(), OPERATION_NAME, JsonHelper.getJsonFromObject(response))); - /* + response = responseHttp.readEntity(BlockUnblockDebitCardRs.class); + log.info(LoggerHelper.buildInfoPrivateResponse(requestId, OPERATION_NAME, JsonHelper.getJsonFromObject(response))); - if (response.getStatus().getStatusCode() != null && - response.getStatus().getStatusCode().equals("000")) { - return ResponseUtil.mapResponse(request.getRequestId(), StatusCodes.SUCCESS_OPERATION); + + if (response.getMsgRsHdr() != null && + response.getMsgRsHdr().getFinalStatusRequest() != null && + response.getMsgRsHdr().getFinalStatusRequest().equals("0001") + && response.getMsgRsHdr().getDetailReg() != null + && response.getMsgRsHdr().getDetailReg().contains("con exito") + ) { + return; } - return validateSoapResponseStatus(request.getRequestId(), response.getStatus()); - */ - return null; - - } catch (ClientErrorException e) { - log.error(LoggerHelper.buildError(OPERATION_NAME + " - " + request.getRequestId(), "Error calling API: " + e.getMessage())); - return ResponseUtil.mapErrorResponse(request.getRequestId(), StatusCodes.FAILED_DEPENDENCY); + log.error(LoggerHelper.buildError(OPERATION_NAME + " - " + requestId, "Error calling API: " + e.getMessage())); + throw new BanRuntimeException(StatusCodes.FAILED_DEPENDENCY); } catch (Exception e) { - log.error(LoggerHelper.buildError(OPERATION_NAME + " - " + request.getRequestId(), "Error interno callig API: " + e.getMessage())); - return ResponseUtil.mapErrorResponse(request.getRequestId(), StatusCodes.INTERNAL_ERROR); + log.error(LoggerHelper.buildError(OPERATION_NAME + " - " + requestId, "Error interno calling API: " + e.getMessage())); + throw new BanRuntimeException(StatusCodes.INTERNAL_ERROR); } + + if (response.getStatus() != null && + response.getStatus().get(0) != null && + !response.getStatus().get(0).getStatusCode().equals("000")) { + throw new BanBackendException(response.getStatus().get(0).getStatusCode(), response.getStatus().get(0).getStatusDesc()); + } + + validateSoapResponseStatus(response.getStatus().get(0)); + } @@ -85,7 +95,7 @@ public class PaymentCardRepository { * * @param status */ - private StatusResponse validateSoapResponseStatus(String requestId, Status status) { + private BianStatusResponse validateSoapResponseStatus(Status status) { // Get Back Error Map errors = new HashMap<>(); @@ -107,15 +117,12 @@ public class PaymentCardRepository { /** * Concat errors */ - return new StatusResponse( - "error", - errors.values().stream().collect(Collectors.joining("-")).toString(), - additionalStatus.getStatusDesc(), - requestId - ); + + throw new BanBackendException(errors.values().stream().collect(Collectors.joining("-")).toString(), + additionalStatus.getStatusDesc()); } - return ResponseUtil.mapErrorResponse(requestId, StatusCodes.INTERNAL_ERROR); + throw new BanRuntimeException(StatusCodes.INTERNAL_ERROR); } diff --git a/bus-update-card-status/src/main/resources/application-dev.yaml b/bus-update-card-status/src/main/resources/application-dev.yaml index d62a277..04fbbc2 100644 --- a/bus-update-card-status/src/main/resources/application-dev.yaml +++ b/bus-update-card-status/src/main/resources/application-dev.yaml @@ -1,6 +1,6 @@ quarkus: http: - port: 8080 + port: 8082 idle-timeout: 30s thread-pool: max-threads: 100 @@ -11,15 +11,16 @@ quarkus: # 4 minutes 60*4*1000 (MS) timeout: 240000 api: - source-id: UCSS + source-id: BUCS rest-client: update-card-status: - endpoint: '{"url":"http://localhost:8082/card/status/update","timeout":{"connect":20000,"response":20000},"config":{}}' + endpoint: '{"url":"http://localhost:8083/card/status/update","timeout":{"connect":20000,"response":20000},"config":{}}' msgRqHdr: '{"networkTrnInfo":[{"bankId":"01","transactionCode":"8741"}],"applicantData":{"application":"APIMGMT"},"vbProtocol":{"vbProtocolInd":"true","transactionInd":"false"},"operatorCode":"BAN1738A02","sourceChannelCode":"INT"}' redis: #expiration with Zero, not apply Redis - get-evaluate-customer-product: '{"prefix":"%s%d%s","expiration":0}' + get-evaluate-customer-product: '{"prefix":"%s%s%s","expiration":0}' soap: domain: current: osbp2p +# api.rest-client.update-card-statu \ No newline at end of file diff --git a/commons-bian/.gitignore b/commons-bian/.gitignore deleted file mode 100644 index 5ff6309..0000000 --- a/commons-bian/.gitignore +++ /dev/null @@ -1,38 +0,0 @@ -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### IntelliJ IDEA ### -.idea/modules.xml -.idea/jarRepositories.xml -.idea/compiler.xml -.idea/libraries/ -*.iws -*.iml -*.ipr - -### Eclipse ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ - -### Mac OS ### -.DS_Store \ No newline at end of file diff --git a/commons-bian/.idea/.gitignore b/commons-bian/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/commons-bian/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/commons-bian/.idea/encodings.xml b/commons-bian/.idea/encodings.xml deleted file mode 100644 index aa00ffa..0000000 --- a/commons-bian/.idea/encodings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/commons-bian/.idea/misc.xml b/commons-bian/.idea/misc.xml deleted file mode 100644 index 463551f..0000000 --- a/commons-bian/.idea/misc.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/commons-bian/.idea/vcs.xml b/commons-bian/.idea/vcs.xml deleted file mode 100644 index d843f34..0000000 --- a/commons-bian/.idea/vcs.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/commons-bian/CHANGELOG.md b/commons-bian/CHANGELOG.md deleted file mode 100644 index a36c9bf..0000000 --- a/commons-bian/CHANGELOG.md +++ /dev/null @@ -1,10 +0,0 @@ -# Changelog - -Todos los cambios notables en este proyecto se documentarán en este archivo. - -El formato se basa en [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), -y este proyecto se adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [UNRELEASE] - -- Base inicial commons nativo (Java) \ No newline at end of file diff --git a/commons-bian/LICENCE b/commons-bian/LICENCE deleted file mode 100644 index 1773f19..0000000 --- a/commons-bian/LICENCE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Banesco Banco Universal, C.A. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/commons-bian/README.md b/commons-bian/README.md deleted file mode 100644 index 7cd195f..0000000 --- a/commons-bian/README.md +++ /dev/null @@ -1,10 +0,0 @@ - -![Logo](https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Banesco_logo.svg/2560px-Banesco_logo.svg.png) - - -# Commons - -Este proyecto utiliza Java nativo como librería commons - - -- Banesco Banco Universal © Todos los Derechos Reservados. \ No newline at end of file diff --git a/commons-bian/pom.xml b/commons-bian/pom.xml deleted file mode 100644 index f335f34..0000000 --- a/commons-bian/pom.xml +++ /dev/null @@ -1,66 +0,0 @@ - - 4.0.0 - - com.banesco - commons-bian - 1.0 - jar - - commons-bian - http://maven.apache.org - - - UTF-8 - 17 - 17 - 17 - - - - - - com.fasterxml.jackson.core - jackson-databind - 2.15.4 - compile - - - - javax.servlet - javax.servlet-api - 4.0.1 - provided - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.11.0 - - 17 - 17 - 17 - - - - org.apache.maven.plugins - maven-jar-plugin - 3.3.0 - - - org.apache.maven.plugins - maven-resources-plugin - 3.3.1 - - - - \ No newline at end of file diff --git a/commons-bian/src/main/java/com/banesco/CommonsBian.java b/commons-bian/src/main/java/com/banesco/CommonsBian.java deleted file mode 100644 index b2506bb..0000000 --- a/commons-bian/src/main/java/com/banesco/CommonsBian.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.banesco; - -public class CommonsBian { - - public static void main(String[] args) { - System.out.println("Commons BIAN..."); - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/application/exception/BanBackendException.java b/commons-bian/src/main/java/com/banesco/common/application/exception/BanBackendException.java deleted file mode 100644 index a30c0a2..0000000 --- a/commons-bian/src/main/java/com/banesco/common/application/exception/BanBackendException.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.banesco.common.application.exception; - -public class BanBackendException extends RuntimeException { - - protected String backendCode; - protected String backendDesc; - protected String target; - - public BanBackendException(String backendCode, String backendDesc) { - super(backendDesc); - this.backendCode = backendCode; - this.backendDesc = backendDesc; - } - - public BanBackendException(String backendCode, String backendDesc, String target) { - super(backendDesc.formatted(target) + ", Target:" + target); - this.backendCode = backendCode; - this.backendDesc = backendDesc; - this.target = target; - } - - public String getBackendCode() { - return backendCode; - } - - public String getBackendDesc() { - return backendDesc; - } - - public String getTarget() { - return target; - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/application/exception/BanRuntimeException.java b/commons-bian/src/main/java/com/banesco/common/application/exception/BanRuntimeException.java deleted file mode 100644 index 8548009..0000000 --- a/commons-bian/src/main/java/com/banesco/common/application/exception/BanRuntimeException.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.banesco.common.application.exception; - -import com.banesco.common.domain.interfaces.BaseStatusCodesEnum; - -public class BanRuntimeException extends RuntimeException { - - protected BaseStatusCodesEnum statusCode; - protected String target; - - public BanRuntimeException() { - super("Internal Error"); - } - - public BanRuntimeException(BaseStatusCodesEnum statusCode, String target) { - super(statusCode.getStatusDesc().formatted(target) + ", Target:" + target); - this.statusCode = statusCode; - this.target = target; - } - - public BanRuntimeException(BaseStatusCodesEnum statusCode) { - super(statusCode.getStatusDesc()); - this.statusCode = statusCode; - } - - public BaseStatusCodesEnum getStatusCode() { - return statusCode; - } - - public String getTarget() { - return target; - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/application/helper/DeviceHelper.java b/commons-bian/src/main/java/com/banesco/common/application/helper/DeviceHelper.java deleted file mode 100644 index 71f1b07..0000000 --- a/commons-bian/src/main/java/com/banesco/common/application/helper/DeviceHelper.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.banesco.common.application.helper; - -import com.banesco.common.domain.dto.bian.device.Device; -import com.banesco.common.domain.dto.bian.device.DeviceTypeValues; -import com.banesco.common.domain.dto.bian.device.StringHelper; - -import java.util.Objects; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -public class DeviceHelper { - - - private static final Logger logger = Logger.getLogger(DeviceHelper.class.getName()); - - - public static DeviceTypeValues getDeviceTypeValue( - Device device - ) { - var deviceTypeValue = DeviceTypeValues.Unknown; - - if (!Objects.isNull(device) && !StringHelper.isEmpty(device.getDeviceType())) { - try { - deviceTypeValue = DeviceTypeValues.valueOf(device.getDeviceType()); - } catch (Exception e) { - logger.log(Level.WARNING, "Error Mapping Device Type: %s -> %s".formatted(device.getDeviceType(), e.getMessage())); - } - } - - return deviceTypeValue; - } - - public static boolean isValidDeviceType(String type) { - - for (DeviceTypeValues deviceType : DeviceTypeValues.values()) { - if (deviceType.name().equals(type)) { - return true; - } - } - return false; - } - - public static String getDeviceTypes() { - return Stream.of(DeviceTypeValues.values()).map(Enum::name).collect( - Collectors.joining(", ") - ); - } - -} diff --git a/commons-bian/src/main/java/com/banesco/common/application/helper/PaymentCardHelper.java b/commons-bian/src/main/java/com/banesco/common/application/helper/PaymentCardHelper.java deleted file mode 100644 index 7c34e94..0000000 --- a/commons-bian/src/main/java/com/banesco/common/application/helper/PaymentCardHelper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.banesco.common.application.helper; - -import com.banesco.common.domain.dto.bian.device.DeviceTypeValues; -import com.banesco.common.domain.dto.bian.paymentCard.CardTypeValues; - -public class PaymentCardHelper { - - public static boolean isValidCardType(String type) { - for (CardTypeValues cardTypeValue : CardTypeValues.values()) { - if (cardTypeValue.name().equals(type)) { - return true; - } - } - return false; - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/customer/CustomerReference.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/customer/CustomerReference.java deleted file mode 100644 index fbb91b3..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/customer/CustomerReference.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.banesco.common.domain.dto.bian.customer; - -public class CustomerReference { - String customerIdType; - String customerId; - - public CustomerReference() { - } - - public CustomerReference(String customerIdType, String customerId) { - this.customerIdType = customerIdType; - this.customerId = customerId; - } - - public String getCustomerIdType() { - return customerIdType; - } - - public void setCustomerIdType(String customerIdType) { - this.customerIdType = customerIdType; - } - - public String getCustomerId() { - return customerId; - } - - public void setCustomerId(String customerId) { - this.customerId = customerId; - } - - @Override - public String toString() { - return "{\"customerIdType\":\"%s\",\"customerId\":\"%s\"}" - .formatted(customerIdType, customerId); - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/AccountHelper.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/AccountHelper.java deleted file mode 100644 index 49d3e8e..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/AccountHelper.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.banesco.common.domain.dto.bian.device; - - -/** - * Clase utilitaria para operaciones relacionadas con cuentas bancarias. - * Proporciona métodos para manipular y formatear información de cuentas. - */ -public class AccountHelper { - - /** - * Enmascara un número de cuenta, mostrando solo los primeros 4 - * y últimos 4 Los dígitos intermedios son reemplazados por asteriscos para proteger la - * información sensible del cliente. - * - * @param clearAccountId El número de cuenta completo sin enmascarar - * @return El número de cuenta enmascarado en formato "XXXX************YYYY" - */ - public static String getMaskedAccountId(String clearAccountId) { - return clearAccountId.substring(0, 4) + "************" + clearAccountId.substring(clearAccountId.length() - 4); - } -} \ No newline at end of file diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/DateHelper.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/DateHelper.java deleted file mode 100644 index 0f96ae8..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/DateHelper.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.banesco.common.domain.dto.bian.device; - -import java.time.DateTimeException; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * Clase utilitaria para operaciones relacionadas con fechas y horas. - * Proporciona métodos para validar, comparar y calcular períodos entre fechas. - */ -public class DateHelper { - - - private final Logger logger = Logger.getLogger(DateHelper.class.getName()); - private final ZoneId currentZone = ZoneId.of("America/Caracas"); - private final DateTimeFormatter DATE_YYYY_MM_DD = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - private final DateTimeFormatter TIME_HH_MM_SS = DateTimeFormatter.ofPattern("HH:mm:ss"); - - private static class SingletonHelper { - private static final DateHelper INSTANCE = new DateHelper(); - } - - - /** - * Constructo private to no allow other Instances - */ - private DateHelper() { - // not public instance - } - - /** - * Get Instance Singleton - * - * @return - */ - public static DateHelper getInstance() { - return SingletonHelper.INSTANCE; - } - - /** - * Permite obtener la Fecha Hora Actual - * - * @return - */ - public LocalDateTime getCurrentDateTime() { - return LocalDateTime.now(currentZone); - } - - /** - * Permite Obtener la Hora para una FechaHora, en caso de ser null se obtiene la hora actual - * - * @param now Feha Hora Local - * @return - */ - public String getTime(LocalDateTime now) { - if (now == null) { - now = LocalDateTime.now(currentZone); - } - return now.format(TIME_HH_MM_SS); - } - - /** - * Permite Obtener la Fecha para una FechaHora, en caso de ser null se obtiene la fecha actual - * - * @param now Feha Hora Local - * @return - */ - public String getDate(LocalDateTime now) { - if (now == null) { - now = LocalDateTime.now(currentZone); - } - return now.format(DATE_YYYY_MM_DD); - } - - /** - * Check is Current Hour is in Hour Range passed by parameters - * if Parameters are equal then return false - * - * @param rangeHourBegin Cadena de la hora de inicio del Rango - * @param rangeHourFinish Candena de la hora de fin del Rango - * @param hourStrToCheck Hora en cadena para evaluar si se encuentra entre el rango de parametros - * @return boolean - */ - public boolean isHourInRange(String rangeHourBegin, String rangeHourFinish, String hourStrToCheck) { - - return isHourInRange(Integer.parseInt(rangeHourBegin.replace(":", "")), - Integer.parseInt(rangeHourFinish.replace(":", "")), - hourStrToCheck - ); - - } - - /** - * Check is Current Hour is in Hour Range passed by parameters - * if Parameters are equal then return false - * - * @param rangeHourBegin Numero entero de la hora de inicio del Rango - * @param rangeHourFinish Numero entero de la hora de fin del Rango - * @param hourStrToCheck Hora en cadena para evaluar si se encuentra entre el rango de parametros - * @return boolean - */ - public boolean isHourInRange(int rangeHourBegin, int rangeHourFinish, String hourStrToCheck) { - boolean mustValidateService = false; - - if (rangeHourBegin == rangeHourFinish) { - return mustValidateService; - } - - int currentHour = Integer.parseInt(hourStrToCheck.replace(":", "")); - - - if (rangeHourBegin > rangeHourFinish) { // hour end is less than hour start, => then validate next day - - if (currentHour <= rangeHourFinish || currentHour >= rangeHourBegin) { - mustValidateService = true; - } - } else if (currentHour >= rangeHourBegin && currentHour <= rangeHourFinish) { // Hour the same day - mustValidateService = true; - } - logger.log(Level.INFO, "La hora (%s => %d) %sesta entre %d y %d ".formatted( - hourStrToCheck, - currentHour, - (mustValidateService ? "" : "NO "), - rangeHourBegin, - rangeHourFinish)); - - return mustValidateService; - } - - /** - * Calcula el número de días entre dos fechas. - * - * @param startDate Fecha de inicio en formato ISO (yyyy-MM-dd) - * @param endDate Fecha de fin en formato ISO (yyyy-MM-dd) - * @return El número de días entre las fechas o -1 si ocurre un error al - * procesar las fechas - */ - public long daysBetweenTwoDates(String startDate, String endDate) { - try { - return ChronoUnit.DAYS.between(LocalDate.parse(startDate), LocalDate.parse(endDate)); - } catch (DateTimeException dte) { - return -1L; - } - } - - /** - * Verifica si la fecha de inicio es anterior o igual a la fecha de fin. - * - * @param startDate Fecha de inicio en formato ISO (yyyy-MM-dd) - * @param endDate Fecha de fin en formato ISO (yyyy-MM-dd) - * @return true si startDate es anterior o igual a endDate, false en caso - * contrario - */ - public boolean isStartDateBeforeEndDate(String startDate, String endDate) { - return LocalDate.parse(startDate).isBefore(LocalDate.parse(endDate)) - || LocalDate.parse(startDate).isEqual(LocalDate.parse(endDate)); - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/Device.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/Device.java deleted file mode 100644 index 86fd941..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/Device.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.banesco.common.domain.dto.bian.device; - - - -public class Device { - String deviceType; - String deviceDescription; - String deviceIp; - String deviceSessionReference; - - public Device() { - - } - - public Device(String deviceType, String deviceDescription, String deviceIp, String deviceSessionReference) { - this.deviceType = deviceType; - this.deviceDescription = deviceDescription; - this.deviceIp = deviceIp; - this.deviceSessionReference = deviceSessionReference; - } - - public String getDeviceType() { - return deviceType; - } - - public void setDeviceType(String deviceType) { - this.deviceType = deviceType; - } - - public String getDeviceDescription() { - return deviceDescription; - } - - public void setDeviceDescription(String deviceDescription) { - this.deviceDescription = deviceDescription; - } - - public String getDeviceIp() { - return deviceIp; - } - - public void setDeviceIp(String deviceIp) { - this.deviceIp = deviceIp; - } - - public String getDeviceSessionReference() { - return deviceSessionReference; - } - - public void setDeviceSessionReference(String deviceSessionReference) { - this.deviceSessionReference = deviceSessionReference; - } - - public String toString() { - return "{\"deviceType\":\"%s\",\"deviceDescription\":\"%s\",\"deviceIp\":\"%s\",\"deviceSessionReference\":\"%s\"}" - .formatted(deviceType, deviceDescription, deviceIp, deviceSessionReference); - } - -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/DeviceTypeValues.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/DeviceTypeValues.java deleted file mode 100644 index 2de439b..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/DeviceTypeValues.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.banesco.common.domain.dto.bian.device; - -public enum DeviceTypeValues { - Mobile, - Tablet, - PersonalComputer, - SecureCardReader, - NonSecureCardReader, - OtherNational, - OtherPrivate, - Wearable, - Vehicle, - Embedded, - KeyFob, - Jewellery, - Sticker, - GamingDevice, - Watch, - Unknown -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/JsonHelper.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/JsonHelper.java deleted file mode 100644 index 5dd0e40..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/JsonHelper.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.banesco.common.domain.dto.bian.device; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; - -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class JsonHelper { - - private static final Logger logger = Logger.getLogger(JsonHelper.class.getName()); - public static final ObjectMapper MAPPER = new ObjectMapper(); - - static { - MAPPER.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); - MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - } - - /** - * Convert Object to jsonString - * - * @param object El objeto a convertir en JSON. - * @return La cadena JSON resultante o null si ocurre un error. - */ - public static String getJsonFromObject(Object object) { - if (object == null) { - return "null"; - } - try { - return MAPPER.writeValueAsString(object); - } catch (JsonProcessingException e) { - logger.log(Level.SEVERE, "Error parsing objeto a JSON: {0}", e.getMessage()); - return null; - } - } - - /** - * Convierte una cadena JSON en un objeto Java de la clase especificada. - * - * @param json La cadena JSON a convertir. - * @param className La clase del objeto Java resultante. - * @param El tipo del objeto resultante. - * @return El objeto Java resultante, o null si ocurre un error o la cadena - * JSON está vacía. - */ - public static T getObjectFromJson(String json, Class className) { - if (json == null || json.isEmpty()) { - return null; - } - try { - return MAPPER.readValue(json, className); - } catch (JsonProcessingException | IllegalArgumentException e) { - logger.log(Level.WARNING, "Error parsing JSON a objeto: {0}", e.getMessage()); - return null; - } - } - - public static List getListFromJson(String json, Class className) { - if (json == null || json.isEmpty()) { - return new ArrayList<>(); - } - try { - return MAPPER.readValue(json, - MAPPER.getTypeFactory().constructCollectionType(List.class, className) - ); - } catch (JsonProcessingException | IllegalArgumentException e) { - logger.log(Level.WARNING, "Error parsing JSON a List Object: {0}", e.getMessage()); - } - - return new ArrayList<>(); - } - - public static List getListFromInputStream(InputStream inputStream, Class className) throws IOException { - if (inputStream == null) { - return new ArrayList<>(); - } - try { - return MAPPER.readValue(inputStream, - MAPPER.getTypeFactory().constructCollectionType(List.class, className) - ); - } catch (JsonProcessingException | IllegalArgumentException e) { - logger.log(Level.WARNING, "Error parsing JSON a List Object: {0}", e.getMessage()); - } - - return new ArrayList<>(); - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/LoggerHelper.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/LoggerHelper.java deleted file mode 100644 index cb85dc6..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/LoggerHelper.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.banesco.common.domain.dto.bian.device; - -/** - * Clase utilitaria para la generación de mensajes de registro (logging). - * Facilita la creación de cadenas formateadas para registrar información de - * solicitudes y respuestas, tanto públicas como privadas, así como mensajes de - * error. Utiliza un formato estandarizado para mejorar la legibilidad y - * facilitar el análisis de los registros del sistema. - */ -public class LoggerHelper { - - /** - * Construye una cadena de información para una solicitud pública. - * - * @param requestId El ID de la solicitud. - * @param request El objeto de solicitud. - * @param El tipo del objeto de solicitud. - * @return Una cadena de información formateada. - */ - public static String buildInfoRequest(String requestId, T request) { - return String.format("[PUB RQ: %s] [%s]", requestId, JsonHelper.getJsonFromObject(request)); - } - - /** - * Construye una cadena de información para una solicitud pública. - * - * @param requestId El ID de la solicitud. - * @param request El request en cadena de la solicitud. - * @return Una cadena de información formateada. - */ - public static String buildInfoRequest(String requestId, String request) { - return String.format("[PUB RQ: %s] [%s]", requestId, request); - } - - /** - * Construye una cadena de información para una respuesta pública. - * - * @param requestId El ID de la solicitud. - * @param response El objeto de respuesta. - * @param El tipo del objeto de respuesta. - * @return Una cadena de información formateada. - */ - public static String buildInfoResponse(String requestId, T response) { - return String.format("[PUB RS: %s] [%s]", requestId, JsonHelper.getJsonFromObject(response)); - } - - /** - * Construye una cadena de información para una respuesta pública. - * - * @param requestId El ID de la solicitud. - * @param response El objeto en cadena de respuesta. - * @return Una cadena de información formateada. - */ - public static String buildInfoResponse(String requestId, String response) { - return String.format("[PUB RS: %s] [%s]", requestId, response); - } - - /** - * Construye una cadena de información para una solicitud privada. - * - * @param requestId El ID de la solicitud. - * @param name El nombre de la solicitud privada. - * @param request El objeto de solicitud. - * @param El tipo del objeto de solicitud. - * @return Una cadena de información formateada. - */ - public static String buildInfoPrivateRequest(String requestId, String name, T request) { - return String.format("[PRV RQ %s: %s] [%s]", name, requestId, JsonHelper.getJsonFromObject(request)); - } - - /** - * Construye una cadena de información para una solicitud privada. - * - * @param requestId El ID de la solicitud. - * @param name El nombre de la solicitud privada. - * @param request El objeto en cadena de la solicitud. - * @return Una cadena de información formateada. - */ - public static String buildInfoPrivateRequest(String requestId, String name, String request) { - return String.format("[PRV RQ %s: %s] [%s]", name, requestId, request); - } - - /** - * Construye una cadena de información para una respuesta privada. - * - * @param requestId El ID de la solicitud. - * @param name El nombre de la respuesta privada. - * @param response El objeto de respuesta. - * @param El tipo del objeto de respuesta. - * @return Una cadena de información formateada. - */ - public static String buildInfoPrivateResponse(String requestId, String name, T response) { - return String.format("[PRV RS %s: %s] [%s]", name, requestId, JsonHelper.getJsonFromObject(response)); - } - - /** - * Construye una cadena de información para una respuesta privada. - * - * @param requestId El ID de la solicitud. - * @param name El nombre de la respuesta privada. - * @param response El objeto en cadena de la respuesta. - * @return Una cadena de información formateada. - */ - public static String buildInfoPrivateResponse(String requestId, String name, String response) { - return String.format("[PRV RS %s: %s] [%s]", name, requestId, response); - } - - /** - * Construye una cadena de error. - * - * @param requestId El ID de la solicitud asociada al error. - * @param out El mensaje de error. - * @return Una cadena de error formateada. - */ - public static String buildError(String requestId, String out) { - return String.format("[ERROR %s] [%s]", requestId, out); - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/RequestHelper.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/RequestHelper.java deleted file mode 100644 index e20550e..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/RequestHelper.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.banesco.common.domain.dto.bian.device; - -import java.util.concurrent.ThreadLocalRandom; - -/** - * Clase utilitaria para operaciones relacionadas con solicitudes HTTP y - * generación de identificadores. Proporciona métodos para generar IDs únicos, - * obtener información del cliente y gestionar información del dispositivo. - */ -public class RequestHelper { - - private final String ALPHANUMERIC_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - private final int baseCharacterLen = ALPHANUMERIC_CHARACTERS.length(); - - - /** - * Permite tener una cadena aleatoria de caracteres numericos - * - * @param len longitud de la cadena numerica a retornar - * @return - */ - public String randomNumeric(int len) { - char[] chars = new char[len]; - for (int i = 0; i < len; i++) { - chars[i] = (char) ThreadLocalRandom.current().nextInt(48, 58); // ascii index number - } - - return new String(chars); - } - - /** - * Permite tener una cadena aleatoria de caracteres alfa-numericos - * - * @param len longitud de la cadena alfa-numerica a retornar - * @return - */ - public String randomAlphanumeric(int len) { - char[] chars = new char[len]; - for (int i = 0; i < len; i++) { - chars[i] = ALPHANUMERIC_CHARACTERS.charAt(ThreadLocalRandom.current().nextInt(baseCharacterLen)); - } - - return new String(chars); - } - - - /** - * Retorna Identificador de la Instancia del Request, usando como prefijo un valor predefinido - * ejemplos: P2P, REM, - * Facilita identificar el origen de los Requests - * Deberia obtenerse una vez al inicia el Request - * - * @param apiSourceId - * @return - */ - public String getInstanceId(String apiSourceId) { - return (apiSourceId == null ? "INST" : apiSourceId).concat(randomAlphanumeric(10)); - } - - /** - * Retorna un Identificador del Request, se sugiere usar el getInstanceId creada como prefijo. - * Usar uno para Cada Request que implique afectacion financiera - * - * @param instanceId - * @return - */ - public String getRequestId(String instanceId) { - return instanceId.concat("REQ").concat(randomAlphanumeric(20)); - } - - - /** - * Permite Obtener un valor Numerico de Identificador de Transaccion - * - * @param len - * @return - */ - public String getTransactionId(int len) { - return randomNumeric(len); - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/StringHelper.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/StringHelper.java deleted file mode 100644 index 1a02374..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/device/StringHelper.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.banesco.common.domain.dto.bian.device; - -/** - * Clase utilitaria para operaciones con cadenas de texto (strings). Proporciona - * métodos para validar, manipular y formatear cadenas de texto. Incluye - * funcionalidades como verificación de tipos numéricos, validación de cadenas - * no vacías y funciones de formato como relleno de caracteres. - */ -public class StringHelper { - - /** - * Verifica si una cadena de texto representa un número entero. - * - * @param value La cadena de texto a verificar. - * @return true si la cadena es un número entero válido, false en caso - * contrario. - * @throws NumberFormatException Si el string no tiene el formato adeacuado - */ - public static boolean isNumeric(String value) { - if (value == null || value.isEmpty()) { - return false; - } - try { - Integer.parseInt(value); - return true; - } catch (NumberFormatException e) { - return false; - } - } - - /** - * Verifica si una cadena de texto es nula o está vacía después de - * eliminar espacios en blanco. - * - * @param value La cadena de texto a verificar. - * @return true si la cadena está vacía, false en caso contrario. - */ - public static boolean isEmpty(String value) { - return value == null || value.trim().isEmpty(); - } - - - /** - * Rellena una cadena de texto con un carácter específico a la izquierda - * hasta alcanzar la longitud deseada. - * - * @param inputStr La cadena de texto a rellenar. - * @param strLenOut La longitud deseada de la cadena resultante. - * @param padChar El carácter de relleno. - * @return La cadena rellenada con el carácter especificado a la izquierda. - */ - public static String leftPad(String inputStr, int strLenOut, char padChar) { - if (inputStr == null) { - inputStr = ""; // Handle null input - } - int padLength = strLenOut - inputStr.length(); - if (padLength <= 0) { - return inputStr; // No padding needed - } - - char[] paddedString = new char[padLength]; - for (int i = 0; i < padLength; i++) { - paddedString[i] = padChar; - } - - return new String(paddedString).concat(inputStr); - } - - /** - * Permite convertir nombre de propiedad separada con (,-) to CamelCase - * - * @param inputStr Cadena de texto a convertir - * @param firstUpper Flag que indica si la primera letra es Mayuscula - * @return - */ - public static String convertToCamelCase(String inputStr, boolean firstUpper) { - - StringBuilder result = new StringBuilder(); - boolean capitalizeNext = firstUpper; - - for (char ch : inputStr.toCharArray()) { - if (ch == '.' || ch == '-') { - capitalizeNext = true; // Next character should be capitalized - } else { - if (capitalizeNext) { - result.append(Character.toUpperCase(ch)); // Capitalize current character - capitalizeNext = false; // Reset flag - } else { - result.append(Character.toLowerCase(ch)); // Append in lowercase - } - } - } - - return result.toString(); - - } - - /** - * @param inputStr Cadena de texto a convertir en UpperCamelCase - * @return - */ - public static String convertToUpperCamelCase(String inputStr) { - return convertToCamelCase(inputStr, true); - } - -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/paymentCard/CardTypeValues.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/paymentCard/CardTypeValues.java deleted file mode 100644 index 6f06423..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/paymentCard/CardTypeValues.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.banesco.common.domain.dto.bian.paymentCard; - -public enum CardTypeValues { - DebitCard, - CreditCard -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/response/BaseResponse.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/response/BaseResponse.java deleted file mode 100644 index 35b8527..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/response/BaseResponse.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.banesco.common.domain.dto.bian.response; - -public class BaseResponse { - protected StatusResponse statusResponse; - - public BaseResponse() { - } - - public BaseResponse(StatusResponse statusResponse) { - this.statusResponse = statusResponse; - } - - public StatusResponse getStatusResponse() { - return statusResponse; - } - - public void setStatusResponse(StatusResponse statusResponse) { - this.statusResponse = statusResponse; - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/response/MetadataResponse.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/response/MetadataResponse.java deleted file mode 100644 index 4f13ff4..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/response/MetadataResponse.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.banesco.common.domain.dto.bian.response; - -public record MetadataResponse(String timestamp, String operationId) { - - @Override - public String toString() { - return "{\"timestamp\":\"%s\",\"operationId\":\"%s\"}".formatted(timestamp, operationId); - } - -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/response/StatusResponse.java b/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/response/StatusResponse.java deleted file mode 100644 index ef001f9..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/dto/bian/response/StatusResponse.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.banesco.common.domain.dto.bian.response; - -public record StatusResponse(String status,String statusCode, String message, String traceId) { - - @Override - public String toString() { - return "{\"status\":\"%s\",\"statusCode\":\"%s\",\"message\":\"%s\",\"traceId\":\"%s\"}".formatted(status, statusCode, message, traceId); - } - -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/interfaces/BaseStatusCodesEnum.java b/commons-bian/src/main/java/com/banesco/common/domain/interfaces/BaseStatusCodesEnum.java deleted file mode 100644 index da70b01..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/interfaces/BaseStatusCodesEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.banesco.common.domain.interfaces; - -public interface BaseStatusCodesEnum { - String getStatusCode(); - String getStatusDesc(); -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/model/ApiConfig.java b/commons-bian/src/main/java/com/banesco/common/domain/model/ApiConfig.java deleted file mode 100644 index b15eaba..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/model/ApiConfig.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.banesco.common.domain.model; - -import java.util.Map; - -/** - * Clase de configuración para APIs. Almacena la información necesaria para - * conectarse a un servicio API externo, incluyendo URL, configuración de - * timeout y parámetros adicionales. Diseñada para ser utilizada como objeto de - * configuración en clientes de API y servicios de integración. - */ -public class ApiConfig { - - String url; - ApiTimeout timeout; - Map config; - - public ApiConfig(){ - - } - - public ApiConfig(String url, - ApiTimeout timeout, - Map config) { - - this.url = url; - this.timeout = timeout; - this.config = config; - } - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public ApiTimeout getTimeout() { - return timeout; - } - - public void setTimeout(ApiTimeout timeout) { - this.timeout = timeout; - } - - public Map getConfig() { - return config; - } - - public void setConfig(Map config) { - this.config = config; - } - -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/model/ApiTimeout.java b/commons-bian/src/main/java/com/banesco/common/domain/model/ApiTimeout.java deleted file mode 100644 index e7f6ab2..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/model/ApiTimeout.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.banesco.common.domain.model; - -/** - * Clase interna que representa la configuración de tiempos de espera - * (timeout) para conexiones a APIs. Define los tiempos máximos de espera - * para establecer la conexión y para recibir una respuesta, especificados - * en milisegundos. - */ -public class ApiTimeout{ - private int connect; - private int response; - - public ApiTimeout() { - - } - public ApiTimeout(int connect, int response) { - this.connect = connect; - this.response = response; - } - - public int getConnect() { - return connect; - } - - public void setConnect(int connect) { - this.connect = connect; - } - - public int getResponse() { - return response; - } - - public void setResponse(int response) { - this.response = response; - } - -} diff --git a/commons-bian/src/main/java/com/banesco/common/domain/model/BackResponse.java b/commons-bian/src/main/java/com/banesco/common/domain/model/BackResponse.java deleted file mode 100644 index 1ab89e4..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/model/BackResponse.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.banesco.common.domain.model; - -/** - * Clase para obtener los codigos y mensajes de salida - */ -public class BackResponse { - - private String backendCode; - private int httpCode; - private String statusCode; - private String description; - - public BackResponse() { - } - - public BackResponse(String backendCode, - int httpCode, - String statusCode, - String description) { - this.backendCode = backendCode; - this.httpCode = httpCode; - this.statusCode = statusCode; - this.description = backendCode; - } - - public String getBackendCode() { - return backendCode; - } - - public int getHttpCode() { - return httpCode; - } - - public String getStatusCode() { - return statusCode; - } - - public String getDescription() { - return description; - } - - public void setBackendCode(String backendCode) { - this.backendCode = backendCode; - } - - public void setHttpCode(int httpCode) { - this.httpCode = httpCode; - } - - public void setStatusCode(String statusCode) { - this.statusCode = statusCode; - } - - public void setDescription(String description) { - this.description = description; - } - - @Override - public String toString() { - return "{\"backendCode\":\"%s\",\"httpCode\":%d,\"statusCode\":\"%s\",\"description\":\"%s\"}" - .formatted(backendCode, httpCode, statusCode, description); - } -} \ No newline at end of file diff --git a/commons-bian/src/main/java/com/banesco/common/domain/model/RedisParam.java b/commons-bian/src/main/java/com/banesco/common/domain/model/RedisParam.java deleted file mode 100644 index aef3541..0000000 --- a/commons-bian/src/main/java/com/banesco/common/domain/model/RedisParam.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.banesco.common.domain.model; - - -public class RedisParam { - private String prefix; - private long expiration; - - public RedisParam() { - } - - public RedisParam(String prefix, long expiration) { - this.prefix = prefix; - this.expiration = expiration; - } - - public String getPrefix() { - return prefix; - } - - public void setPrefix(String prefix) { - this.prefix = prefix; - } - - public long getExpiration() { - return expiration; - } - - public void setExpiration(long expiration) { - this.expiration = expiration; - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/infraestructure/repository/MessageRepository.java b/commons-bian/src/main/java/com/banesco/common/infraestructure/repository/MessageRepository.java deleted file mode 100644 index 4a59712..0000000 --- a/commons-bian/src/main/java/com/banesco/common/infraestructure/repository/MessageRepository.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.banesco.common.infraestructure.repository; - -import com.banesco.common.domain.model.BackResponse; -import com.banesco.common.domain.dto.bian.device.JsonHelper; -import com.banesco.common.domain.dto.bian.device.StringHelper; - -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class MessageRepository { - - private static final Logger logger = Logger.getLogger(MessageRepository.class.getName()); - - /** - * Respuesta de error por defecto que se utiliza cuando no se encuentra un - * error específico. - */ - - /** - * Mapa que almacena múltiples mapas de códigos de error, donde la clave - * principal es el nombre del archivo de mensajes. - */ - public final Map> mapErrorsMultiple = new HashMap<>(); - - /** - * Carga los mensajes de error desde un InputStream y los almacena en un - * mapa. - * - * @param inputStream El InputStream que contiene los datos JSON de los - * mensajes de error. - * @param messageFileKey La clave del archivo de mensajes, utilizada para - * almacenar el mapa en mapErrorsMultiple. - * @return Un mapa que contiene los códigos de error como claves y los - * objetos BackResponse como valores. - * @throws IOException Si ocurre un error de entrada/salida al leer el - * InputStream. - */ - private Map loadFile(InputStream inputStream, String messageFileKey) throws IOException { - Map mapStatusCodes = new HashMap<>(); - Arrays.stream(JsonHelper.MAPPER.readValue(inputStream, BackResponse[].class)).forEach(o -> { - mapStatusCodes.put(o.getBackendCode(), o); - }); - mapErrorsMultiple.put(messageFileKey, mapStatusCodes); - return mapStatusCodes; - } - - /** - * Carga los mensajes de error desde una cadena JSON y los almacena en un - * mapa. - * - * @param messageFileKey La clave del archivo de mensajes, utilizada para - * almacenar el mapa en mapErrorsMultiple. - * @param jsonString La cadena JSON que contiene los datos de los mensajes - * de error. - * @throws IOException Si ocurre un error al procesar la cadena JSON. - */ - public void loadMessagesFromString(String messageFileKey, String jsonString) throws IOException { - Map mapStatusCodes = new HashMap<>(); - Arrays.stream(JsonHelper.MAPPER.readValue(jsonString, BackResponse[].class)).forEach(o -> { - mapStatusCodes.put(o.getBackendCode(), o); - }); - mapErrorsMultiple.put(messageFileKey, mapStatusCodes); - } - - /** - * Obtiene el mapa de códigos de error para un archivo de respuesta - * específico. - * - * @param responseFile El nombre del archivo de respuesta para el cual se - * desea obtener el mapa de errores. - * @return Un mapa que contiene los códigos de error como claves y los - * objetos BackResponse como valores, o null si no se encuentra el mapa. - */ - public Map getErrorMap(String responseFile, boolean insideProperties) { - Map errorMap = mapErrorsMultiple.get(responseFile); - if (insideProperties || (errorMap != null && !errorMap.isEmpty())) { - return errorMap; - } - - String fileName = (StringHelper.isNumeric(responseFile) ? "vb".concat(responseFile) : responseFile).concat(".json"); - - try { - try { - // Intenta cargar el archivo desde el directorio /config/. - return loadFile(new FileInputStream("/config/".concat(fileName)), responseFile); - } catch (IOException e) { - // Si no se encuentra el archivo en /config/, intenta cargarlo desde el classpath. - logger.log(Level.WARNING, "Path /config/" + fileName + " not found. Loading local from errors-mapping/" + fileName); - ClassLoader classLoader = getClass().getClassLoader(); - InputStream inputStream = classLoader.getResourceAsStream("errors-mapping/" + fileName); - if (inputStream == null) { - // Si no se encuentra el archivo en el classpath, registra un error y devuelve null. - logger.log(Level.SEVERE, "Resource errors-mapping/" + fileName + " not found."); - return null; - } - return loadFile(inputStream, responseFile); - } - } catch (IOException e) { - // Si ocurre un error al cargar el archivo desde cualquier ubicación, registra un error y devuelve null. - logger.log(Level.SEVERE, "Error getting Service Messages to /config/".concat(fileName) + ": " + e.getMessage()); - - return null; - } - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/infraestructure/repository/RegisterSecurityRepository.java b/commons-bian/src/main/java/com/banesco/common/infraestructure/repository/RegisterSecurityRepository.java deleted file mode 100644 index d9ca2ef..0000000 --- a/commons-bian/src/main/java/com/banesco/common/infraestructure/repository/RegisterSecurityRepository.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.banesco.common.infraestructure.repository; - -import com.banesco.common.domain.model.ApiConfig; -import com.banesco.common.domain.dto.bian.device.JsonHelper; -import com.banesco.common.domain.dto.bian.device.LoggerHelper; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class RegisterSecurityRepository { - - private static final Logger logger = Logger.getLogger(RegisterSecurityRepository.class.getName()); - private final LoggerHelper loggerHelper; - private final ApiConfig registerSecurityAPI; - private final ExecutorService executor = Executors.newCachedThreadPool(); - - public RegisterSecurityRepository(LoggerHelper loggerHelper, ApiConfig registerSecurityAPI) { - this.loggerHelper = loggerHelper; - this.registerSecurityAPI = registerSecurityAPI; - } - - public void writeTrice(String requestId, T registerSecurityRq) { - logger.info(loggerHelper.buildInfoPrivateRequest(requestId, "RegisterSecurityRq", registerSecurityRq)); - - CompletableFuture.runAsync(() -> { - try { - URL url = new URL(registerSecurityAPI.getUrl()); - HttpURLConnection connection = (HttpURLConnection) url.openConnection(); - connection.setRequestMethod("POST"); - connection.setRequestProperty("Content-Type", "application/json"); - connection.setConnectTimeout(registerSecurityAPI.getTimeout().getConnect()); - connection.setReadTimeout(registerSecurityAPI.getTimeout().getResponse()); - connection.setDoOutput(true); - - String jsonInputString = JsonHelper.getJsonFromObject(registerSecurityRq); - - try (OutputStream os = connection.getOutputStream()) { - byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); - os.write(input, 0, input.length); - } - - int responseCode = connection.getResponseCode(); - if (responseCode == HttpURLConnection.HTTP_OK) { - try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8))) { - StringBuilder response = new StringBuilder(); - String responseLine; - while ((responseLine = br.readLine()) != null) { - response.append(responseLine.trim()); - } - logger.info(loggerHelper.buildInfoPrivateResponse(requestId, "RegisterSecurityRs", response.toString())); - } - } else { - try (BufferedReader br = new BufferedReader(new InputStreamReader(connection.getErrorStream(), StandardCharsets.UTF_8))) { - StringBuilder response = new StringBuilder(); - String responseLine; - while ((responseLine = br.readLine()) != null) { - response.append(responseLine.trim()); - } - logger.info(loggerHelper.buildInfoPrivateResponse(requestId, "RegisterSecurityRs", response.toString())); - } - } - - connection.disconnect(); - - } catch (IOException e) { - logger.log(Level.SEVERE, String.format("Error interno writeTrice: %s", e.getMessage())); - logger.info(loggerHelper.buildInfoPrivateResponse(requestId, "RegisterSecurityRs", e.getMessage())); - } - }, executor).exceptionally(ex -> { - logger.log(Level.SEVERE, String.format("Async Error interno writeTrice: %s", ex.getMessage())); - logger.info(loggerHelper.buildInfoPrivateResponse(requestId, "RegisterSecurityRs", ex.getMessage())); - return null; - }); - - } - - public void shutdown() { - executor.shutdown(); - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/infraestructure/service/MessageService.java b/commons-bian/src/main/java/com/banesco/common/infraestructure/service/MessageService.java deleted file mode 100644 index fab6eb3..0000000 --- a/commons-bian/src/main/java/com/banesco/common/infraestructure/service/MessageService.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.banesco.common.infraestructure.service; - -import com.banesco.common.domain.model.BackResponse; -import com.banesco.common.domain.dto.bian.response.StatusResponse; -import com.banesco.common.infraestructure.repository.MessageRepository; - -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; - -public class MessageService { - - private static final Logger logger = Logger.getLogger(MessageService.class.getName()); - private final MessageRepository messageRepository; - - private final String CONFLICT = "CONFLICT"; - private final BackResponse DEFAULT_ERROR = new BackResponse( - CONFLICT, - 409, - CONFLICT, - CONFLICT - ); - - private boolean messagesInsideProperties = false; - - /** - * Constructor de MessageService. - * - * @param messageRepository El repositorio de mensajes que se utilizará para - * cargar y obtener mensajes de error. - */ - public MessageService(MessageRepository messageRepository) { - this.messageRepository = messageRepository; - } - - - /** - * Carga mensajes desde una cadena JSON en el repositorio de mensajes. - * - * @param responseFileName El nombre del archivo de respuesta asociado con - * los mensajes. - * @param jsonResponse La cadena JSON que contiene los mensajes. - */ - public void loadMessageFromJson(String responseFileName, String jsonResponse) { - messagesInsideProperties = true; - try { - messageRepository.loadMessagesFromString(responseFileName, jsonResponse); - } catch (Exception ex) { - logger.log(Level.SEVERE, "Error loading messages from JSON: %s".formatted(ex.getMessage()), ex); - } - } - - /** - * Obtiene una respuesta de estado (BackResponse) basada en el código de - * backend y el nombre del archivo de respuesta. - * - * @param responseFileName El nombre del archivo de respuesta. - * @param backendCode El código de backend para buscar la respuesta. - * @return La respuesta de estado (BackResponse) correspondiente al código - * de backend, la respuesta por defecto si no se encuentra, o null si hay un - * error. - */ - public BackResponse geStatusResponse(String responseFileName, String backendCode) { - logger.log(Level.INFO, "Finding backendCode: \"%s\" in File: \"%s\"".formatted(backendCode, responseFileName)); - Map errors = messageRepository.getErrorMap(responseFileName, messagesInsideProperties); - - if (errors == null || errors.isEmpty()) { - logger.log(Level.WARNING, "Error map for %s is empty or null.".formatted(responseFileName)); - return DEFAULT_ERROR; - } - - BackResponse backResponse = null; - try { - backResponse = errors.get(backendCode); - if (backResponse == null) { - backResponse = errors.get("default"); - } - } catch (Exception e) { - logger.log(Level.WARNING, "Error code: %s not found in %s. Using default.".formatted(backendCode, responseFileName), e); - try { - backResponse = errors.get("default"); - } catch (Exception e2) { - logger.log(Level.SEVERE, "Error getting default code.", e2); - } - } - - if (backResponse == null) { - logger.log(Level.WARNING, "Error code: %s and default not found in %s.".formatted(backendCode, responseFileName)); - return DEFAULT_ERROR; - } - return backResponse; - } - - public StatusResponse backToStatusResponse(String traceId, BackResponse backResponse, String target) { - return new StatusResponse( - backResponse.getHttpCode()>=200 && backResponse.getHttpCode()<300?"ok":"error", - backResponse.getStatusCode(), - target == null ? backResponse.getDescription() : - backResponse.getDescription().formatted(target), - traceId - - ); - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/infraestructure/utils/DateValidator.java b/commons-bian/src/main/java/com/banesco/common/infraestructure/utils/DateValidator.java deleted file mode 100644 index 782f5db..0000000 --- a/commons-bian/src/main/java/com/banesco/common/infraestructure/utils/DateValidator.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.banesco.common.infraestructure.utils; - -import java.time.DateTimeException; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; - -/** - * Clase para validación de fechas con configuración flexible. Permite validar - * fechas en diferentes formatos, comprobar rangos de años y verificar la - * correcta formación de componentes de fecha (año, mes, día). Implementa el - * patrón Builder para facilitar la configuración personalizada de los - * parámetros de validación. - */ -public class DateValidator { - - private final DateTimeFormatter dateFormatter; - private final PatternValidator datePattern; - private final int minYear; - private final int maxYear; - - private DateValidator(Builder builder) { - this.dateFormatter = builder.dateFormatter; - this.datePattern = new PatternValidator(builder.dateFormatRegex); - this.minYear = builder.minYear; - this.maxYear = builder.maxYear; - } - - public static class Builder { - - private DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); - private String dateFormatRegex = "(\\d{4})/(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])"; - private int minYear = 1900; - private int maxYear = 2100; - - public Builder withDateFormatter(String dateFormatterPattern) { - this.dateFormatter = DateTimeFormatter.ofPattern(dateFormatterPattern); - return this; - } - - public Builder withDateFormatRegex(String dateFormatRegex) { - this.dateFormatRegex = dateFormatRegex; - return this; - } - - public Builder withMinYear(int minYear) { - this.minYear = minYear; - return this; - } - - public Builder withMaxYear(int maxYear) { - this.maxYear = maxYear; - return this; - } - - public DateValidator build() { - return new DateValidator(this); - } - } - - public boolean isValidDateFormat(String date) { - return datePattern.isValid(date); - } - - public boolean isValidDate(String date) { - if (!isValidDateFormat(date)) { - return false; - } - - try { - LocalDate parsedDate = LocalDate.parse(date, dateFormatter); - String formattedDate = parsedDate.format(dateFormatter); - return date.equals(formattedDate); - } catch (DateTimeException e) { - return false; - } - } - - public boolean isValidDate(int year, int month, int day) { - return year >= minYear && year <= maxYear && month >= 1 && month <= 12 && isValidDayOfMonth(year, month, day); - } - - private boolean isValidDayOfMonth(int year, int month, int day) { - try { - LocalDate.of(year, month, day); - return true; - } catch (DateTimeException e) { - return false; - } - } -} diff --git a/commons-bian/src/main/java/com/banesco/common/infraestructure/utils/PatternValidator.java b/commons-bian/src/main/java/com/banesco/common/infraestructure/utils/PatternValidator.java deleted file mode 100644 index 205e980..0000000 --- a/commons-bian/src/main/java/com/banesco/common/infraestructure/utils/PatternValidator.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.banesco.common.infraestructure.utils; - -import java.util.regex.Pattern; - -/** - * Clase para validar Expresion regulares - */ -public class PatternValidator { - - private final Pattern pattern; - - public PatternValidator(String patternStr) { - pattern = Pattern.compile(patternStr); - } - - public static PatternValidator withRegex(String patternStr) { - return new PatternValidator(patternStr); - } - - /** - * Validates is un valor tiene formato valido. - * - * @param value the value to check. - * @return true if the value has format valid, false otherwise. - */ - public boolean isValid(String value) { - if (value == null) { - return false; - } - return pattern.matcher(value).matches(); - } -} diff --git a/commons-bian/src/test/java/com/banesco/AppTest.java b/commons-bian/src/test/java/com/banesco/AppTest.java deleted file mode 100644 index 0cbda81..0000000 --- a/commons-bian/src/test/java/com/banesco/AppTest.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.banesco; - - -/** - * Unit test for simple App. - */ -public class AppTest { - /** - * Create the test case - * - * @param testName name of the test case - */ - - public AppTest(String testName) { - - } - - -} diff --git a/commons-plain-java b/commons-plain-java new file mode 160000 index 0000000..3f36666 --- /dev/null +++ b/commons-plain-java @@ -0,0 +1 @@ +Subproject commit 3f36666c4dc33f988d1c635a9cfc1fe71fb7a59e diff --git a/prv-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java b/prv-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java index a681c98..f6c6ac8 100644 --- a/prv-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java +++ b/prv-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java @@ -22,7 +22,5 @@ public class UpdateCardStatusService implements UpdateCardStatusUseCase { @Override public BlockUnblockDebitCardRs executeUpdate(UpdateCardStatusRequest request) { return cardPort.updateCardStatus(request); - - } } diff --git a/prv-update-card-status/src/main/java/com/banesco/infrastructure/soap/CardAdapter.java b/prv-update-card-status/src/main/java/com/banesco/infrastructure/soap/CardAdapter.java index 4be98a3..c9197db 100644 --- a/prv-update-card-status/src/main/java/com/banesco/infrastructure/soap/CardAdapter.java +++ b/prv-update-card-status/src/main/java/com/banesco/infrastructure/soap/CardAdapter.java @@ -3,7 +3,6 @@ package com.banesco.infrastructure.soap; import com.banesco.application.UpdateCardStatusRequest; import com.banesco.commons.config.AppConf; import com.banesco.commons.config.StatusCodes; -import com.banesco.commons.helper.JsonHelper; import com.banesco.commons.helper.XMLHelper; import com.banesco.commons.model.SoapEndpoint; import com.banesco.commons.soap.client.apidebitcardoutappsvc.*; @@ -31,7 +30,7 @@ public class CardAdapter implements CardPort { private Map SOAP_CLIENTS = new HashMap<>(); private final AppConf appConf; private final DebitCardMapper debitCardMapper; - private final SoapEndpoint paymentGenerateSOAP; + private final SoapEndpoint blockUnblockDebitCardSOAP; @ConfigProperty(name = "soap.print-xml", defaultValue = "false") boolean mustPrintXML; @@ -39,7 +38,7 @@ public class CardAdapter implements CardPort { public CardAdapter(AppConf appConf, DebitCardMapper debitCardMapper) { this.appConf = appConf; this.debitCardMapper = debitCardMapper; - paymentGenerateSOAP = appConf.loadSoapClientConfig("soap.service.block-unblock-debit-card"); + blockUnblockDebitCardSOAP = appConf.loadSoapClientConfig("soap.service.block-unblock-debit-card"); } @@ -52,14 +51,14 @@ public class CardAdapter implements CardPort { log.info("loading domainKey: {}", domainKey); JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(APIDebitCardOutAppSvc.class); - factory.setAddress(paymentGenerateSOAP.getUrl(appConf.getDomainConfig(domainKey))); + factory.setAddress(blockUnblockDebitCardSOAP.getUrl(appConf.getDomainConfig(domainKey))); client = (APIDebitCardOutAppSvc) factory.create(); HTTPConduit conduit = (HTTPConduit) ClientProxy.getClient(client).getConduit(); HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); - httpClientPolicy.setConnectionTimeout(paymentGenerateSOAP.getTimeout().getConnect()); // Connection timeout in milliseconds - httpClientPolicy.setReceiveTimeout(paymentGenerateSOAP.getTimeout().getResponse()); // Receive timeout in milliseconds + httpClientPolicy.setConnectionTimeout(blockUnblockDebitCardSOAP.getTimeout().getConnect()); // Connection timeout in milliseconds + httpClientPolicy.setReceiveTimeout(blockUnblockDebitCardSOAP.getTimeout().getResponse()); // Receive timeout in milliseconds conduit.setClient(httpClientPolicy); SOAP_CLIENTS.put(domainKey, client); } @@ -79,28 +78,29 @@ public class CardAdapter implements CardPort { } try { + return getSoapClient(requestData.getDomain()).blockUnblockDebitCard(request); - }catch (SocketTimeoutException e){ - log.error("SocketTimeoutException logging domain: {}, error: {}",requestData.getDomain(), e.getMessage()); + } catch (SocketTimeoutException e) { + log.error("SocketTimeoutException logging domain: {}, error: {}", requestData.getDomain(), e.getMessage()); return buildErrorStatusResponse(StatusCodes.TIMEOUT_DEPENDENCY, e.getMessage()); } catch (WebServiceException e) { - log.error("WebServiceException logging domain: {}, error: {}",requestData.getDomain(), e.getMessage()); + log.error("WebServiceException logging domain: {}, error: {}", requestData.getDomain(), e.getMessage()); return buildErrorStatusResponse(StatusCodes.FAILED_DEPENDENCY, e.getMessage()); } - } private BlockUnblockDebitCardRs buildErrorStatusResponse(StatusCodes statusCode, String message) { BlockUnblockDebitCardRs response = new BlockUnblockDebitCardRs(); Status status = debitCardMapper.objectFactory.createStatus(); status.setStatusCode(statusCode.getStatusCode()); + status.setStatusDesc(statusCode.getStatusDesc()); AdditionalStatus additionalStatus = debitCardMapper.objectFactory.createAdditionalStatus(); - additionalStatus.setStatusCode(statusCode.getStatusDesc()); - additionalStatus.setStatusCode(message); + additionalStatus.setStatusCode(statusCode.getStatusCode()); + additionalStatus.setStatusDesc(message); status.getAdditionalStatus().add(additionalStatus); response.getStatus().add( diff --git a/prv-update-card-status/src/main/resources/application-dev.yaml b/prv-update-card-status/src/main/resources/application-dev.yaml index b7592cf..4f5e149 100644 --- a/prv-update-card-status/src/main/resources/application-dev.yaml +++ b/prv-update-card-status/src/main/resources/application-dev.yaml @@ -3,13 +3,13 @@ quarkus: port: 8083 idle-timeout: 30s soap: - print-xml: false + print-xml: true health-check: enabled: false validation: domains: osbc,osbp2p service: - block-unblock-debit-card: '{"path":"/APIDebitCardOutAppSvc/proxy/APIDebitCardOutAppSvc","soapAction":"","timeout":{ "connect": 20000, "response": 20000}}' + block-unblock-debit-card: '{"path":"/APIDebitCardOutAppSvc/proxy/APIDebitCardOutAppSvc","soapAction":"","timeout":{ "connect": 10000, "response": 10000}}' domain: current: osbc domains: diff --git a/rec-update-card-status/pom.xml b/rec-update-card-status/pom.xml index 06b2947..9caa256 100644 --- a/rec-update-card-status/pom.xml +++ b/rec-update-card-status/pom.xml @@ -45,9 +45,10 @@ com.banesco - commons-bian + commons 1.0 + io.quarkus quarkus-core diff --git a/rec-update-card-status/src/main/java/com/banesco/application/helper/UpdateCardStatusRequestValidator.java b/rec-update-card-status/src/main/java/com/banesco/application/helper/UpdateCardStatusRequestValidator.java index f15d62f..1963e98 100644 --- a/rec-update-card-status/src/main/java/com/banesco/application/helper/UpdateCardStatusRequestValidator.java +++ b/rec-update-card-status/src/main/java/com/banesco/application/helper/UpdateCardStatusRequestValidator.java @@ -2,8 +2,8 @@ package com.banesco.application.helper; import com.banesco.common.application.exception.BanRuntimeException; -import com.banesco.common.application.helper.DeviceHelper; -import com.banesco.common.domain.dto.bian.device.StringHelper; +import com.banesco.common.infraestructure.helpers.DeviceHelper; +import com.banesco.common.infraestructure.helpers.StringHelper; import com.banesco.common.infraestructure.utils.PatternValidator; import com.banesco.commons.config.StatusCodes; import com.banesco.domain.bian.request.RecUpdateCardStatusRequest; diff --git a/rec-update-card-status/src/main/java/com/banesco/application/rest/controllers/UpdateCardStatusController.java b/rec-update-card-status/src/main/java/com/banesco/application/rest/controllers/UpdateCardStatusController.java index 6304e54..69ecedc 100644 --- a/rec-update-card-status/src/main/java/com/banesco/application/rest/controllers/UpdateCardStatusController.java +++ b/rec-update-card-status/src/main/java/com/banesco/application/rest/controllers/UpdateCardStatusController.java @@ -3,9 +3,9 @@ package com.banesco.application.rest.controllers; import com.banesco.application.helper.UpdateCardStatusRequestValidator; import com.banesco.common.application.exception.BanBackendException; import com.banesco.common.application.exception.BanRuntimeException; -import com.banesco.common.domain.dto.bian.device.JsonHelper; -import com.banesco.common.domain.dto.bian.device.LoggerHelper; import com.banesco.common.domain.model.BackResponse; +import com.banesco.common.infraestructure.helpers.JsonHelper; +import com.banesco.common.infraestructure.helpers.LoggerHelper; import com.banesco.commons.config.AppConf; import com.banesco.domain.bian.request.RecUpdateCardStatusRequest; import com.banesco.domain.bian.response.RecUpdateCardStatusResponse; @@ -221,7 +221,7 @@ public class UpdateCardStatusController { } RecUpdateCardStatusResponse response = new RecUpdateCardStatusResponse(); - response.setStatusResponse(appConf.messageService.backToStatusResponse(currentState.requestId(), backResponse, target)); + response.setStatusResponse(appConf.messageService.backToBianStatusResponse(currentState.requestId(), backResponse, target)); String outputJson = response.toString(); diff --git a/rec-update-card-status/src/main/java/com/banesco/commons/config/AppConf.java b/rec-update-card-status/src/main/java/com/banesco/commons/config/AppConf.java index d26cc85..dfc5044 100644 --- a/rec-update-card-status/src/main/java/com/banesco/commons/config/AppConf.java +++ b/rec-update-card-status/src/main/java/com/banesco/commons/config/AppConf.java @@ -1,11 +1,11 @@ package com.banesco.commons.config; import com.banesco.common.application.exception.BanRuntimeException; -import com.banesco.common.domain.dto.bian.device.DateHelper; -import com.banesco.common.domain.dto.bian.device.JsonHelper; -import com.banesco.common.domain.dto.bian.device.RequestHelper; import com.banesco.common.domain.model.ApiConfig; import com.banesco.common.domain.model.BackResponse; +import com.banesco.common.infraestructure.helpers.DateHelper; +import com.banesco.common.infraestructure.helpers.JsonHelper; +import com.banesco.common.infraestructure.helpers.RequestHelper; import com.banesco.common.infraestructure.repository.MessageRepository; import com.banesco.common.infraestructure.service.MessageService; import com.banesco.commons.exceptions.BanConfigException; @@ -36,6 +36,7 @@ public class AppConf { private final RequestHelper requestHelper; DateHelper dateHelper = DateHelper.getInstance(); + public static void getInstance() { synchronized (AppConf.class) { diff --git a/rec-update-card-status/src/main/java/com/banesco/commons/exceptions/InternalExceptionMapper.java b/rec-update-card-status/src/main/java/com/banesco/commons/exceptions/InternalExceptionMapper.java index 02df14d..d9472cd 100644 --- a/rec-update-card-status/src/main/java/com/banesco/commons/exceptions/InternalExceptionMapper.java +++ b/rec-update-card-status/src/main/java/com/banesco/commons/exceptions/InternalExceptionMapper.java @@ -1,6 +1,6 @@ package com.banesco.commons.exceptions; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import com.banesco.domain.bian.response.RecUpdateCardStatusResponse; import io.vertx.ext.web.RoutingContext; import jakarta.inject.Inject; @@ -29,7 +29,7 @@ public class InternalExceptionMapper { case "/card/status/update": RecUpdateCardStatusResponse response = new RecUpdateCardStatusResponse(); response.setStatusResponse( - new StatusResponse( + new BianStatusResponse( "error", "CONFLICT", "Uso interno", diff --git a/rec-update-card-status/src/main/java/com/banesco/commons/exceptions/MalformedPayloadExceptionMapper.java b/rec-update-card-status/src/main/java/com/banesco/commons/exceptions/MalformedPayloadExceptionMapper.java index 8143e67..ac7f378 100644 --- a/rec-update-card-status/src/main/java/com/banesco/commons/exceptions/MalformedPayloadExceptionMapper.java +++ b/rec-update-card-status/src/main/java/com/banesco/commons/exceptions/MalformedPayloadExceptionMapper.java @@ -1,6 +1,6 @@ package com.banesco.commons.exceptions; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import com.banesco.commons.config.StatusCodes; import com.banesco.domain.bian.response.RecUpdateCardStatusResponse; import io.vertx.core.http.HttpServerRequest; @@ -29,13 +29,13 @@ public class MalformedPayloadExceptionMapper implements ExceptionMapper { public RecUpdateCardStatusResponse() { super(); } - public RecUpdateCardStatusResponse(StatusResponse statusResponse) { - super(statusResponse); + public RecUpdateCardStatusResponse(BianStatusResponse statusResponse, Object data) { + super(statusResponse, data); } @Override diff --git a/rec-update-card-status/src/main/java/com/banesco/domain/ports/outbound/PaymentCardPort.java b/rec-update-card-status/src/main/java/com/banesco/domain/ports/outbound/PaymentCardPort.java index 9473d32..c9d8970 100644 --- a/rec-update-card-status/src/main/java/com/banesco/domain/ports/outbound/PaymentCardPort.java +++ b/rec-update-card-status/src/main/java/com/banesco/domain/ports/outbound/PaymentCardPort.java @@ -1,10 +1,10 @@ package com.banesco.domain.ports.outbound; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import com.banesco.domain.bian.request.RecUpdateCardStatusRequest; import com.banesco.domain.models.CurrentState; public interface PaymentCardPort { - StatusResponse updateCardStatus(CurrentState currentState, RecUpdateCardStatusRequest request); + BianStatusResponse updateCardStatus(CurrentState currentState, RecUpdateCardStatusRequest request); } diff --git a/rec-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java b/rec-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java index d7ae500..862ad7b 100644 --- a/rec-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java +++ b/rec-update-card-status/src/main/java/com/banesco/domain/services/UpdateCardStatusService.java @@ -1,7 +1,7 @@ package com.banesco.domain.services; import com.banesco.common.application.exception.BanBackendException; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import com.banesco.commons.config.StatusCodes; import com.banesco.domain.bian.request.RecUpdateCardStatusRequest; import com.banesco.domain.models.CurrentState; @@ -26,9 +26,9 @@ public class UpdateCardStatusService implements UpdateCardStatusUseCase { @Override public void execute(CurrentState currentState, - RecUpdateCardStatusRequest request) { + RecUpdateCardStatusRequest request) { - StatusResponse statusResponse = paymentCardPort.updateCardStatus(currentState, request); + BianStatusResponse statusResponse = paymentCardPort.updateCardStatus(currentState, request); if (!statusResponse.statusCode().equals(RESULT_OK)) { throw new BanBackendException(statusResponse.statusCode(), statusResponse.message()); diff --git a/rec-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/BusUpdateCardStatusRequest.java b/rec-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/BusUpdateCardStatusRequest.java index f50e83f..63ff259 100644 --- a/rec-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/BusUpdateCardStatusRequest.java +++ b/rec-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/BusUpdateCardStatusRequest.java @@ -2,7 +2,7 @@ package com.banesco.infrastructure.dtos.card; import com.banesco.common.domain.dto.bian.customer.CustomerReference; -import com.banesco.common.domain.dto.bian.device.Device; +import com.banesco.common.domain.dto.bian.device.BianDevice; import com.banesco.domain.bian.dto.CardReference; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.AllArgsConstructor; @@ -17,6 +17,6 @@ public class BusUpdateCardStatusRequest { String requestId; String customerReferenceFintechId; CustomerReference customerReference; - Device device; + BianDevice device; CardReference cardReference; } diff --git a/rec-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/BusUpdateCardStatusResponse.java b/rec-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/BusUpdateCardStatusResponse.java index 620b1ad..3aaa44d 100644 --- a/rec-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/BusUpdateCardStatusResponse.java +++ b/rec-update-card-status/src/main/java/com/banesco/infrastructure/dtos/card/BusUpdateCardStatusResponse.java @@ -2,7 +2,7 @@ package com.banesco.infrastructure.dtos.card; import com.banesco.common.domain.dto.bian.response.BaseResponse; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.Data; import lombok.EqualsAndHashCode; @@ -10,13 +10,13 @@ import lombok.EqualsAndHashCode; @RegisterForReflection @Data @EqualsAndHashCode(callSuper = false) -public class BusUpdateCardStatusResponse extends BaseResponse { +public class BusUpdateCardStatusResponse extends BaseResponse { public BusUpdateCardStatusResponse() { super(); } - public BusUpdateCardStatusResponse(StatusResponse statusResponse) { - super(statusResponse); + public BusUpdateCardStatusResponse(BianStatusResponse statusResponse, Object data) { + super(statusResponse, data); } } diff --git a/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/PaymentCardAdapter.java b/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/PaymentCardAdapter.java index 154159d..c5e902a 100644 --- a/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/PaymentCardAdapter.java +++ b/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/PaymentCardAdapter.java @@ -1,9 +1,8 @@ package com.banesco.infrastructure.rest; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import com.banesco.common.domain.model.ApiConfig; import com.banesco.commons.config.AppConf; -import com.banesco.commons.config.StatusCodes; import com.banesco.domain.bian.request.RecUpdateCardStatusRequest; import com.banesco.domain.models.CurrentState; import com.banesco.domain.ports.outbound.PaymentCardPort; @@ -37,20 +36,22 @@ public class PaymentCardAdapter implements PaymentCardPort { } - public StatusResponse updateCardStatus(CurrentState currentState, RecUpdateCardStatusRequest request) { + public BianStatusResponse updateCardStatus(CurrentState currentState, RecUpdateCardStatusRequest request) { - /* - StatusResponse statusResponse = paymentRepository.updateCardStatus( + + return paymentRepository.updateCardStatus( this.paymentCardMapper.toBusinessRequest( currentState, request ) - );*/ + ); - StatusResponse statusResponse; + /* + + BianStatusResponse statusResponse; if (request.getCustomerReference().getCustomerIdType().equals("J")) { - statusResponse = new StatusResponse( + statusResponse = new BianStatusResponse( "ok", StatusCodes.SUCCESS_OPERATION.getStatusCode(), @@ -58,7 +59,7 @@ public class PaymentCardAdapter implements PaymentCardPort { currentState.requestId() ); } else { - statusResponse = new StatusResponse( + statusResponse = new BianStatusResponse( "error", StatusCodes.FAILED_DEPENDENCY.getStatusCode(), "Error al procesar la solicitud", @@ -68,7 +69,7 @@ public class PaymentCardAdapter implements PaymentCardPort { return statusResponse; - +*/ } diff --git a/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/RegisterSecurityAdapter.java b/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/RegisterSecurityAdapter.java index 353b92f..b0293d2 100644 --- a/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/RegisterSecurityAdapter.java +++ b/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/RegisterSecurityAdapter.java @@ -1,7 +1,7 @@ package com.banesco.infrastructure.rest; -import com.banesco.common.domain.dto.bian.device.LoggerHelper; import com.banesco.common.domain.model.ApiConfig; +import com.banesco.common.infraestructure.helpers.LoggerHelper; import com.banesco.commons.config.AppConf; import com.banesco.domain.ports.outbound.RegisterSecurityPort; import com.banesco.infrastructure.dtos.RegisterSecurityRq; diff --git a/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/clients/BusUpdateCardStatusRestClient.java b/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/clients/BusUpdateCardStatusRestClient.java index 628ca5d..b2fbd1c 100644 --- a/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/clients/BusUpdateCardStatusRestClient.java +++ b/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/clients/BusUpdateCardStatusRestClient.java @@ -3,7 +3,7 @@ package com.banesco.infrastructure.rest.clients; import com.banesco.infrastructure.dtos.card.BusUpdateCardStatusRequest; import io.quarkus.runtime.annotations.RegisterForReflection; import jakarta.ws.rs.Consumes; -import jakarta.ws.rs.POST; +import jakarta.ws.rs.PUT; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; @@ -14,7 +14,7 @@ import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; public interface BusUpdateCardStatusRestClient { - @POST + @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) Response invoke(BusUpdateCardStatusRequest request); diff --git a/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/repositories/PaymentCardRepository.java b/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/repositories/PaymentCardRepository.java index 5b972db..1dd1aca 100644 --- a/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/repositories/PaymentCardRepository.java +++ b/rec-update-card-status/src/main/java/com/banesco/infrastructure/rest/repositories/PaymentCardRepository.java @@ -1,9 +1,9 @@ package com.banesco.infrastructure.rest.repositories; -import com.banesco.common.domain.dto.bian.device.JsonHelper; -import com.banesco.common.domain.dto.bian.device.LoggerHelper; -import com.banesco.common.domain.dto.bian.response.StatusResponse; +import com.banesco.common.domain.dto.bian.response.BianStatusResponse; import com.banesco.common.domain.model.ApiConfig; +import com.banesco.common.infraestructure.helpers.JsonHelper; +import com.banesco.common.infraestructure.helpers.LoggerHelper; import com.banesco.commons.config.StatusCodes; import com.banesco.commons.utils.ResponseUtil; import com.banesco.infrastructure.dtos.card.BusUpdateCardStatusRequest; @@ -41,7 +41,7 @@ public class PaymentCardRepository { } - public StatusResponse updateCardStatus(BusUpdateCardStatusRequest request) { + public BianStatusResponse updateCardStatus(BusUpdateCardStatusRequest request) { try { diff --git a/rec-update-card-status/src/main/resources/application-dev.yaml b/rec-update-card-status/src/main/resources/application-dev.yaml index ed54574..65e18e2 100644 --- a/rec-update-card-status/src/main/resources/application-dev.yaml +++ b/rec-update-card-status/src/main/resources/application-dev.yaml @@ -1,12 +1,12 @@ quarkus: http: - port: 8080 + port: 8081 idle-timeout: 30s thread-pool: max-threads: 100 core-threads: 1 api: - source-id: UCSS + source-id: UCS allowed: customer: types: J,V @@ -22,9 +22,9 @@ api: recUpdateCardStatus: messages: key: 'recUpdateCardStatus' - content: '[{"backendCode":"200","httpCode":200,"statusCode":"200","description":"Operacion exitosa"},{"backendCode":"503","httpCode":503,"statusCode":"503","description":"Uso interno"},{"backendCode":"422","httpCode":422,"statusCode":"422","description":"Uso interno"},{"backendCode":"SERVICE_UNAVAILABLE","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"}]' + content: '[{"backendCode":"200","httpCode":200,"statusCode":"200","description":"Operacion exitosa"},{"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"}]' rest-client: - bus-update-card-status: '{"url":"http://localhost:8081/card/status/update","timeout":{"connect":20000,"response":20000},"config":{}}' + bus-update-card-status: '{"url":"http://localhost:8082/card/status/update","timeout":{"connect":20000,"response":20000},"config":{}}' register-security: '{"url":"http://api-register-security-route-apis-banesco-dev.apps.desplakur3.desintra.banesco.com/register-security/save","timeout":{"connect":20000,"response":20000},"config":{"sp":"spAPI_Traza","eventCod":"CANCTARJ","bankCod":"01","curCod":"BS"}}'