mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 10:06:32 +08:00 
			
		
		
		
	feat(response-log): add logging to the response for stripe compatibility layer (#1470)
Co-authored-by: SamraatBansal <samraatbansal7@gmail.com>
This commit is contained in:
		| @ -2,7 +2,7 @@ pub mod types; | ||||
|  | ||||
| use actix_web::{web, HttpRequest, HttpResponse}; | ||||
| use error_stack::report; | ||||
| use router_env::{instrument, tracing}; | ||||
| use router_env::{instrument, tracing, Flow}; | ||||
|  | ||||
| use crate::{ | ||||
|     compatibility::{stripe::errors, wrap}, | ||||
| @ -12,7 +12,7 @@ use crate::{ | ||||
|     types::api::customers as customer_types, | ||||
| }; | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::CustomersCreate))] | ||||
| pub async fn customer_create( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -28,6 +28,8 @@ pub async fn customer_create( | ||||
|  | ||||
|     let create_cust_req: customer_types::CustomerRequest = payload.into(); | ||||
|  | ||||
|     let flow = Flow::CustomersCreate; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -38,6 +40,7 @@ pub async fn customer_create( | ||||
|         types::CreateCustomerResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         create_cust_req, | ||||
| @ -49,7 +52,7 @@ pub async fn customer_create( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::CustomersRetrieve))] | ||||
| pub async fn customer_retrieve( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     req: HttpRequest, | ||||
| @ -59,6 +62,8 @@ pub async fn customer_retrieve( | ||||
|         customer_id: path.into_inner(), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::CustomersRetrieve; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -69,6 +74,7 @@ pub async fn customer_retrieve( | ||||
|         types::CustomerRetrieveResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
| @ -80,7 +86,7 @@ pub async fn customer_retrieve( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::CustomersUpdate))] | ||||
| pub async fn customer_update( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -99,6 +105,8 @@ pub async fn customer_update( | ||||
|     let mut cust_update_req: customer_types::CustomerRequest = payload.into(); | ||||
|     cust_update_req.customer_id = customer_id; | ||||
|  | ||||
|     let flow = Flow::CustomersUpdate; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -109,6 +117,7 @@ pub async fn customer_update( | ||||
|         types::CustomerUpdateResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         cust_update_req, | ||||
| @ -120,7 +129,7 @@ pub async fn customer_update( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::CustomersDelete))] | ||||
| pub async fn customer_delete( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     req: HttpRequest, | ||||
| @ -130,6 +139,8 @@ pub async fn customer_delete( | ||||
|         customer_id: path.into_inner(), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::CustomersDelete; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -140,6 +151,7 @@ pub async fn customer_delete( | ||||
|         types::CustomerDeleteResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
| @ -149,7 +161,7 @@ pub async fn customer_delete( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::CustomerPaymentMethodsList))] | ||||
| pub async fn list_customer_payment_method_api( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     req: HttpRequest, | ||||
| @ -157,6 +169,8 @@ pub async fn list_customer_payment_method_api( | ||||
| ) -> HttpResponse { | ||||
|     let customer_id = path.into_inner(); | ||||
|  | ||||
|     let flow = Flow::CustomerPaymentMethodsList; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -167,6 +181,7 @@ pub async fn list_customer_payment_method_api( | ||||
|         types::CustomerPaymentMethodListResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         customer_id.as_ref(), | ||||
|  | ||||
| @ -3,7 +3,7 @@ pub mod types; | ||||
| use actix_web::{web, HttpRequest, HttpResponse}; | ||||
| use api_models::payments as payment_types; | ||||
| use error_stack::report; | ||||
| use router_env::{instrument, tracing}; | ||||
| use router_env::{instrument, tracing, Flow}; | ||||
|  | ||||
| use crate::{ | ||||
|     compatibility::{stripe::errors, wrap}, | ||||
| @ -13,7 +13,7 @@ use crate::{ | ||||
|     types::api::{self as api_types}, | ||||
| }; | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsCreate))] | ||||
| pub async fn payment_intents_create( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -33,6 +33,8 @@ pub async fn payment_intents_create( | ||||
|         Err(err) => return api::log_and_return_error_response(err), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::PaymentsCreate; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -43,6 +45,7 @@ pub async fn payment_intents_create( | ||||
|         types::StripePaymentIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         create_payment_req, | ||||
| @ -61,7 +64,7 @@ pub async fn payment_intents_create( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsRetrieve))] | ||||
| pub async fn payment_intents_retrieve( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     req: HttpRequest, | ||||
| @ -81,6 +84,8 @@ pub async fn payment_intents_retrieve( | ||||
|         Err(err) => return api::log_and_return_error_response(report!(err)), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::PaymentsRetrieve; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -91,6 +96,7 @@ pub async fn payment_intents_retrieve( | ||||
|         types::StripePaymentIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
| @ -109,7 +115,7 @@ pub async fn payment_intents_retrieve( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsRetrieve))] | ||||
| pub async fn payment_intents_retrieve_with_gateway_creds( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -138,6 +144,8 @@ pub async fn payment_intents_retrieve_with_gateway_creds( | ||||
|         Err(err) => return api::log_and_return_error_response(report!(err)), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::PaymentsRetrieve; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -148,6 +156,7 @@ pub async fn payment_intents_retrieve_with_gateway_creds( | ||||
|         types::StripePaymentIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
| @ -166,7 +175,7 @@ pub async fn payment_intents_retrieve_with_gateway_creds( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsUpdate))] | ||||
| pub async fn payment_intents_update( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -196,6 +205,8 @@ pub async fn payment_intents_update( | ||||
|         Err(err) => return api::log_and_return_error_response(report!(err)), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::PaymentsUpdate; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -206,6 +217,7 @@ pub async fn payment_intents_update( | ||||
|         types::StripePaymentIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
| @ -224,7 +236,7 @@ pub async fn payment_intents_update( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsConfirm))] | ||||
| pub async fn payment_intents_confirm( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -256,6 +268,8 @@ pub async fn payment_intents_confirm( | ||||
|             Err(err) => return api::log_and_return_error_response(err), | ||||
|         }; | ||||
|  | ||||
|     let flow = Flow::PaymentsConfirm; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -266,6 +280,7 @@ pub async fn payment_intents_confirm( | ||||
|         types::StripePaymentIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
| @ -284,6 +299,7 @@ pub async fn payment_intents_confirm( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsCapture))] | ||||
| pub async fn payment_intents_capture( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -305,6 +321,8 @@ pub async fn payment_intents_capture( | ||||
|         ..stripe_payload | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::PaymentsCapture; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -315,6 +333,7 @@ pub async fn payment_intents_capture( | ||||
|         types::StripePaymentIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         capture_payload, | ||||
| @ -333,7 +352,7 @@ pub async fn payment_intents_capture( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsCancel))] | ||||
| pub async fn payment_intents_cancel( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -359,6 +378,8 @@ pub async fn payment_intents_cancel( | ||||
|         Err(err) => return api::log_and_return_error_response(report!(err)), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::PaymentsCancel; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -369,6 +390,7 @@ pub async fn payment_intents_cancel( | ||||
|         types::StripePaymentIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
| @ -387,7 +409,7 @@ pub async fn payment_intents_cancel( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsList))] | ||||
| #[cfg(feature = "olap")] | ||||
| pub async fn payment_intent_list( | ||||
|     state: web::Data<routes::AppState>, | ||||
| @ -398,6 +420,9 @@ pub async fn payment_intent_list( | ||||
|         Ok(p) => p, | ||||
|         Err(err) => return api::log_and_return_error_response(err), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::PaymentsList; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -408,6 +433,7 @@ pub async fn payment_intent_list( | ||||
|         types::StripePaymentIntentListResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
|  | ||||
| @ -2,7 +2,7 @@ pub mod types; | ||||
|  | ||||
| use actix_web::{web, HttpRequest, HttpResponse}; | ||||
| use error_stack::report; | ||||
| use router_env::{instrument, tracing}; | ||||
| use router_env::{instrument, tracing, Flow}; | ||||
|  | ||||
| use crate::{ | ||||
|     compatibility::{stripe::errors, wrap}, | ||||
| @ -12,7 +12,7 @@ use crate::{ | ||||
|     types::api::refunds as refund_types, | ||||
| }; | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::RefundsCreate))] | ||||
| pub async fn refund_create( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -29,6 +29,8 @@ pub async fn refund_create( | ||||
|  | ||||
|     let create_refund_req: refund_types::RefundRequest = payload.into(); | ||||
|  | ||||
|     let flow = Flow::RefundsCreate; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -39,6 +41,7 @@ pub async fn refund_create( | ||||
|         types::StripeRefundResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         create_refund_req, | ||||
| @ -48,7 +51,7 @@ pub async fn refund_create( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::RefundsRetrieve))] | ||||
| pub async fn refund_retrieve_with_gateway_creds( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -62,6 +65,9 @@ pub async fn refund_retrieve_with_gateway_creds( | ||||
|         Ok(payload) => payload, | ||||
|         Err(err) => return api::log_and_return_error_response(err), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::RefundsRetrieve; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -72,6 +78,7 @@ pub async fn refund_retrieve_with_gateway_creds( | ||||
|         types::StripeRefundResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         refund_request, | ||||
| @ -88,7 +95,7 @@ pub async fn refund_retrieve_with_gateway_creds( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::RefundsRetrieve))] | ||||
| pub async fn refund_retrieve( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     req: HttpRequest, | ||||
| @ -99,6 +106,9 @@ pub async fn refund_retrieve( | ||||
|         force_sync: Some(true), | ||||
|         merchant_connector_details: None, | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::RefundsRetrieve; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -109,6 +119,7 @@ pub async fn refund_retrieve( | ||||
|         types::StripeRefundResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         refund_request, | ||||
| @ -125,7 +136,7 @@ pub async fn refund_retrieve( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::RefundsUpdate))] | ||||
| pub async fn refund_update( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     req: HttpRequest, | ||||
| @ -135,6 +146,7 @@ pub async fn refund_update( | ||||
|     let refund_id = path.into_inner(); | ||||
|     let payload = form_payload.into_inner(); | ||||
|     let create_refund_update_req: refund_types::RefundUpdateRequest = payload.into(); | ||||
|     let flow = Flow::RefundsUpdate; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
| @ -146,6 +158,7 @@ pub async fn refund_update( | ||||
|         types::StripeRefundResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         create_refund_update_req, | ||||
|  | ||||
| @ -3,7 +3,7 @@ pub mod types; | ||||
| use actix_web::{web, HttpRequest, HttpResponse}; | ||||
| use api_models::payments as payment_types; | ||||
| use error_stack::report; | ||||
| use router_env::{instrument, tracing}; | ||||
| use router_env::{instrument, tracing, Flow}; | ||||
|  | ||||
| use crate::{ | ||||
|     compatibility::{stripe::errors, wrap}, | ||||
| @ -13,7 +13,7 @@ use crate::{ | ||||
|     types::api as api_types, | ||||
| }; | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsCreate))] | ||||
| pub async fn setup_intents_create( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -34,6 +34,8 @@ pub async fn setup_intents_create( | ||||
|             Err(err) => return api::log_and_return_error_response(err), | ||||
|         }; | ||||
|  | ||||
|     let flow = Flow::PaymentsCreate; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -44,6 +46,7 @@ pub async fn setup_intents_create( | ||||
|         types::StripeSetupIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         create_payment_req, | ||||
| @ -62,7 +65,7 @@ pub async fn setup_intents_create( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsRetrieve))] | ||||
| pub async fn setup_intents_retrieve( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     req: HttpRequest, | ||||
| @ -82,6 +85,8 @@ pub async fn setup_intents_retrieve( | ||||
|         Err(err) => return api::log_and_return_error_response(report!(err)), | ||||
|     }; | ||||
|  | ||||
|     let flow = Flow::PaymentsRetrieve; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -92,6 +97,7 @@ pub async fn setup_intents_retrieve( | ||||
|         types::StripeSetupIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
| @ -110,7 +116,7 @@ pub async fn setup_intents_retrieve( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsUpdate))] | ||||
| pub async fn setup_intents_update( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -141,6 +147,8 @@ pub async fn setup_intents_update( | ||||
|             Err(err) => return api::log_and_return_error_response(err), | ||||
|         }; | ||||
|  | ||||
|     let flow = Flow::PaymentsUpdate; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -151,6 +159,7 @@ pub async fn setup_intents_update( | ||||
|         types::StripeSetupIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
| @ -169,7 +178,7 @@ pub async fn setup_intents_update( | ||||
|     .await | ||||
| } | ||||
|  | ||||
| #[instrument(skip_all)] | ||||
| #[instrument(skip_all, fields(flow = ?Flow::PaymentsConfirm))] | ||||
| pub async fn setup_intents_confirm( | ||||
|     state: web::Data<routes::AppState>, | ||||
|     qs_config: web::Data<serde_qs::Config>, | ||||
| @ -201,6 +210,8 @@ pub async fn setup_intents_confirm( | ||||
|             Err(err) => return api::log_and_return_error_response(err), | ||||
|         }; | ||||
|  | ||||
|     let flow = Flow::PaymentsConfirm; | ||||
|  | ||||
|     wrap::compatibility_api_wrap::< | ||||
|         _, | ||||
|         _, | ||||
| @ -211,6 +222,7 @@ pub async fn setup_intents_confirm( | ||||
|         types::StripeSetupIntentResponse, | ||||
|         errors::StripeErrorCode, | ||||
|     >( | ||||
|         flow, | ||||
|         state.get_ref(), | ||||
|         &req, | ||||
|         payload, | ||||
|  | ||||
| @ -1,18 +1,19 @@ | ||||
| use std::future::Future; | ||||
| use std::{future::Future, time::Instant}; | ||||
|  | ||||
| use actix_web::{HttpRequest, HttpResponse, Responder}; | ||||
| use common_utils::errors::ErrorSwitch; | ||||
| use router_env::{instrument, tracing}; | ||||
| use router_env::{instrument, tracing, Tag}; | ||||
| use serde::Serialize; | ||||
|  | ||||
| use crate::{ | ||||
|     core::errors::{self, RouterResult}, | ||||
|     routes::app::AppStateInfo, | ||||
|     routes::{app::AppStateInfo, metrics}, | ||||
|     services::{self, api, authentication as auth, logger}, | ||||
| }; | ||||
|  | ||||
| #[instrument(skip(request, payload, state, func, api_authentication))] | ||||
| pub async fn compatibility_api_wrap<'a, 'b, A, U, T, Q, F, Fut, S, E>( | ||||
|     flow: impl router_env::types::FlowMetric, | ||||
|     state: &'b A, | ||||
|     request: &'a HttpRequest, | ||||
|     payload: T, | ||||
| @ -31,20 +32,27 @@ where | ||||
|     T: std::fmt::Debug, | ||||
|     A: AppStateInfo, | ||||
| { | ||||
|     let resp: common_utils::errors::CustomResult<_, E> = api::server_wrap_util( | ||||
|         &router_env::Flow::CompatibilityLayerRequest, | ||||
|         state, | ||||
|         request, | ||||
|         payload, | ||||
|         func, | ||||
|         api_authentication, | ||||
|     let request_method = request.method().as_str(); | ||||
|     let url_path = request.path(); | ||||
|     tracing::Span::current().record("request_method", request_method); | ||||
|     tracing::Span::current().record("request_url_path", url_path); | ||||
|  | ||||
|     let start_instant = Instant::now(); | ||||
|     logger::info!(tag = ?Tag::BeginRequest, payload = ?payload); | ||||
|  | ||||
|     let res = match metrics::request::record_request_time_metric( | ||||
|         api::server_wrap_util(&flow, state, request, payload, func, api_authentication), | ||||
|         &flow, | ||||
|     ) | ||||
|     .await; | ||||
|     match resp { | ||||
|         Ok(api::ApplicationResponse::Json(router_resp)) => { | ||||
|             let pg_resp = S::try_from(router_resp); | ||||
|             match pg_resp { | ||||
|                 Ok(pg_resp) => match serde_json::to_string(&pg_resp) { | ||||
|     .await | ||||
|     .map(|response| { | ||||
|         logger::info!(api_response =? response); | ||||
|         response | ||||
|     }) { | ||||
|         Ok(api::ApplicationResponse::Json(response)) => { | ||||
|             let response = S::try_from(response); | ||||
|             match response { | ||||
|                 Ok(response) => match serde_json::to_string(&response) { | ||||
|                     Ok(res) => api::http_response_json(res), | ||||
|                     Err(_) => api::http_response_err( | ||||
|                         r#"{ | ||||
| @ -88,10 +96,17 @@ where | ||||
|         ) | ||||
|         .respond_to(request) | ||||
|         .map_into_boxed_body(), | ||||
|         Err(error) => api::log_and_return_error_response(error), | ||||
|     }; | ||||
|  | ||||
|         Err(error) => { | ||||
|             logger::error!(api_response_error=?error); | ||||
|             api::log_and_return_error_response(error) | ||||
|         } | ||||
|     } | ||||
|     let response_code = res.status().as_u16(); | ||||
|     let end_instant = Instant::now(); | ||||
|     let request_duration = end_instant.saturating_duration_since(start_instant); | ||||
|     logger::info!( | ||||
|         tag = ?Tag::EndRequest, | ||||
|         status_code = response_code, | ||||
|         time_taken_ms = request_duration.as_millis(), | ||||
|     ); | ||||
|  | ||||
|     res | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shankar Singh C
					Shankar Singh C