update http client service
This commit is contained in:
parent
6bcfe39c92
commit
bd5d37f806
Binary file not shown.
@ -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()
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
) {
|
||||
Loading…
x
Reference in New Issue
Block a user