Update general
This commit is contained in:
parent
1684d8036a
commit
ebd3f1caf1
@ -9,7 +9,7 @@ import java.util.Map;
|
||||
@Getter
|
||||
@ToString
|
||||
@RegisterForReflection
|
||||
public class BusConfig {
|
||||
public class BusinessConfig {
|
||||
private String url;
|
||||
private TimeoutConfig timeout;
|
||||
private Map<String, Object> config;
|
||||
@ -1,14 +0,0 @@
|
||||
package com.banesco.common.domain.model;
|
||||
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@RegisterForReflection
|
||||
public class RegisterSecurityConfig {
|
||||
private String url;
|
||||
private TimeoutConfig timeout;
|
||||
private SecurityConfig config;
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
package com.banesco.common.domain.model;
|
||||
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@RegisterForReflection
|
||||
public class SecurityConfig {
|
||||
private String sp;
|
||||
private String eventCod;
|
||||
private String bankCod;
|
||||
private String curCod;
|
||||
}
|
||||
@ -1,7 +1,6 @@
|
||||
package com.banesco.common.infrastructure.config;
|
||||
|
||||
import com.banesco.common.domain.model.BusConfig;
|
||||
import com.banesco.common.domain.model.RegisterSecurityConfig;
|
||||
import com.banesco.common.domain.model.BusinessConfig;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -27,7 +26,7 @@ public class RestClientConfig {
|
||||
this.objectMapper = objectMapper;
|
||||
}
|
||||
|
||||
public BusConfig getBusLegalCustomerConfig() {
|
||||
public BusinessConfig getBusLegalCustomerConfig() {
|
||||
try {
|
||||
String json = config.getValue("api.rest-client.bus-legal-customer-product-directory", String.class);
|
||||
log.info("Configurando bus-legal-customer-product-directory: {}", json);
|
||||
@ -37,29 +36,11 @@ public class RestClientConfig {
|
||||
}
|
||||
|
||||
Map<String, Object> configMap = objectMapper.readValue(json, new TypeReference<>() {});
|
||||
return objectMapper.convertValue(configMap, BusConfig.class);
|
||||
return objectMapper.convertValue(configMap, BusinessConfig.class);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new IllegalArgumentException("Formato JSON inválido en la configuración: api.rest-client.bus-legal-customer-product-directory", e);
|
||||
} catch (Exception e) {
|
||||
throw new IllegalStateException("Error cargando configuración del servicio", e);
|
||||
}
|
||||
}
|
||||
|
||||
public RegisterSecurityConfig getRegisterSecurityConfig() {
|
||||
try {
|
||||
String json = config.getValue("api.rest-client.register-security", String.class);
|
||||
log.info("Configurando register-security: {}", json);
|
||||
|
||||
if (json == null || json.trim().isEmpty()) {
|
||||
throw new IllegalStateException("Configuración requerida no encontrada para: api.rest-client.register-security");
|
||||
}
|
||||
|
||||
Map<String, Object> configMap = objectMapper.readValue(json, new TypeReference<>() {});
|
||||
return objectMapper.convertValue(configMap, RegisterSecurityConfig.class);
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new IllegalArgumentException("Formato JSON inválido en la configuración: api.rest-client.register-security", e);
|
||||
} catch (Exception e) {
|
||||
throw new IllegalStateException("Error cargando configuración del servicio register-security", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,7 +24,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@Slf4j
|
||||
@ -81,13 +80,7 @@ public class LegalCustomerProductDirectoryService implements LegalCustomerProduc
|
||||
) {
|
||||
log.info("Calling business service for client: {}", request.getCustomerIbsNumber());
|
||||
|
||||
return businessUseCase.execute(
|
||||
true,
|
||||
request.getCustomerIbsNumber(),
|
||||
Map.of(),
|
||||
request.toBusinessHeaders(),
|
||||
LegalCustomerProductDirectoryResponse.class
|
||||
);
|
||||
return businessUseCase.execute(request, LegalCustomerProductDirectoryResponse.class);
|
||||
}
|
||||
|
||||
private ApiResponse<LegalCustomerProductDirectoryResponse> createSuccessMock() {
|
||||
|
||||
@ -1,15 +1,11 @@
|
||||
package com.banesco.module.legal_customer_product_directory.application.usecase;
|
||||
|
||||
import com.banesco.common.domain.model.ApiResponse;
|
||||
|
||||
import java.util.Map;
|
||||
import com.banesco.module.legal_customer_product_directory.domain.dto.request.LegalCustomerProductDirectoryRequest;
|
||||
|
||||
public interface BusinessUseCase {
|
||||
<T> ApiResponse<T> execute(
|
||||
boolean isMock,
|
||||
String customerIbsNumber,
|
||||
Map<String, String> queryParams,
|
||||
Map<String, String> headers,
|
||||
LegalCustomerProductDirectoryRequest params,
|
||||
Class<T> responseType
|
||||
);
|
||||
}
|
||||
|
||||
@ -4,6 +4,9 @@ import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import static java.util.Map.entry;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@ -30,25 +33,10 @@ public class LegalCustomerProductDirectoryRequest {
|
||||
private String limitType; // VALIMIT - Pagador/Receptor (PAG/REC) (filtro)
|
||||
private String casheaIndicator; // VCASHEA - SI/NO (filtro)
|
||||
|
||||
public Map<String, String> toBusinessHeaders() {
|
||||
return Map.of(
|
||||
"appId", getAppId(),
|
||||
"customerReferenceFintechId", getCustomerReferenceFintechId()
|
||||
);
|
||||
}
|
||||
|
||||
public Map<String, String> toBusinessRequest() {
|
||||
return Map.of(
|
||||
"bankNumber", getBankNumber(),
|
||||
"currencyCode", getCurrencyCode(),
|
||||
"accountStatus", getAccountStatus(),
|
||||
"productCvCode", getProductCvCode(),
|
||||
"productCode", getProductCode(),
|
||||
"channelCode", getChannelCode(),
|
||||
"serviceType", getServiceType(),
|
||||
"affiliationStatus", getAffiliationStatus(),
|
||||
"limitType", getLimitType(),
|
||||
"cashIndicator", getCasheaIndicator()
|
||||
public Map<String, String> toQueryString() {
|
||||
return Map.ofEntries(
|
||||
entry("appId", Objects.toString(getAppId(), "")),
|
||||
entry("customerReferenceFintechId", Objects.toString(getCustomerReferenceFintechId(), ""))
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -2,12 +2,12 @@ package com.banesco.module.legal_customer_product_directory.infrastructure.clien
|
||||
|
||||
import com.banesco.common.application.usecase.HttpClientUseCase;
|
||||
import com.banesco.common.domain.exception.ServiceUnavailableException;
|
||||
import com.banesco.common.domain.exception.SuccessException;
|
||||
import com.banesco.common.domain.model.ApiResponse;
|
||||
import com.banesco.common.domain.model.BusConfig;
|
||||
import com.banesco.common.domain.model.BusinessConfig;
|
||||
import com.banesco.common.domain.model.HttpRequest;
|
||||
import com.banesco.common.infrastructure.config.RestClientConfig;
|
||||
import com.banesco.module.legal_customer_product_directory.application.usecase.BusinessUseCase;
|
||||
import com.banesco.module.legal_customer_product_directory.domain.dto.request.LegalCustomerProductDirectoryRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import jakarta.enterprise.context.ApplicationScoped;
|
||||
import jakarta.inject.Inject;
|
||||
@ -18,7 +18,7 @@ import java.util.Map;
|
||||
@ApplicationScoped
|
||||
public class BusLegalCustomerDirectoryClient implements BusinessUseCase {
|
||||
private final HttpClientUseCase httpClientUseCase;
|
||||
private final BusConfig busConfig;
|
||||
private final BusinessConfig businessConfig;
|
||||
|
||||
@Inject
|
||||
public BusLegalCustomerDirectoryClient(
|
||||
@ -26,34 +26,28 @@ public class BusLegalCustomerDirectoryClient implements BusinessUseCase {
|
||||
RestClientConfig restClientConfig
|
||||
) {
|
||||
this.httpClientUseCase = httpClientUseCase;
|
||||
this.busConfig = restClientConfig.getBusLegalCustomerConfig();
|
||||
log.info("Configuración cargada para bus-legal-customer-directory: {}", busConfig);
|
||||
this.businessConfig = restClientConfig.getBusLegalCustomerConfig();
|
||||
log.info("Configuración cargada para bus-legal-customer-directory: {}", businessConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> ApiResponse<T> execute(
|
||||
boolean isMock,
|
||||
String customerIbsNumber,
|
||||
Map<String, String> queryParams,
|
||||
Map<String, String> headers,
|
||||
LegalCustomerProductDirectoryRequest params,
|
||||
Class<T> responseType
|
||||
) {
|
||||
log.info("Consultando información del cliente: {}", customerIbsNumber);
|
||||
String customerIbsNumber = params.getCustomerIbsNumber();
|
||||
|
||||
if(isMock) {
|
||||
throw new SuccessException("200", null);
|
||||
}
|
||||
log.info("Consultando información del cliente: {}", customerIbsNumber);
|
||||
|
||||
try {
|
||||
HttpRequest request = HttpRequest.builder()
|
||||
.url(busConfig.getUrl())
|
||||
.url(businessConfig.getUrl())
|
||||
.method(HttpRequest.HttpMethod.GET)
|
||||
.pathParams(Map.of("customerIbsNumber", customerIbsNumber))
|
||||
.queryParams(queryParams)
|
||||
.headers(headers)
|
||||
.queryParams(params.toQueryString())
|
||||
.responseType(responseType)
|
||||
.connectTimeout(busConfig.getTimeout().getConnect())
|
||||
.readTimeout(busConfig.getTimeout().getResponse())
|
||||
.connectTimeout(businessConfig.getTimeout().getConnect())
|
||||
.readTimeout(businessConfig.getTimeout().getResponse())
|
||||
.build();
|
||||
|
||||
log.debug("Request configurado: {}", request);
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
package com.banesco.module.security.application.usecase;
|
||||
|
||||
import com.banesco.common.domain.model.ApiResponse;
|
||||
|
||||
public interface SecurityUseCase {
|
||||
<T> ApiResponse<T> execute(Class<T> responseType);
|
||||
}
|
||||
@ -1,38 +0,0 @@
|
||||
package com.banesco.module.security.domain.dto.request;
|
||||
|
||||
import io.quarkus.runtime.annotations.RegisterForReflection;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Getter
|
||||
@ToString
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@RegisterForReflection
|
||||
public class SecurityRequest {
|
||||
private String codBan;
|
||||
private String codMon;
|
||||
private String codEve;
|
||||
private String codEve2;
|
||||
private String login;
|
||||
private Date fecHor;
|
||||
private String nacCli;
|
||||
private Integer cedRifCli;
|
||||
private String productoCli;
|
||||
|
||||
private String objeto;
|
||||
private Integer tipoRespuesta;
|
||||
private String msgRespuesta;
|
||||
private Integer tiempoRespuesta;
|
||||
private String codFintech;
|
||||
|
||||
private String cedRifFintech;
|
||||
|
||||
private String tipoDispositivo;
|
||||
private String desDispositivo;
|
||||
private String ipCli;
|
||||
|
||||
private String sp;
|
||||
}
|
||||
@ -1,83 +0,0 @@
|
||||
package com.banesco.module.security.infrastructure.client;
|
||||
|
||||
import com.banesco.common.application.usecase.HttpClientUseCase;
|
||||
import com.banesco.common.domain.exception.ServiceUnavailableException;
|
||||
import com.banesco.common.domain.model.ApiResponse;
|
||||
import com.banesco.common.domain.model.HttpRequest;
|
||||
import com.banesco.common.domain.model.RegisterSecurityConfig;
|
||||
import com.banesco.common.infrastructure.config.RestClientConfig;
|
||||
import com.banesco.module.security.application.usecase.SecurityUseCase;
|
||||
import com.banesco.module.security.domain.dto.request.SecurityRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import jakarta.enterprise.context.ApplicationScoped;
|
||||
import jakarta.inject.Inject;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@ApplicationScoped
|
||||
public class RegisterSecurityClient implements SecurityUseCase {
|
||||
private final HttpClientUseCase httpClientUseCase;
|
||||
private final RegisterSecurityConfig securityConfig;
|
||||
|
||||
@Inject
|
||||
public RegisterSecurityClient(
|
||||
HttpClientUseCase httpClientUseCase,
|
||||
RestClientConfig restClientConfig
|
||||
) {
|
||||
this.httpClientUseCase = httpClientUseCase;
|
||||
this.securityConfig = restClientConfig.getRegisterSecurityConfig();
|
||||
log.info("Configuración cargada para register-security: {}", securityConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> ApiResponse<T> execute(Class<T> responseType) {
|
||||
log.info("Registrando traza de seguridad");
|
||||
|
||||
try {
|
||||
SecurityRequest requestBody = createSecurityRequestBody();
|
||||
Map<String, String> headers = createHeaders();
|
||||
HttpRequest request = buildHttpRequest(requestBody, headers, responseType);
|
||||
|
||||
log.debug("Request body: {}", requestBody);
|
||||
log.debug("Request configurado: {}", request);
|
||||
|
||||
return httpClientUseCase.execute(request);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("Error registrando traza de seguridad: {}", e.getMessage());
|
||||
throw new ServiceUnavailableException("503", e.getMessage(), null);
|
||||
}
|
||||
}
|
||||
|
||||
private SecurityRequest createSecurityRequestBody() {
|
||||
return SecurityRequest.builder()
|
||||
.codBan(securityConfig.getConfig().getBankCod())
|
||||
.codMon(securityConfig.getConfig().getCurCod())
|
||||
.codEve(securityConfig.getConfig().getEventCod())
|
||||
.codEve2(securityConfig.getConfig().getEventCod())
|
||||
.sp(securityConfig.getConfig().getSp())
|
||||
.build();
|
||||
}
|
||||
|
||||
private Map<String, String> createHeaders() {
|
||||
Map<String, String> headers = new HashMap<>();
|
||||
headers.put("Content-Type", "application/json");
|
||||
return headers;
|
||||
}
|
||||
|
||||
private HttpRequest buildHttpRequest(SecurityRequest body, Map<String, String> headers, Class<?> responseType) {
|
||||
return HttpRequest.builder()
|
||||
.url(securityConfig.getUrl())
|
||||
.method(HttpRequest.HttpMethod.POST)
|
||||
.body(body)
|
||||
.headers(headers)
|
||||
.responseType(responseType)
|
||||
.connectTimeout(securityConfig.getTimeout().getConnect())
|
||||
.readTimeout(securityConfig.getTimeout().getResponse())
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -22,6 +22,4 @@ api:
|
||||
key: 'recLogalCustomerProductDirectory'
|
||||
content: '[{"backendCode":"200","httpCode":200,"statusCode":"200","description":"Operacion exitosa"},{"backendCode":"R404","httpCode":404,"statusCode":"404","description":"Datos de validación no encontrado."},{"backendCode":"503","httpCode":503,"statusCode":"503","description":"Uso interno"},{"backendCode":"422","httpCode":422,"statusCode":"422","description":"Uso interno"},{"backendCode":"500","httpCode":500,"statusCode":"500","description":"Uso interno"},{"backendCode":"100","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"OSB-382505","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"OSB-380002","httpCode":503,"statusCode":"503","description":"VDR13 - OSB Disponible"},{"backendCode":"ERROR","httpCode":400,"statusCode":"400","description":"Uso interno"},{"backendCode":"400","httpCode":400,"statusCode":"400","description":"Uso interno"},{"backendCode":"401","httpCode":401,"statusCode":"401","description":"Uso interno"},{"backendCode":"403","httpCode":403,"statusCode":"403","description":"Uso interno"},{"backendCode":"404","httpCode":404,"statusCode":"404","description":"Uso interno"},{"backendCode":"default","httpCode":409,"statusCode":"409","description":"Conflicto"},{"backendCode":"424","httpCode":424,"statusCode":"424","description":"Error de dependencia"},{"backendCode":"VDE01","httpCode":400,"statusCode":"VDE01","description":"VDE01 - Error en dato de entrada obligatorio: %s"},{"backendCode":"VDE02","httpCode":400,"statusCode":"VDE02","description":"VDE02 - Error en valor permitido para campo: %s"}]'
|
||||
rest-client:
|
||||
bus-legal-customer-product-directory: '{"url":"http://localhost:8082/bus-legal-customer-product-directory/retrieve/{customerIbsNumber}/{appId}/{customerReferenceFintechId}","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"}}'
|
||||
get-service-status: '{"url":"http://api-get-service-status-route-apis-banesco-dev.apps.desplakur3.desintra.banesco.com/service/status","timeout":{"connect":20000,"response":20000},"config":{"sp":"spAPI_Traza","eventCod":"CANCTARJ","bankCod":"01","curCod":"BS"}}'
|
||||
bus-legal-customer-product-directory: '{"url":"http://localhost:8082/bus-legal-customer-product-directory/retrieve/{customerIbsNumber}/{appId}/{customerReferenceFintechId}","timeout":{"connect":20000,"response":20000},"config":{}}'
|
||||
Loading…
x
Reference in New Issue
Block a user