mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 00:49:42 +08:00
feat(analytics): add force retrieve call for force retrieve calls (#3565)
Co-authored-by: harsh-sharma-juspay <125131007+harsh-sharma-juspay@users.noreply.github.com>
This commit is contained in:
@ -71,7 +71,7 @@ pub async fn payment_intents_create(
|
|||||||
))
|
))
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
#[instrument(skip_all, fields(flow = ?Flow::PaymentsRetrieve))]
|
#[instrument(skip_all, fields(flow = ?Flow::PaymentsRetrieveForceSync))]
|
||||||
pub async fn payment_intents_retrieve(
|
pub async fn payment_intents_retrieve(
|
||||||
state: web::Data<routes::AppState>,
|
state: web::Data<routes::AppState>,
|
||||||
req: HttpRequest,
|
req: HttpRequest,
|
||||||
@ -96,7 +96,7 @@ pub async fn payment_intents_retrieve(
|
|||||||
Err(err) => return api::log_and_return_error_response(report!(err)),
|
Err(err) => return api::log_and_return_error_response(report!(err)),
|
||||||
};
|
};
|
||||||
|
|
||||||
let flow = Flow::PaymentsRetrieve;
|
let flow = Flow::PaymentsRetrieveForceSync;
|
||||||
let locking_action = payload.get_locking_input(flow.clone());
|
let locking_action = payload.get_locking_input(flow.clone());
|
||||||
Box::pin(wrap::compatibility_api_wrap::<
|
Box::pin(wrap::compatibility_api_wrap::<
|
||||||
_,
|
_,
|
||||||
@ -131,7 +131,7 @@ pub async fn payment_intents_retrieve(
|
|||||||
))
|
))
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
#[instrument(skip_all, fields(flow = ?Flow::PaymentsRetrieve))]
|
#[instrument(skip_all, fields(flow))]
|
||||||
pub async fn payment_intents_retrieve_with_gateway_creds(
|
pub async fn payment_intents_retrieve_with_gateway_creds(
|
||||||
state: web::Data<routes::AppState>,
|
state: web::Data<routes::AppState>,
|
||||||
qs_config: web::Data<serde_qs::Config>,
|
qs_config: web::Data<serde_qs::Config>,
|
||||||
@ -160,7 +160,13 @@ pub async fn payment_intents_retrieve_with_gateway_creds(
|
|||||||
Err(err) => return api::log_and_return_error_response(report!(err)),
|
Err(err) => return api::log_and_return_error_response(report!(err)),
|
||||||
};
|
};
|
||||||
|
|
||||||
let flow = Flow::PaymentsRetrieve;
|
let flow = match json_payload.force_sync {
|
||||||
|
Some(true) => Flow::PaymentsRetrieveForceSync,
|
||||||
|
_ => Flow::PaymentsRetrieve,
|
||||||
|
};
|
||||||
|
|
||||||
|
tracing::Span::current().record("flow", &flow.to_string());
|
||||||
|
|
||||||
let locking_action = payload.get_locking_input(flow.clone());
|
let locking_action = payload.get_locking_input(flow.clone());
|
||||||
Box::pin(wrap::compatibility_api_wrap::<
|
Box::pin(wrap::compatibility_api_wrap::<
|
||||||
_,
|
_,
|
||||||
|
|||||||
@ -57,14 +57,14 @@ pub async fn refund_create(
|
|||||||
))
|
))
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
#[instrument(skip_all, fields(flow = ?Flow::RefundsRetrieve))]
|
#[instrument(skip_all, fields(flow))]
|
||||||
pub async fn refund_retrieve_with_gateway_creds(
|
pub async fn refund_retrieve_with_gateway_creds(
|
||||||
state: web::Data<routes::AppState>,
|
state: web::Data<routes::AppState>,
|
||||||
qs_config: web::Data<serde_qs::Config>,
|
qs_config: web::Data<serde_qs::Config>,
|
||||||
req: HttpRequest,
|
req: HttpRequest,
|
||||||
form_payload: web::Bytes,
|
form_payload: web::Bytes,
|
||||||
) -> HttpResponse {
|
) -> HttpResponse {
|
||||||
let refund_request = match qs_config
|
let refund_request: refund_types::RefundsRetrieveRequest = match qs_config
|
||||||
.deserialize_bytes(&form_payload)
|
.deserialize_bytes(&form_payload)
|
||||||
.map_err(|err| report!(errors::StripeErrorCode::from(err)))
|
.map_err(|err| report!(errors::StripeErrorCode::from(err)))
|
||||||
{
|
{
|
||||||
@ -72,7 +72,12 @@ pub async fn refund_retrieve_with_gateway_creds(
|
|||||||
Err(err) => return api::log_and_return_error_response(err),
|
Err(err) => return api::log_and_return_error_response(err),
|
||||||
};
|
};
|
||||||
|
|
||||||
let flow = Flow::RefundsRetrieve;
|
let flow = match refund_request.force_sync {
|
||||||
|
Some(true) => Flow::RefundsRetrieveForceSync,
|
||||||
|
_ => Flow::RefundsRetrieve,
|
||||||
|
};
|
||||||
|
|
||||||
|
tracing::Span::current().record("flow", &flow.to_string());
|
||||||
|
|
||||||
Box::pin(wrap::compatibility_api_wrap::<
|
Box::pin(wrap::compatibility_api_wrap::<
|
||||||
_,
|
_,
|
||||||
@ -103,7 +108,7 @@ pub async fn refund_retrieve_with_gateway_creds(
|
|||||||
))
|
))
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
#[instrument(skip_all, fields(flow = ?Flow::RefundsRetrieve))]
|
#[instrument(skip_all, fields(flow = ?Flow::RefundsRetrieveForceSync))]
|
||||||
pub async fn refund_retrieve(
|
pub async fn refund_retrieve(
|
||||||
state: web::Data<routes::AppState>,
|
state: web::Data<routes::AppState>,
|
||||||
req: HttpRequest,
|
req: HttpRequest,
|
||||||
@ -115,7 +120,7 @@ pub async fn refund_retrieve(
|
|||||||
merchant_connector_details: None,
|
merchant_connector_details: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
let flow = Flow::RefundsRetrieve;
|
let flow = Flow::RefundsRetrieveForceSync;
|
||||||
|
|
||||||
Box::pin(wrap::compatibility_api_wrap::<
|
Box::pin(wrap::compatibility_api_wrap::<
|
||||||
_,
|
_,
|
||||||
|
|||||||
@ -78,7 +78,7 @@ pub async fn setup_intents_create(
|
|||||||
))
|
))
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
#[instrument(skip_all, fields(flow = ?Flow::PaymentsRetrieve))]
|
#[instrument(skip_all, fields(flow = ?Flow::PaymentsRetrieveForceSync))]
|
||||||
pub async fn setup_intents_retrieve(
|
pub async fn setup_intents_retrieve(
|
||||||
state: web::Data<routes::AppState>,
|
state: web::Data<routes::AppState>,
|
||||||
req: HttpRequest,
|
req: HttpRequest,
|
||||||
@ -103,7 +103,7 @@ pub async fn setup_intents_retrieve(
|
|||||||
Err(err) => return api::log_and_return_error_response(report!(err)),
|
Err(err) => return api::log_and_return_error_response(report!(err)),
|
||||||
};
|
};
|
||||||
|
|
||||||
let flow = Flow::PaymentsRetrieve;
|
let flow = Flow::PaymentsRetrieveForceSync;
|
||||||
|
|
||||||
Box::pin(wrap::compatibility_api_wrap::<
|
Box::pin(wrap::compatibility_api_wrap::<
|
||||||
_,
|
_,
|
||||||
|
|||||||
@ -103,6 +103,7 @@ impl From<Flow> for ApiIdentifier {
|
|||||||
|
|
||||||
Flow::PaymentsCreate
|
Flow::PaymentsCreate
|
||||||
| Flow::PaymentsRetrieve
|
| Flow::PaymentsRetrieve
|
||||||
|
| Flow::PaymentsRetrieveForceSync
|
||||||
| Flow::PaymentsUpdate
|
| Flow::PaymentsUpdate
|
||||||
| Flow::PaymentsConfirm
|
| Flow::PaymentsConfirm
|
||||||
| Flow::PaymentsCapture
|
| Flow::PaymentsCapture
|
||||||
@ -124,6 +125,7 @@ impl From<Flow> for ApiIdentifier {
|
|||||||
|
|
||||||
Flow::RefundsCreate
|
Flow::RefundsCreate
|
||||||
| Flow::RefundsRetrieve
|
| Flow::RefundsRetrieve
|
||||||
|
| Flow::RefundsRetrieveForceSync
|
||||||
| Flow::RefundsUpdate
|
| Flow::RefundsUpdate
|
||||||
| Flow::RefundsList => Self::Refunds,
|
| Flow::RefundsList => Self::Refunds,
|
||||||
|
|
||||||
|
|||||||
@ -229,7 +229,7 @@ pub async fn payments_start(
|
|||||||
operation_id = "Retrieve a Payment",
|
operation_id = "Retrieve a Payment",
|
||||||
security(("api_key" = []), ("publishable_key" = []))
|
security(("api_key" = []), ("publishable_key" = []))
|
||||||
)]
|
)]
|
||||||
#[instrument(skip(state, req), fields(flow = ?Flow::PaymentsRetrieve, payment_id))]
|
#[instrument(skip(state, req), fields(flow, payment_id))]
|
||||||
// #[get("/{payment_id}")]
|
// #[get("/{payment_id}")]
|
||||||
pub async fn payments_retrieve(
|
pub async fn payments_retrieve(
|
||||||
state: web::Data<app::AppState>,
|
state: web::Data<app::AppState>,
|
||||||
@ -237,7 +237,10 @@ pub async fn payments_retrieve(
|
|||||||
path: web::Path<String>,
|
path: web::Path<String>,
|
||||||
json_payload: web::Query<payment_types::PaymentRetrieveBody>,
|
json_payload: web::Query<payment_types::PaymentRetrieveBody>,
|
||||||
) -> impl Responder {
|
) -> impl Responder {
|
||||||
let flow = Flow::PaymentsRetrieve;
|
let flow = match json_payload.force_sync {
|
||||||
|
Some(true) => Flow::PaymentsRetrieveForceSync,
|
||||||
|
_ => Flow::PaymentsRetrieve,
|
||||||
|
};
|
||||||
let payload = payment_types::PaymentsRetrieveRequest {
|
let payload = payment_types::PaymentsRetrieveRequest {
|
||||||
resource_id: payment_types::PaymentIdType::PaymentIntentId(path.to_string()),
|
resource_id: payment_types::PaymentIdType::PaymentIntentId(path.to_string()),
|
||||||
merchant_id: json_payload.merchant_id.clone(),
|
merchant_id: json_payload.merchant_id.clone(),
|
||||||
@ -249,6 +252,7 @@ pub async fn payments_retrieve(
|
|||||||
};
|
};
|
||||||
|
|
||||||
tracing::Span::current().record("payment_id", &path.to_string());
|
tracing::Span::current().record("payment_id", &path.to_string());
|
||||||
|
tracing::Span::current().record("flow", &flow.to_string());
|
||||||
|
|
||||||
let (auth_type, auth_flow) =
|
let (auth_type, auth_flow) =
|
||||||
match auth::check_client_secret_and_get_auth(req.headers(), &payload) {
|
match auth::check_client_secret_and_get_auth(req.headers(), &payload) {
|
||||||
@ -300,7 +304,7 @@ pub async fn payments_retrieve(
|
|||||||
operation_id = "Retrieve a Payment",
|
operation_id = "Retrieve a Payment",
|
||||||
security(("api_key" = []))
|
security(("api_key" = []))
|
||||||
)]
|
)]
|
||||||
#[instrument(skip(state, req), fields(flow = ?Flow::PaymentsRetrieve, payment_id))]
|
#[instrument(skip(state, req), fields(flow, payment_id))]
|
||||||
// #[post("/sync")]
|
// #[post("/sync")]
|
||||||
pub async fn payments_retrieve_with_gateway_creds(
|
pub async fn payments_retrieve_with_gateway_creds(
|
||||||
state: web::Data<app::AppState>,
|
state: web::Data<app::AppState>,
|
||||||
@ -320,9 +324,13 @@ pub async fn payments_retrieve_with_gateway_creds(
|
|||||||
merchant_connector_details: json_payload.merchant_connector_details.clone(),
|
merchant_connector_details: json_payload.merchant_connector_details.clone(),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
let flow = Flow::PaymentsRetrieve;
|
let flow = match json_payload.force_sync {
|
||||||
|
Some(true) => Flow::PaymentsRetrieveForceSync,
|
||||||
|
_ => Flow::PaymentsRetrieve,
|
||||||
|
};
|
||||||
|
|
||||||
tracing::Span::current().record("payment_id", &json_payload.payment_id);
|
tracing::Span::current().record("payment_id", &json_payload.payment_id);
|
||||||
|
tracing::Span::current().record("flow", &flow.to_string());
|
||||||
|
|
||||||
let locking_action = payload.get_locking_input(flow.clone());
|
let locking_action = payload.get_locking_input(flow.clone());
|
||||||
|
|
||||||
|
|||||||
@ -63,7 +63,7 @@ pub async fn refunds_create(
|
|||||||
operation_id = "Retrieve a Refund",
|
operation_id = "Retrieve a Refund",
|
||||||
security(("api_key" = []))
|
security(("api_key" = []))
|
||||||
)]
|
)]
|
||||||
#[instrument(skip_all, fields(flow = ?Flow::RefundsRetrieve))]
|
#[instrument(skip_all, fields(flow))]
|
||||||
// #[get("/{id}")]
|
// #[get("/{id}")]
|
||||||
pub async fn refunds_retrieve(
|
pub async fn refunds_retrieve(
|
||||||
state: web::Data<AppState>,
|
state: web::Data<AppState>,
|
||||||
@ -76,7 +76,12 @@ pub async fn refunds_retrieve(
|
|||||||
force_sync: query_params.force_sync,
|
force_sync: query_params.force_sync,
|
||||||
merchant_connector_details: None,
|
merchant_connector_details: None,
|
||||||
};
|
};
|
||||||
let flow = Flow::RefundsRetrieve;
|
let flow = match query_params.force_sync {
|
||||||
|
Some(true) => Flow::RefundsRetrieveForceSync,
|
||||||
|
_ => Flow::RefundsRetrieve,
|
||||||
|
};
|
||||||
|
|
||||||
|
tracing::Span::current().record("flow", &flow.to_string());
|
||||||
|
|
||||||
Box::pin(api::server_wrap(
|
Box::pin(api::server_wrap(
|
||||||
flow,
|
flow,
|
||||||
@ -115,14 +120,20 @@ pub async fn refunds_retrieve(
|
|||||||
operation_id = "Retrieve a Refund",
|
operation_id = "Retrieve a Refund",
|
||||||
security(("api_key" = []))
|
security(("api_key" = []))
|
||||||
)]
|
)]
|
||||||
#[instrument(skip_all, fields(flow = ?Flow::RefundsRetrieve))]
|
#[instrument(skip_all, fields(flow))]
|
||||||
// #[post("/sync")]
|
// #[post("/sync")]
|
||||||
pub async fn refunds_retrieve_with_body(
|
pub async fn refunds_retrieve_with_body(
|
||||||
state: web::Data<AppState>,
|
state: web::Data<AppState>,
|
||||||
req: HttpRequest,
|
req: HttpRequest,
|
||||||
json_payload: web::Json<refunds::RefundsRetrieveRequest>,
|
json_payload: web::Json<refunds::RefundsRetrieveRequest>,
|
||||||
) -> HttpResponse {
|
) -> HttpResponse {
|
||||||
let flow = Flow::RefundsRetrieve;
|
let flow = match json_payload.force_sync {
|
||||||
|
Some(true) => Flow::RefundsRetrieveForceSync,
|
||||||
|
_ => Flow::RefundsRetrieve,
|
||||||
|
};
|
||||||
|
|
||||||
|
tracing::Span::current().record("flow", &flow.to_string());
|
||||||
|
|
||||||
Box::pin(api::server_wrap(
|
Box::pin(api::server_wrap(
|
||||||
flow,
|
flow,
|
||||||
state,
|
state,
|
||||||
|
|||||||
@ -129,6 +129,8 @@ pub enum Flow {
|
|||||||
PaymentsCreate,
|
PaymentsCreate,
|
||||||
/// Payments Retrieve flow.
|
/// Payments Retrieve flow.
|
||||||
PaymentsRetrieve,
|
PaymentsRetrieve,
|
||||||
|
/// Payments Retrieve force sync flow.
|
||||||
|
PaymentsRetrieveForceSync,
|
||||||
/// Payments update flow.
|
/// Payments update flow.
|
||||||
PaymentsUpdate,
|
PaymentsUpdate,
|
||||||
/// Payments confirm flow.
|
/// Payments confirm flow.
|
||||||
@ -170,6 +172,8 @@ pub enum Flow {
|
|||||||
RefundsCreate,
|
RefundsCreate,
|
||||||
/// Refunds retrieve flow.
|
/// Refunds retrieve flow.
|
||||||
RefundsRetrieve,
|
RefundsRetrieve,
|
||||||
|
/// Refunds retrieve force sync flow.
|
||||||
|
RefundsRetrieveForceSync,
|
||||||
/// Refunds update flow.
|
/// Refunds update flow.
|
||||||
RefundsUpdate,
|
RefundsUpdate,
|
||||||
/// Refunds list flow.
|
/// Refunds list flow.
|
||||||
|
|||||||
Reference in New Issue
Block a user