feat(connector): [Gigadat] Implement interac payouts (#9566)

This commit is contained in:
Swangi Kumari
2025-10-01 14:17:18 +05:30
committed by GitHub
parent 654ffe472f
commit cf30da2df0
17 changed files with 510 additions and 14 deletions

View File

@ -79,6 +79,7 @@ pub struct PayoutData {
pub current_locale: String,
pub payment_method: Option<PaymentMethod>,
pub connector_transfer_method_id: Option<String>,
pub browser_info: Option<domain_models::router_request_types::BrowserInformation>,
}
// ********************************************** CORE FLOWS **********************************************
@ -533,12 +534,12 @@ pub async fn payouts_retrieve_core(
)
.await?;
complete_payout_retrieve(
Box::pin(complete_payout_retrieve(
&state,
&merchant_context,
connector_call_type,
&mut payout_data,
)
))
.await?;
}
@ -2874,6 +2875,7 @@ pub async fn payout_create_db_entries(
current_locale: locale.to_string(),
payment_method,
connector_transfer_method_id: None,
browser_info: req.browser_info.clone().map(Into::into),
})
}
@ -2906,6 +2908,12 @@ pub async fn make_payout_data(
payouts::PayoutRequest::PayoutRetrieveRequest(r) => r.payout_id.clone(),
};
let browser_info = match req {
payouts::PayoutRequest::PayoutActionRequest(_) => None,
payouts::PayoutRequest::PayoutCreateRequest(r) => r.browser_info.clone().map(Into::into),
payouts::PayoutRequest::PayoutRetrieveRequest(_) => None,
};
let payouts = db
.find_payout_by_merchant_id_payout_id(
merchant_id,
@ -3100,6 +3108,7 @@ pub async fn make_payout_data(
current_locale: locale.to_string(),
payment_method,
connector_transfer_method_id: None,
browser_info,
})
}

View File

@ -152,6 +152,8 @@ pub async fn construct_payout_router_data<'a, F>(
let connector_transfer_method_id =
payout_helpers::should_create_connector_transfer_method(&*payout_data, connector_data)?;
let browser_info = payout_data.browser_info.to_owned();
let router_data = types::RouterData {
flow: PhantomData,
merchant_id: merchant_context.get_merchant_account().get_id().to_owned(),
@ -197,6 +199,7 @@ pub async fn construct_payout_router_data<'a, F>(
}),
connector_transfer_method_id,
webhook_url: Some(webhook_url),
browser_info,
},
response: Ok(types::PayoutsResponseData::default()),
access_token: None,