ADD - rest of files (helpers, utils, models, etc)
This commit is contained in:
parent
c36f2dccb5
commit
c8b9ee92cd
@ -0,0 +1,66 @@
|
|||||||
|
package com.banesco.domain.model;
|
||||||
|
|
||||||
|
public class FieldValidateResult {
|
||||||
|
|
||||||
|
private String backendCode;
|
||||||
|
private String field;
|
||||||
|
|
||||||
|
public FieldValidateResult() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public FieldValidateResult(String backendCode, String field) {
|
||||||
|
this.backendCode = backendCode;
|
||||||
|
this.field = field;
|
||||||
|
}
|
||||||
|
|
||||||
|
private FieldValidateResult(Builder builder) {
|
||||||
|
this.backendCode = builder.backendCode;
|
||||||
|
this.field = builder.field;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBackendCode() {
|
||||||
|
return backendCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getField() {
|
||||||
|
return field;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Builder {
|
||||||
|
|
||||||
|
private String backendCode;
|
||||||
|
private String field;
|
||||||
|
|
||||||
|
public Builder() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder backendCode(String backendCode) {
|
||||||
|
this.backendCode = backendCode;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder field(String field) {
|
||||||
|
this.field = field;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public FieldValidateResult build() {
|
||||||
|
// Validaciones de ser necesario
|
||||||
|
// if (attr == null || attr.isEmpty()) {
|
||||||
|
// throw new IllegalStateException("El atributo1 no puede estar vacío");
|
||||||
|
// }
|
||||||
|
return new FieldValidateResult(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Builder builder() {
|
||||||
|
return new Builder();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "FieldValidateResult [backendCode=" + backendCode + ", field=" + field + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
223
src/main/java/com/banesco/domain/model/RequestBase.java
Normal file
223
src/main/java/com/banesco/domain/model/RequestBase.java
Normal file
@ -0,0 +1,223 @@
|
|||||||
|
package com.banesco.domain.model;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
public class RequestBase {
|
||||||
|
|
||||||
|
@JsonProperty("MsgRqHdr")
|
||||||
|
public MsgRqHdr msgRqHdr;
|
||||||
|
|
||||||
|
public static class NetworkTrnInfo {
|
||||||
|
|
||||||
|
@JsonProperty("TransactionConsecutive")
|
||||||
|
public String transactionConsecutive;
|
||||||
|
@JsonProperty("RegisterNumber")
|
||||||
|
public String registerNumber;
|
||||||
|
@JsonProperty("OperationType")
|
||||||
|
public String operationType;
|
||||||
|
@JsonProperty("TransactionType")
|
||||||
|
public String transactionType;
|
||||||
|
@JsonProperty("TransactionCode")
|
||||||
|
public String transactionCode;
|
||||||
|
@JsonProperty("TransactionDate")
|
||||||
|
public String transactionDate;
|
||||||
|
@JsonProperty("TransactionTime")
|
||||||
|
public String transactionTime;
|
||||||
|
@JsonProperty("BankId")
|
||||||
|
public String bankId;
|
||||||
|
@JsonProperty("AgencyCode")
|
||||||
|
public String agencyCode;
|
||||||
|
@JsonProperty("ChannelId")
|
||||||
|
public String channelId;
|
||||||
|
|
||||||
|
public String getTransactionConsecutive() {
|
||||||
|
return transactionConsecutive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactionConsecutive(String transactionConsecutive) {
|
||||||
|
this.transactionConsecutive = transactionConsecutive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRegisterNumber() {
|
||||||
|
return registerNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRegisterNumber(String registerNumber) {
|
||||||
|
this.registerNumber = registerNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOperationType() {
|
||||||
|
return operationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperationType(String operationType) {
|
||||||
|
this.operationType = operationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransactionType() {
|
||||||
|
return transactionType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactionType(String transactionType) {
|
||||||
|
this.transactionType = transactionType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransactionCode() {
|
||||||
|
return transactionCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactionCode(String transactionCode) {
|
||||||
|
this.transactionCode = transactionCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransactionDate() {
|
||||||
|
return transactionDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactionDate(String transactionDate) {
|
||||||
|
this.transactionDate = transactionDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransactionTime() {
|
||||||
|
return transactionTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactionTime(String transactionTime) {
|
||||||
|
this.transactionTime = transactionTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBankId() {
|
||||||
|
return bankId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBankId(String bankId) {
|
||||||
|
this.bankId = bankId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAgencyCode() {
|
||||||
|
return agencyCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAgencyCode(String agencyCode) {
|
||||||
|
this.agencyCode = agencyCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getChannelId() {
|
||||||
|
return channelId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChannelId(String channelId) {
|
||||||
|
this.channelId = channelId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ApplicantData {
|
||||||
|
|
||||||
|
@JsonProperty("Application")
|
||||||
|
public String application;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class VBProtocol {
|
||||||
|
|
||||||
|
@JsonProperty("VBProtocolInd")
|
||||||
|
public String vBProtocolInd;
|
||||||
|
@JsonProperty("TransactionInd")
|
||||||
|
public String transactionInd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class MsgRqHdr {
|
||||||
|
|
||||||
|
@JsonProperty("MessageDate")
|
||||||
|
public String messageDate;
|
||||||
|
@JsonProperty("MessageTime")
|
||||||
|
public String messageTime;
|
||||||
|
@JsonProperty("RequestId")
|
||||||
|
public String requestId;
|
||||||
|
@JsonProperty("SourceChannelCode")
|
||||||
|
public String sourceChannelCode;
|
||||||
|
@JsonProperty("SupervisorCode")
|
||||||
|
public String supervisorCode;
|
||||||
|
@JsonProperty("OperatorCode")
|
||||||
|
public String operatorCode;
|
||||||
|
@JsonProperty("NetworkTrnInfo")
|
||||||
|
public NetworkTrnInfo networkTrnInfo;
|
||||||
|
@JsonProperty("ApplicantData")
|
||||||
|
public ApplicantData applicantData;
|
||||||
|
@JsonProperty("VBProtocol")
|
||||||
|
public VBProtocol vBProtocol;
|
||||||
|
|
||||||
|
public String getMessageDate() {
|
||||||
|
return messageDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMessageDate(String messageDate) {
|
||||||
|
this.messageDate = messageDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMessageTime() {
|
||||||
|
return messageTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMessageTime(String messageTime) {
|
||||||
|
this.messageTime = messageTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRequestId() {
|
||||||
|
return requestId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRequestId(String requestId) {
|
||||||
|
this.requestId = requestId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSourceChannelCode() {
|
||||||
|
return sourceChannelCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSourceChannelCode(String sourceChannelCode) {
|
||||||
|
this.sourceChannelCode = sourceChannelCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSupervisorCode() {
|
||||||
|
return supervisorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSupervisorCode(String supervisorCode) {
|
||||||
|
this.supervisorCode = supervisorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOperatorCode() {
|
||||||
|
return operatorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperatorCode(String operatorCode) {
|
||||||
|
this.operatorCode = operatorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public NetworkTrnInfo getNetworkTrnInfo() {
|
||||||
|
return networkTrnInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNetworkTrnInfo(NetworkTrnInfo networkTrnInfo) {
|
||||||
|
this.networkTrnInfo = networkTrnInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApplicantData getApplicantData() {
|
||||||
|
return applicantData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApplicantData(ApplicantData applicantData) {
|
||||||
|
this.applicantData = applicantData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public VBProtocol getvBProtocol() {
|
||||||
|
return vBProtocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setvBProtocol(VBProtocol vBProtocol) {
|
||||||
|
this.vBProtocol = vBProtocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
298
src/main/java/com/banesco/domain/model/ResponseBase.java
Normal file
298
src/main/java/com/banesco/domain/model/ResponseBase.java
Normal file
@ -0,0 +1,298 @@
|
|||||||
|
package com.banesco.domain.model;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
public class ResponseBase {
|
||||||
|
|
||||||
|
@JsonProperty("MsgRsHdr")
|
||||||
|
public ArrayList<MsgRsHdr> msgRsHdr;
|
||||||
|
|
||||||
|
@JsonProperty("Status")
|
||||||
|
public ArrayList<Status> status;
|
||||||
|
|
||||||
|
public ResponseBase() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResponseBase(ArrayList<MsgRsHdr> msgRsHdr, ArrayList<Status> status) {
|
||||||
|
this.msgRsHdr = msgRsHdr;
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResponseBase(Builder builder) {
|
||||||
|
this.msgRsHdr = builder.msgRsHdr;
|
||||||
|
this.status = builder.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<MsgRsHdr> getMsgRsHdr() {
|
||||||
|
return msgRsHdr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMsgRsHdr(ArrayList<MsgRsHdr> msgRsHdr) {
|
||||||
|
this.msgRsHdr = msgRsHdr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Status> getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(ArrayList<Status> status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Builder {
|
||||||
|
|
||||||
|
private ArrayList<MsgRsHdr> msgRsHdr;
|
||||||
|
private ArrayList<Status> status;
|
||||||
|
|
||||||
|
public Builder msgRsHdr(ArrayList<MsgRsHdr> msgRsHdr) {
|
||||||
|
this.msgRsHdr = msgRsHdr;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder status(ArrayList<Status> status) {
|
||||||
|
this.status = status;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ResponseBase build() {
|
||||||
|
return new ResponseBase(msgRsHdr, status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class MsgRsHdr {
|
||||||
|
|
||||||
|
@JsonProperty("FinalStatusRequest")
|
||||||
|
public String finalStatusRequest;
|
||||||
|
@JsonProperty("CountDataOut")
|
||||||
|
public String countDataOut;
|
||||||
|
@JsonProperty("TransactionCode")
|
||||||
|
public String transactionCode;
|
||||||
|
@JsonProperty("SupervisorCode")
|
||||||
|
public String supervisorCode;
|
||||||
|
@JsonProperty("OperationType")
|
||||||
|
public String operationType;
|
||||||
|
@JsonProperty("TransactionConsecutive")
|
||||||
|
public String transactionConsecutive;
|
||||||
|
@JsonProperty("DetailReg")
|
||||||
|
public String detailReg;
|
||||||
|
@JsonProperty("RegisterNumber")
|
||||||
|
public ArrayList<String> registerNumber;
|
||||||
|
@JsonProperty("TransactionType")
|
||||||
|
public String transactionType;
|
||||||
|
@JsonProperty("RequestId")
|
||||||
|
public String requestId;
|
||||||
|
@JsonProperty("AppName")
|
||||||
|
public String appName;
|
||||||
|
|
||||||
|
public MsgRsHdr() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFinalStatusRequest() {
|
||||||
|
return finalStatusRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFinalStatusRequest(String finalStatusRequest) {
|
||||||
|
this.finalStatusRequest = finalStatusRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCountDataOut() {
|
||||||
|
return countDataOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCountDataOut(String countDataOut) {
|
||||||
|
this.countDataOut = countDataOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransactionCode() {
|
||||||
|
return transactionCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactionCode(String transactionCode) {
|
||||||
|
this.transactionCode = transactionCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSupervisorCode() {
|
||||||
|
return supervisorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSupervisorCode(String supervisorCode) {
|
||||||
|
this.supervisorCode = supervisorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOperationType() {
|
||||||
|
return operationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperationType(String operationType) {
|
||||||
|
this.operationType = operationType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransactionConsecutive() {
|
||||||
|
return transactionConsecutive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactionConsecutive(String transactionConsecutive) {
|
||||||
|
this.transactionConsecutive = transactionConsecutive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDetailReg() {
|
||||||
|
return detailReg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDetailReg(String detailReg) {
|
||||||
|
this.detailReg = detailReg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<String> getRegisterNumber() {
|
||||||
|
return registerNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRegisterNumber(ArrayList<String> registerNumber) {
|
||||||
|
this.registerNumber = registerNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransactionType() {
|
||||||
|
return transactionType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransactionType(String transactionType) {
|
||||||
|
this.transactionType = transactionType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRequestId() {
|
||||||
|
return requestId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRequestId(String requestId) {
|
||||||
|
this.requestId = requestId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAppName() {
|
||||||
|
return appName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppName(String appName) {
|
||||||
|
this.appName = appName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
return "MsgRsHdr [finalStatusRequest=" + finalStatusRequest + ", countDataOut=" + countDataOut
|
||||||
|
+ ", transactionCode=" + transactionCode + ", supervisorCode=" + supervisorCode + ", operationType="
|
||||||
|
+ operationType + ", transactionConsecutive=" + transactionConsecutive + ", detailReg=" + detailReg
|
||||||
|
+ ", registerNumber=" + registerNumber + ", transactionType=" + transactionType + ", requestId="
|
||||||
|
+ requestId + ", appName=" + appName + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class AdditionalStatus {
|
||||||
|
|
||||||
|
@JsonProperty("StatusCode")
|
||||||
|
public String statusCode;
|
||||||
|
@JsonProperty("StatusDesc")
|
||||||
|
public String statusDesc;
|
||||||
|
@JsonProperty("Severity")
|
||||||
|
public String severity;
|
||||||
|
|
||||||
|
public String getStatusCode() {
|
||||||
|
return statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusCode(String statusCode) {
|
||||||
|
this.statusCode = statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatusDesc() {
|
||||||
|
return statusDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusDesc(String statusDesc) {
|
||||||
|
this.statusDesc = statusDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSeverity() {
|
||||||
|
return severity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSeverity(String severity) {
|
||||||
|
this.severity = severity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "AdditionalStatus [statusCode=" + statusCode + ", statusDesc=" + statusDesc + ", severity="
|
||||||
|
+ severity + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Status {
|
||||||
|
|
||||||
|
@JsonProperty("StatusCode")
|
||||||
|
public String statusCode;
|
||||||
|
@JsonProperty("StatusDesc")
|
||||||
|
public String statusDesc;
|
||||||
|
@JsonProperty("ApplicationName")
|
||||||
|
public String applicationName;
|
||||||
|
@JsonProperty("LineNumber")
|
||||||
|
public int lineNumber;
|
||||||
|
@JsonProperty("AdditionalStatus")
|
||||||
|
public ArrayList<AdditionalStatus> additionalStatus;
|
||||||
|
|
||||||
|
public String getStatusCode() {
|
||||||
|
|
||||||
|
return statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusCode(String statusCode) {
|
||||||
|
this.statusCode = statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStatusDesc() {
|
||||||
|
return statusDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatusDesc(String statusDesc) {
|
||||||
|
this.statusDesc = statusDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getApplicationName() {
|
||||||
|
return applicationName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApplicationName(String applicationName) {
|
||||||
|
this.applicationName = applicationName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLineNumber() {
|
||||||
|
return lineNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLineNumber(int lineNumber) {
|
||||||
|
this.lineNumber = lineNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<AdditionalStatus> getAdditionalStatus() {
|
||||||
|
return additionalStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAdditionalStatus(ArrayList<AdditionalStatus> additionalStatus) {
|
||||||
|
this.additionalStatus = additionalStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Status [statusCode=" + statusCode + ", statusDesc=" + statusDesc + ", applicationName="
|
||||||
|
+ applicationName + ", lineNumber=" + lineNumber + ", additionalStatus=" + additionalStatus + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ResponseBase [msgRsHdr=" + msgRsHdr + ", status=" + status + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,13 +2,21 @@ package com.banesco.infraestructure.config;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clase de configuración para APIs. Almacena la información necesaria para
|
||||||
|
* conectarse a un servicio API externo, incluyendo URL, path, 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 {
|
public class ApiConfig {
|
||||||
|
|
||||||
private String url;
|
private String url;
|
||||||
private String path;
|
private String path;
|
||||||
private Timeout timeout;
|
private Timeout timeout;
|
||||||
private Map<String, String> config;
|
private Map<String, String> config;
|
||||||
|
|
||||||
public ApiConfig() {}
|
public ApiConfig() {
|
||||||
|
}
|
||||||
|
|
||||||
public ApiConfig(String url, String path, Timeout timeout, Map<String, String> config) {
|
public ApiConfig(String url, String path, Timeout timeout, Map<String, String> config) {
|
||||||
this.url = url;
|
this.url = url;
|
||||||
@ -49,6 +57,12 @@ public class ApiConfig {
|
|||||||
this.config = config;
|
this.config = config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 static class Timeout {
|
public static class Timeout {
|
||||||
|
|
||||||
private int connect = 15000;
|
private int connect = 15000;
|
||||||
|
|||||||
@ -0,0 +1,91 @@
|
|||||||
|
package com.banesco.infraestructure.config;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import com.banesco.domain.model.RequestBase;
|
||||||
|
import com.banesco.infraestructure.helpers.RequestHelper;
|
||||||
|
import com.banesco.infraestructure.repository.SoapHeadersRepository;
|
||||||
|
|
||||||
|
public class RestClient {
|
||||||
|
private static final Logger logger = Logger.getLogger(RestClient.class.getName());
|
||||||
|
|
||||||
|
private final String headerUrl;
|
||||||
|
private final String idGeneratorUrl;
|
||||||
|
private final String instanceIdPath;
|
||||||
|
private final String requestIdPath;
|
||||||
|
private String instanceId;
|
||||||
|
private final RequestHelper requestHelper;
|
||||||
|
|
||||||
|
// Constructor que recibe las URLs y la instancia de RequestHelper
|
||||||
|
public RestClient(String headerUrl, String idGeneratorUrl, String instanceIdPath, String requestIdPath, RequestHelper requestHelper) {
|
||||||
|
this.headerUrl = headerUrl;
|
||||||
|
this.idGeneratorUrl = idGeneratorUrl;
|
||||||
|
this.instanceIdPath = instanceIdPath;
|
||||||
|
this.requestIdPath = requestIdPath;
|
||||||
|
this.requestHelper = requestHelper;
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Inicializa el Instance ID si no se está ejecutando localmente.
|
||||||
|
private void init() {
|
||||||
|
if (!idGeneratorUrl.contains("localhost")) {
|
||||||
|
System.out.println("Request to getInstanceId");
|
||||||
|
this.instanceId = getInstanceId(); // Obtiene Instance ID
|
||||||
|
System.out.println("Response to getInstanceId: " + this.instanceId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public RequestBase.MsgRqHdr getHeader(String headerName) {
|
||||||
|
// Siempre usa SoapHeadersRepository independientemente de si es local o no
|
||||||
|
return SoapHeadersRepository.getHeader(headerName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRequestId() {
|
||||||
|
if (idGeneratorUrl.contains("localhost")) {
|
||||||
|
return requestHelper.getRequestId(instanceId); // Lógica local
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
String result = getHttpResponse(idGeneratorUrl + requestIdPath + instanceId); // Reutiliza función HTTP.
|
||||||
|
System.out.println("Response to getRequestId: " + result);
|
||||||
|
return result;
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.println("Error getting request ID: " + e.getMessage());
|
||||||
|
return null; // Manejo de error.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInstanceId() {
|
||||||
|
if (idGeneratorUrl.contains("localhost")) {
|
||||||
|
return requestHelper.getInstanceId(); // Usa el método de RequestHelper
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
return getHttpResponse(idGeneratorUrl + instanceIdPath); // Reutiliza función HTTP.
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.err.println("Error getting instance ID: " + e.getMessage());
|
||||||
|
return null; // Manejo de error.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Función reutilizable para realizar llamadas HTTP GET.
|
||||||
|
private String getHttpResponse(String urlStr) throws IOException {
|
||||||
|
URL url = new URL(urlStr);
|
||||||
|
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||||
|
connection.setRequestMethod("GET");
|
||||||
|
|
||||||
|
try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
|
||||||
|
StringBuilder response = new StringBuilder();
|
||||||
|
String line;
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
response.append(line);
|
||||||
|
}
|
||||||
|
return response.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
package com.banesco.infraestructure.helpers;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -3,10 +3,17 @@ package com.banesco.infraestructure.helpers;
|
|||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.DateTimeException;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
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 {
|
public class DateHelper {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(DateHelper.class.getName());
|
private static final Logger logger = Logger.getLogger(DateHelper.class.getName());
|
||||||
@ -14,13 +21,15 @@ public class DateHelper {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Verifica si la hora actual está dentro del rango de horas proporcionado.
|
* Verifica si la hora actual está dentro del rango de horas proporcionado.
|
||||||
* Si las horas de inicio y fin son iguales, devuelve false.
|
* Si las horas de inicio y fin son iguales, devuelve false. Maneja
|
||||||
|
* correctamente los rangos que cruzan la medianoche.
|
||||||
*
|
*
|
||||||
* @param inputHourOne Hora de inicio (formato HH:mm).
|
* @param inputHourOne Hora de inicio en formato HH:mm
|
||||||
* @param inputHourTwo Hora de fin (formato HH:mm).
|
* @param inputHourTwo Hora de fin en formato HH:mm
|
||||||
* @return true si la hora actual está dentro del rango, false de lo
|
* @return true si la hora actual está dentro del rango, false en caso
|
||||||
* contrario.
|
* contrario
|
||||||
* @throws ParseException Si ocurre un error al analizar las horas.
|
* @throws ParseException Si ocurre un error al analizar las horas
|
||||||
|
* proporcionadas
|
||||||
*/
|
*/
|
||||||
public static boolean isTimeInRange(String inputHourOne, String inputHourTwo) throws ParseException {
|
public static boolean isTimeInRange(String inputHourOne, String inputHourTwo) throws ParseException {
|
||||||
if (inputHourOne.equals(inputHourTwo)) {
|
if (inputHourOne.equals(inputHourTwo)) {
|
||||||
@ -52,4 +61,33 @@ public class DateHelper {
|
|||||||
|
|
||||||
return isInRange;
|
return isInRange;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,12 @@
|
|||||||
package com.banesco.infraestructure.helpers;
|
package com.banesco.infraestructure.helpers;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 {
|
public class LoggerHelper {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -7,9 +7,20 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
|
|
||||||
import com.banesco.domain.model.Device;
|
import com.banesco.domain.model.Device;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 {
|
public class RequestHelper {
|
||||||
|
|
||||||
private final boolean readDeviceFromRequest;
|
private final boolean readDeviceFromRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Nombres de cabeceras HTTP que pueden contener la dirección IP del
|
||||||
|
* cliente. Se revisan en orden para encontrar la IP real considerando
|
||||||
|
* proxies y balanceadores.
|
||||||
|
*/
|
||||||
private static final String[] IP_HEADER_NAMES = {
|
private static final String[] IP_HEADER_NAMES = {
|
||||||
"X-Forwarded-For",
|
"X-Forwarded-For",
|
||||||
"Proxy-Client-IP",
|
"Proxy-Client-IP",
|
||||||
@ -25,8 +36,9 @@ public class RequestHelper {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor de RequestHelper. Lee la propiedad de configuracion
|
* Constructor de RequestHelper. Inicializa la configuración para la lectura
|
||||||
* 'api.server-request.read-device' de las propiedades del sistema
|
* de información del dispositivo. Lee la propiedad de configuración
|
||||||
|
* 'api.server-request.read-device' del sistema.
|
||||||
*/
|
*/
|
||||||
public RequestHelper() {
|
public RequestHelper() {
|
||||||
// Lee la propiedad del sistema. Si no existe, asume false por defecto.
|
// Lee la propiedad del sistema. Si no existe, asume false por defecto.
|
||||||
@ -35,39 +47,92 @@ public class RequestHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Genera un ID de instancia único.
|
* Genera un ID de instancia único con un prefijo específico. Útil para
|
||||||
|
* identificar instancias del servidor o aplicación.
|
||||||
*
|
*
|
||||||
* @return Un ID de instancia con el prefijo "INST".
|
* @return Un ID de instancia con el prefijo "INST" seguido de 10 caracteres
|
||||||
|
* alfanuméricos aleatorios
|
||||||
*/
|
*/
|
||||||
public String getInstanceId() {
|
public String getInstanceId() {
|
||||||
return "INST" + RandomStringUtils.randomAlphanumeric(10);
|
return "INST" + RandomStringUtils.randomAlphanumeric(10);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Genera un ID de solicitud único basado en el ID de instancia.
|
* Genera un ID de solicitud único basado en el ID de instancia. Combina el
|
||||||
|
* ID de instancia con caracteres aleatorios para crear un identificador
|
||||||
|
* único.
|
||||||
*
|
*
|
||||||
* @param instanceId El ID de la instancia.
|
* @param instanceId El ID de la instancia a incluir en el ID de solicitud
|
||||||
* @return Un ID de solicitud con el prefijo "REQ".
|
* @return Un ID de solicitud en formato [instanceId]REQ[20 caracteres
|
||||||
|
* aleatorios]
|
||||||
*/
|
*/
|
||||||
public String getRequestId(String instanceId) {
|
public String getRequestId(String instanceId) {
|
||||||
return instanceId + "REQ" + RandomStringUtils.randomAlphanumeric(20);
|
return instanceId + "REQ" + RandomStringUtils.randomAlphanumeric(20);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Genera un ID de solicitud único.
|
* Genera un ID de solicitud único sin necesidad de proporcionar un ID de
|
||||||
|
* instancia. Crea un nuevo ID de instancia y lo utiliza para generar el ID
|
||||||
|
* de solicitud.
|
||||||
*
|
*
|
||||||
* @return Un ID de solicitud con el prefijo "REQ".
|
* @return Un ID de solicitud completo con instancia generada
|
||||||
|
* automáticamente
|
||||||
*/
|
*/
|
||||||
public String getRequestId() {
|
public String getRequestId() {
|
||||||
return getInstanceId() + "REQ" + RandomStringUtils.randomAlphanumeric(20);
|
return getInstanceId() + "REQ" + RandomStringUtils.randomAlphanumeric(20);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtiene la dirección IP remota del cliente a partir de la solicitud HTTP.
|
* Genera un identificador de sesión (SID) aleatorio.
|
||||||
*
|
*
|
||||||
* @param request La solicitud HTTP.
|
* @return Un string de 20 caracteres alfanuméricos aleatorios
|
||||||
|
*/
|
||||||
|
public String getSid() {
|
||||||
|
return RandomStringUtils.randomAlphanumeric(20);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Genera un ID de transacción numérico de 11 dígitos.
|
||||||
|
*
|
||||||
|
* @return Un string de 11 caracteres numéricos aleatorios
|
||||||
|
*/
|
||||||
|
public String getTransactionId() {
|
||||||
|
return RandomStringUtils.randomNumeric(11);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Genera un ID de transacción numérico con el número de dígitos
|
||||||
|
* especificado.
|
||||||
|
*
|
||||||
|
* @param numDigitos El número de dígitos que debe tener el ID generado
|
||||||
|
* @return Un string de caracteres numéricos aleatorios con la longitud
|
||||||
|
* especificada
|
||||||
|
*/
|
||||||
|
public String getTransactionId(Integer numDigitos) {
|
||||||
|
return RandomStringUtils.randomNumeric(numDigitos);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Genera una referencia Banesco alfanumérica con el número de dígitos
|
||||||
|
* especificado.
|
||||||
|
*
|
||||||
|
* @param numDigitos El número de dígitos que debe tener la referencia
|
||||||
|
* generada
|
||||||
|
* @return Un string de caracteres alfanuméricos aleatorios con la longitud
|
||||||
|
* especificada
|
||||||
|
*/
|
||||||
|
public String getRefBanesco(Integer numDigitos) {
|
||||||
|
return RandomStringUtils.randomAlphanumeric(numDigitos);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtiene la dirección IP remota del cliente a partir de la solicitud HTTP.
|
||||||
|
* Revisa varias cabeceras HTTP que podrían contener la IP real del cliente
|
||||||
|
* considerando proxies y balanceadores de carga.
|
||||||
|
*
|
||||||
|
* @param request La solicitud HTTP
|
||||||
* @return La dirección IP remota del cliente, o "0.0.0.0" si la solicitud
|
* @return La dirección IP remota del cliente, o "0.0.0.0" si la solicitud
|
||||||
* es nula.
|
* es nula
|
||||||
*/
|
*/
|
||||||
public String getRemoteIP(HttpServletRequest request) {
|
public String getRemoteIP(HttpServletRequest request) {
|
||||||
if (request == null) {
|
if (request == null) {
|
||||||
@ -86,11 +151,14 @@ public class RequestHelper {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Llena la información del dispositivo remoto del cliente en el objeto
|
* Llena la información del dispositivo remoto del cliente en el objeto
|
||||||
* Device.
|
* Device. Si se configura readDeviceFromRequest como true, siempre se
|
||||||
|
* obtendrá la información del dispositivo desde la solicitud HTTP,
|
||||||
|
* independientemente de si ya existe.
|
||||||
*
|
*
|
||||||
* @param servletRequest La solicitud HTTP.
|
* @param servletRequest La solicitud HTTP
|
||||||
* @param device El objeto Device a llenar.
|
* @param device El objeto Device existente a actualizar o null para crear
|
||||||
* @return El objeto Device llenado con la información del cliente.
|
* uno nuevo
|
||||||
|
* @return El objeto Device con la información del cliente actualizada
|
||||||
*/
|
*/
|
||||||
public Device fillRemoteDevice(HttpServletRequest servletRequest, Device device) {
|
public Device fillRemoteDevice(HttpServletRequest servletRequest, Device device) {
|
||||||
Device.Builder deviceBuilder = (device == null) ? Device.builder() : Device.builder()
|
Device.Builder deviceBuilder = (device == null) ? Device.builder() : Device.builder()
|
||||||
|
|||||||
@ -2,6 +2,12 @@ package com.banesco.infraestructure.helpers;
|
|||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 {
|
public class StringHelper {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -0,0 +1,53 @@
|
|||||||
|
package com.banesco.infraestructure.repository;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import com.banesco.domain.model.RequestBase;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
public class SoapHeadersRepository {
|
||||||
|
|
||||||
|
private static final Logger logger = Logger.getLogger(MessageRepository.class.getName());
|
||||||
|
|
||||||
|
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
|
||||||
|
public static final DateTimeFormatter DATE_TIME_YYYY_MM_dd = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
public static final DateTimeFormatter DATE_TIME_HH_mm_ss = DateTimeFormatter.ofPattern("HH:mm:ss");
|
||||||
|
|
||||||
|
public static RequestBase.MsgRqHdr getHeader(String headerName) {
|
||||||
|
RequestBase.MsgRqHdr msgRqHdr = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
InputStream in = Thread.currentThread().getContextClassLoader()
|
||||||
|
.getResourceAsStream("headers/" + headerName + ".json");
|
||||||
|
msgRqHdr = OBJECT_MAPPER.readValue(Objects.requireNonNull(in), RequestBase.MsgRqHdr.class);
|
||||||
|
} catch (IOException e) {
|
||||||
|
logger.log(Level.WARNING, String.format("ERROR: Path /headers/%s", headerName));
|
||||||
|
// o lanzar una excepcion.
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (msgRqHdr != null) {
|
||||||
|
Timestamp dateHour = Timestamp.valueOf(LocalDateTime.now(ZoneId.of("America/Caracas")));
|
||||||
|
|
||||||
|
String date = new SimpleDateFormat("yyyy-MM-dd").format(dateHour);
|
||||||
|
String hour = new SimpleDateFormat("HH:mm:ss").format(dateHour);
|
||||||
|
|
||||||
|
msgRqHdr.setMessageTime(hour);
|
||||||
|
msgRqHdr.getNetworkTrnInfo().setTransactionDate(date);
|
||||||
|
msgRqHdr.getNetworkTrnInfo().setTransactionTime(hour);
|
||||||
|
|
||||||
|
return msgRqHdr;
|
||||||
|
} else {
|
||||||
|
return msgRqHdr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -5,7 +5,15 @@ import java.time.LocalDate;
|
|||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 {
|
public class DateValidator {
|
||||||
|
|
||||||
private final DateTimeFormatter dateFormatter;
|
private final DateTimeFormatter dateFormatter;
|
||||||
private final Pattern datePattern;
|
private final Pattern datePattern;
|
||||||
private final int minYear;
|
private final int minYear;
|
||||||
@ -19,6 +27,7 @@ public class DateValidator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
|
|
||||||
private DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
|
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 String dateFormatRegex = "(\\d{4})/(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])";
|
||||||
private int minYear = 1900;
|
private int minYear = 1900;
|
||||||
|
|||||||
@ -2,6 +2,12 @@ package com.banesco.infraestructure.utils;
|
|||||||
|
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clase para validar números telefónicos según patrones específicos. Utiliza
|
||||||
|
* expresiones regulares para verificar que los números telefónicos cumplan con
|
||||||
|
* el formato esperado, permitiendo diferentes configuraciones según los
|
||||||
|
* requisitos regionales o de formato de la aplicación.
|
||||||
|
*/
|
||||||
public class PhoneNumberValidator {
|
public class PhoneNumberValidator {
|
||||||
|
|
||||||
private final Pattern pattern;
|
private final Pattern pattern;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user