diff --git a/scripts/native/file/rec-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner b/scripts/native/file/rec-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner index 30048d9..fb0bb40 100644 Binary files a/scripts/native/file/rec-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner and b/scripts/native/file/rec-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner differ diff --git a/src/main/java/com/banesco/common/application/service/HttpClientService.java b/src/main/java/com/banesco/common/application/service/HttpClientService.java index f51607b..6d04c0b 100644 --- a/src/main/java/com/banesco/common/application/service/HttpClientService.java +++ b/src/main/java/com/banesco/common/application/service/HttpClientService.java @@ -157,23 +157,17 @@ public class HttpClientService implements HttpClientUseCase { try (response) { String responseBody = response.readEntity(String.class); + log.info("Respuesta Cuerpo: {}", responseBody); + if (statusCode >= 200 && statusCode < 300) { if (request.getResponseType() == Void.class || request.getResponseType() == void.class) { return null; } - T result; - - if (request.getResponseType() == ApiResponse.class) { - result = deserializeApiResponse(responseBody, request); - } else { - result = objectMapper.readValue( - responseBody, - objectMapper.getTypeFactory().constructType(request.getResponseType()) - ); - } + T result = responseResult(request, responseBody); log.debug("Respuesta exitosa {} {}: {}", request.getMethod(), request.getUrl(), result); + return result; } else { log.error( @@ -207,6 +201,30 @@ public class HttpClientService implements HttpClientUseCase { } } + private T responseResult( + HttpRequest request, + String responseBody + ) throws JsonProcessingException { + T result; + + if (request.getResponseType() == ApiResponse.class) { + result = deserializeApiResponse(responseBody, request); + } else { + result = (request.getGenericType() != null) ? objectMapper.readValue( + responseBody, + objectMapper.getTypeFactory().constructParametricType( + request.getResponseType(), + objectMapper.getTypeFactory().constructType(request.getGenericType()) + ) + ) : objectMapper.readValue( + responseBody, + objectMapper.getTypeFactory().constructType(request.getResponseType()) + ); + } + + return result; + } + @SuppressWarnings("unchecked") private T deserializeApiResponse( String responseBody, @@ -223,11 +241,13 @@ public class HttpClientService implements HttpClientUseCase { return (T) objectMapper.readValue(responseBody, ApiResponse.class); } } catch (JsonProcessingException e) { + log.error("Error deserializando respuesta JSON: {}", e.getMessage()); throw HttpStatusCodeException.internalServer( "500", "Error deserializando respuesta JSON: " + e.getMessage() ); } catch (Exception e) { + log.error("Error desconocido al deserializar respuesta: {}", e.getMessage()); throw HttpStatusCodeException.internalServer( "500", "Error desconocido al deserializar respuesta: " + e.getMessage() diff --git a/src/main/java/com/banesco/module/legal_customer_product_directory/application/service/LegalCustomerProductDirectoryService.java b/src/main/java/com/banesco/module/legal_customer_product_directory/application/service/LegalCustomerProductDirectoryService.java index 2895586..0c29e07 100644 --- a/src/main/java/com/banesco/module/legal_customer_product_directory/application/service/LegalCustomerProductDirectoryService.java +++ b/src/main/java/com/banesco/module/legal_customer_product_directory/application/service/LegalCustomerProductDirectoryService.java @@ -4,7 +4,6 @@ import com.banesco.common.application.helper.MessageHelper; import com.banesco.common.application.helper.RequestValidatorHelper; import com.banesco.common.domain.exception.HttpStatusCodeException; import com.banesco.common.domain.model.*; -import com.banesco.module.account.domain.model.*; import com.banesco.module.legal_customer_product_directory.application.usecase.BusinessUseCase; import com.banesco.module.legal_customer_product_directory.application.usecase.LegalCustomerProductDirectoryUseCase; import com.banesco.module.legal_customer_product_directory.domain.dto.request.LegalCustomerProductDirectoryRequest; diff --git a/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/BusLegalCustomerDirectoryClient.java b/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/BusLegalCustomerProductDirectoryClient.java similarity index 96% rename from src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/BusLegalCustomerDirectoryClient.java rename to src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/BusLegalCustomerProductDirectoryClient.java index 4bb4c13..1b477ad 100644 --- a/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/BusLegalCustomerDirectoryClient.java +++ b/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/client/BusLegalCustomerProductDirectoryClient.java @@ -17,12 +17,12 @@ import java.util.Map; @Slf4j @ApplicationScoped -public class BusLegalCustomerDirectoryClient implements BusinessUseCase { +public class BusLegalCustomerProductDirectoryClient implements BusinessUseCase { private final HttpClientUseCase httpClientUseCase; private final BusinessConfig businessConfig; @Inject - public BusLegalCustomerDirectoryClient( + public BusLegalCustomerProductDirectoryClient( HttpClientUseCase httpClientUseCase, RestClientConfig restClientConfig ) {