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) {
|
try (response) {
|
||||||
String responseBody = response.readEntity(String.class);
|
String responseBody = response.readEntity(String.class);
|
||||||
|
|
||||||
|
log.info("Respuesta Cuerpo: {}", responseBody);
|
||||||
|
|
||||||
if (statusCode >= 200 && statusCode < 300) {
|
if (statusCode >= 200 && statusCode < 300) {
|
||||||
if (request.getResponseType() == Void.class || request.getResponseType() == void.class) {
|
if (request.getResponseType() == Void.class || request.getResponseType() == void.class) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
T result;
|
T result = responseResult(request, responseBody);
|
||||||
|
|
||||||
if (request.getResponseType() == ApiResponse.class) {
|
|
||||||
result = deserializeApiResponse(responseBody, request);
|
|
||||||
} else {
|
|
||||||
result = objectMapper.readValue(
|
|
||||||
responseBody,
|
|
||||||
objectMapper.getTypeFactory().constructType(request.getResponseType())
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
log.debug("Respuesta exitosa {} {}: {}", request.getMethod(), request.getUrl(), result);
|
log.debug("Respuesta exitosa {} {}: {}", request.getMethod(), request.getUrl(), result);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
} else {
|
} else {
|
||||||
log.error(
|
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")
|
@SuppressWarnings("unchecked")
|
||||||
private <T> T deserializeApiResponse(
|
private <T> T deserializeApiResponse(
|
||||||
String responseBody,
|
String responseBody,
|
||||||
@ -223,11 +241,13 @@ public class HttpClientService implements HttpClientUseCase {
|
|||||||
return (T) objectMapper.readValue(responseBody, ApiResponse.class);
|
return (T) objectMapper.readValue(responseBody, ApiResponse.class);
|
||||||
}
|
}
|
||||||
} catch (JsonProcessingException e) {
|
} catch (JsonProcessingException e) {
|
||||||
|
log.error("Error deserializando respuesta JSON: {}", e.getMessage());
|
||||||
throw HttpStatusCodeException.internalServer(
|
throw HttpStatusCodeException.internalServer(
|
||||||
"500",
|
"500",
|
||||||
"Error deserializando respuesta JSON: " + e.getMessage()
|
"Error deserializando respuesta JSON: " + e.getMessage()
|
||||||
);
|
);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
log.error("Error desconocido al deserializar respuesta: {}", e.getMessage());
|
||||||
throw HttpStatusCodeException.internalServer(
|
throw HttpStatusCodeException.internalServer(
|
||||||
"500",
|
"500",
|
||||||
"Error desconocido al deserializar respuesta: " + e.getMessage()
|
"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.application.helper.RequestValidatorHelper;
|
||||||
import com.banesco.common.domain.exception.HttpStatusCodeException;
|
import com.banesco.common.domain.exception.HttpStatusCodeException;
|
||||||
import com.banesco.common.domain.model.*;
|
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.BusinessUseCase;
|
||||||
import com.banesco.module.legal_customer_product_directory.application.usecase.LegalCustomerProductDirectoryUseCase;
|
import com.banesco.module.legal_customer_product_directory.application.usecase.LegalCustomerProductDirectoryUseCase;
|
||||||
import com.banesco.module.legal_customer_product_directory.domain.dto.request.LegalCustomerProductDirectoryRequest;
|
import com.banesco.module.legal_customer_product_directory.domain.dto.request.LegalCustomerProductDirectoryRequest;
|
||||||
|
|||||||
@ -17,12 +17,12 @@ import java.util.Map;
|
|||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class BusLegalCustomerDirectoryClient implements BusinessUseCase {
|
public class BusLegalCustomerProductDirectoryClient implements BusinessUseCase {
|
||||||
private final HttpClientUseCase httpClientUseCase;
|
private final HttpClientUseCase httpClientUseCase;
|
||||||
private final BusinessConfig businessConfig;
|
private final BusinessConfig businessConfig;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public BusLegalCustomerDirectoryClient(
|
public BusLegalCustomerProductDirectoryClient(
|
||||||
HttpClientUseCase httpClientUseCase,
|
HttpClientUseCase httpClientUseCase,
|
||||||
RestClientConfig restClientConfig
|
RestClientConfig restClientConfig
|
||||||
) {
|
) {
|
||||||
Loading…
x
Reference in New Issue
Block a user