update http client service

This commit is contained in:
Ramon Ramirez 2026-01-12 18:47:08 -04:00
parent 6bcfe39c92
commit bd5d37f806
4 changed files with 32 additions and 13 deletions

View File

@ -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> 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> 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()

View File

@ -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;

View File

@ -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
) {