mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 00:49:42 +08:00
refactor(router): Add IO level application logs (#4042)
This commit is contained in:
@ -150,7 +150,6 @@ impl
|
||||
_connectors: &settings::Connectors,
|
||||
) -> CustomResult<RequestContent, errors::ConnectorError> {
|
||||
let connector_req = stripe::StripeCreditTransferSourceRequest::try_from(req)?;
|
||||
|
||||
Ok(RequestContent::FormUrlEncoded(Box::new(connector_req)))
|
||||
}
|
||||
|
||||
@ -850,6 +849,7 @@ impl
|
||||
}
|
||||
_ => {
|
||||
let connector_req = stripe::PaymentIntentRequest::try_from(req)?;
|
||||
|
||||
Ok(RequestContent::FormUrlEncoded(Box::new(connector_req)))
|
||||
}
|
||||
}
|
||||
|
||||
@ -137,7 +137,7 @@ async fn call_to_locker_for_fingerprint(
|
||||
let jwekey = state.conf.jwekey.get_inner();
|
||||
|
||||
let request = generate_fingerprint_request(jwekey, locker, payload, locker_choice).await?;
|
||||
let response = services::call_connector_api(state, request)
|
||||
let response = services::call_connector_api(state, request, "call_locker_to_get_fingerprint")
|
||||
.await
|
||||
.change_context(errors::VaultError::GenerateFingerprintFailed);
|
||||
let jwe_body: encryption::JweBody = response
|
||||
|
||||
@ -71,7 +71,7 @@ impl HealthCheckInterface for app::AppState {
|
||||
let mut url = locker.host_rs.to_owned();
|
||||
url.push_str(consts::LOCKER_HEALTH_CALL_PATH);
|
||||
let request = services::Request::new(services::Method::Get, &url);
|
||||
services::call_connector_api(self, request)
|
||||
services::call_connector_api(self, request, "health_check_for_locker")
|
||||
.await
|
||||
.change_context(errors::HealthCheckLockerError::FailedToCallLocker)?
|
||||
.map_err(|_| {
|
||||
@ -126,7 +126,7 @@ impl HealthCheckInterface for app::AppState {
|
||||
&self,
|
||||
) -> CustomResult<HealthState, errors::HealthCheckOutGoing> {
|
||||
let request = services::Request::new(services::Method::Get, consts::OUTGOING_CALL_URL);
|
||||
services::call_connector_api(self, request)
|
||||
services::call_connector_api(self, request, "outgoing_health_check")
|
||||
.await
|
||||
.map_err(|err| errors::HealthCheckOutGoing::OutGoingFailed {
|
||||
message: err.to_string(),
|
||||
|
||||
@ -746,7 +746,7 @@ pub async fn get_payment_method_from_hs_locker<'a>(
|
||||
.await
|
||||
.change_context(errors::VaultError::FetchPaymentMethodFailed)
|
||||
.attach_printable("Making get payment method request failed")?;
|
||||
let response = services::call_connector_api(state, request)
|
||||
let response = services::call_connector_api(state, request, "add_card_to_locker")
|
||||
.await
|
||||
.change_context(errors::VaultError::FetchPaymentMethodFailed)
|
||||
.attach_printable("Failed while executing call_connector_api for get_card");
|
||||
@ -798,7 +798,7 @@ pub async fn call_to_locker_hs<'a>(
|
||||
let request =
|
||||
payment_methods::mk_add_locker_request_hs(jwekey, locker, payload, locker_choice)
|
||||
.await?;
|
||||
let response = services::call_connector_api(state, request)
|
||||
let response = services::call_connector_api(state, request, "add_card_to_hs_locker")
|
||||
.await
|
||||
.change_context(errors::VaultError::SaveCardFailed);
|
||||
|
||||
@ -864,7 +864,7 @@ pub async fn get_card_from_hs_locker<'a>(
|
||||
.await
|
||||
.change_context(errors::VaultError::FetchCardFailed)
|
||||
.attach_printable("Making get card request failed")?;
|
||||
let response = services::call_connector_api(state, request)
|
||||
let response = services::call_connector_api(state, request, "get_card_from_locker")
|
||||
.await
|
||||
.change_context(errors::VaultError::FetchCardFailed)
|
||||
.attach_printable("Failed while executing call_connector_api for get_card");
|
||||
@ -916,7 +916,7 @@ pub async fn delete_card_from_hs_locker<'a>(
|
||||
.attach_printable("Making delete card request failed")?;
|
||||
|
||||
if !locker.mock_locker {
|
||||
let response = services::call_connector_api(state, request)
|
||||
let response = services::call_connector_api(state, request, "delete_card_from_locker")
|
||||
.await
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable("Failed while executing call_connector_api for delete card");
|
||||
|
||||
@ -259,7 +259,12 @@ async fn create_applepay_session_token(
|
||||
apple_pay_merchant_cert,
|
||||
apple_pay_merchant_cert_key,
|
||||
)?;
|
||||
let response = services::call_connector_api(state, applepay_session_request).await;
|
||||
let response = services::call_connector_api(
|
||||
state,
|
||||
applepay_session_request,
|
||||
"create_apple_pay_session_token",
|
||||
)
|
||||
.await;
|
||||
|
||||
// logging the error if present in session call response
|
||||
log_session_response_if_error(&response);
|
||||
|
||||
@ -46,7 +46,12 @@ pub async fn verify_merchant_creds_for_applepay(
|
||||
.add_certificate_key(Some(key_data))
|
||||
.build();
|
||||
|
||||
let response = services::call_connector_api(&state, apple_pay_merch_verification_req).await;
|
||||
let response = services::call_connector_api(
|
||||
&state,
|
||||
apple_pay_merch_verification_req,
|
||||
"verify_merchant_creds_for_applepay",
|
||||
)
|
||||
.await;
|
||||
utils::log_applepay_verification_response_if_error(&response);
|
||||
|
||||
let applepay_response =
|
||||
|
||||
@ -379,11 +379,13 @@ where
|
||||
};
|
||||
let request_url = request.url.clone();
|
||||
let request_method = request.method;
|
||||
|
||||
let current_time = Instant::now();
|
||||
let response = call_connector_api(state, request).await;
|
||||
let response =
|
||||
call_connector_api(state, request, "execute_connector_processing_step")
|
||||
.await;
|
||||
let external_latency = current_time.elapsed().as_millis();
|
||||
logger::debug!(connector_response=?response);
|
||||
logger::info!(raw_connector_request=?masked_request_body);
|
||||
logger::info!(raw_connector_response=?response);
|
||||
let status_code = response
|
||||
.as_ref()
|
||||
.map(|i| {
|
||||
@ -563,16 +565,34 @@ where
|
||||
pub async fn call_connector_api(
|
||||
state: &AppState,
|
||||
request: Request,
|
||||
flow_name: &str,
|
||||
) -> CustomResult<Result<types::Response, types::Response>, errors::ApiClientError> {
|
||||
let current_time = Instant::now();
|
||||
|
||||
let headers = request.headers.clone();
|
||||
let url = request.url.clone();
|
||||
let response = state
|
||||
.api_client
|
||||
.send_request(state, request, None, true)
|
||||
.await;
|
||||
|
||||
let elapsed_time = current_time.elapsed();
|
||||
logger::info!(request_time=?elapsed_time);
|
||||
match response.as_ref() {
|
||||
Ok(resp) => {
|
||||
let status_code = resp.status().as_u16();
|
||||
let elapsed_time = current_time.elapsed();
|
||||
logger::info!(
|
||||
headers=?headers,
|
||||
url=?url,
|
||||
status_code=?status_code,
|
||||
flow=?flow_name,
|
||||
elapsed_time=?elapsed_time
|
||||
);
|
||||
}
|
||||
Err(err) => {
|
||||
logger::info!(
|
||||
call_connector_api_error=?err
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
handle_response(response).await
|
||||
}
|
||||
@ -583,7 +603,7 @@ pub async fn send_request(
|
||||
request: Request,
|
||||
option_timeout_secs: Option<u64>,
|
||||
) -> CustomResult<reqwest::Response, errors::ApiClientError> {
|
||||
logger::debug!(method=?request.method, headers=?request.headers, payload=?request.body, ?request);
|
||||
logger::info!(method=?request.method, headers=?request.headers, payload=?request.body, ?request);
|
||||
|
||||
let url = reqwest::Url::parse(&request.url)
|
||||
.into_report()
|
||||
|
||||
@ -35,7 +35,12 @@ where
|
||||
match connector_request {
|
||||
Some(request) => {
|
||||
logger::debug!(connector_request=?request);
|
||||
let response = services::api::call_connector_api(state, request).await;
|
||||
let response = services::api::call_connector_api(
|
||||
state,
|
||||
request,
|
||||
"execute_connector_processing_step",
|
||||
)
|
||||
.await;
|
||||
logger::debug!(connector_response=?response);
|
||||
match response {
|
||||
Ok(body) => {
|
||||
|
||||
@ -127,9 +127,10 @@ pub trait VerifyConnector {
|
||||
})?
|
||||
.ok_or(errors::ApiErrorResponse::InternalServerError)?;
|
||||
|
||||
let response = services::call_connector_api(&state.to_owned(), request)
|
||||
.await
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)?;
|
||||
let response =
|
||||
services::call_connector_api(&state.to_owned(), request, "verify_connector_request")
|
||||
.await
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)?;
|
||||
|
||||
match response {
|
||||
Ok(_) => Ok(services::ApplicationResponse::StatusOk),
|
||||
|
||||
@ -27,7 +27,7 @@ impl VerifyConnector for connector::Paypal {
|
||||
})?
|
||||
.ok_or(errors::ApiErrorResponse::InternalServerError)?;
|
||||
|
||||
let response = services::call_connector_api(&state.to_owned(), request)
|
||||
let response = services::call_connector_api(&state.to_owned(), request, "get_access_token")
|
||||
.await
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user