mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-01 02:57:02 +08:00
fix(webhooks): send stripe compatible webhooks for stripe compatible merchants (#1986)
This commit is contained in:
committed by
GitHub
parent
698677263b
commit
36631ad97b
@ -7,6 +7,8 @@ use masking::ExposeInterface;
|
||||
use router_env::{instrument, tracing};
|
||||
|
||||
use super::{errors::StorageErrorExt, metrics};
|
||||
#[cfg(feature = "stripe")]
|
||||
use crate::compatibility::stripe::webhooks as stripe_webhooks;
|
||||
use crate::{
|
||||
consts,
|
||||
core::{
|
||||
@ -477,6 +479,49 @@ async fn bank_transfer_webhook_flow<W: types::OutgoingWebhookType>(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
#[instrument(skip_all)]
|
||||
pub async fn create_event_and_trigger_appropriate_outgoing_webhook(
|
||||
state: AppState,
|
||||
merchant_account: domain::MerchantAccount,
|
||||
event_type: enums::EventType,
|
||||
event_class: enums::EventClass,
|
||||
intent_reference_id: Option<String>,
|
||||
primary_object_id: String,
|
||||
primary_object_type: enums::EventObjectType,
|
||||
content: api::OutgoingWebhookContent,
|
||||
) -> CustomResult<(), errors::ApiErrorResponse> {
|
||||
match merchant_account.get_compatible_connector() {
|
||||
#[cfg(feature = "stripe")]
|
||||
Some(api_models::enums::Connector::Stripe) => {
|
||||
create_event_and_trigger_outgoing_webhook::<stripe_webhooks::StripeOutgoingWebhook>(
|
||||
state.clone(),
|
||||
merchant_account,
|
||||
event_type,
|
||||
event_class,
|
||||
intent_reference_id,
|
||||
primary_object_id,
|
||||
primary_object_type,
|
||||
content,
|
||||
)
|
||||
.await
|
||||
}
|
||||
_ => {
|
||||
create_event_and_trigger_outgoing_webhook::<api_models::webhooks::OutgoingWebhook>(
|
||||
state.clone(),
|
||||
merchant_account,
|
||||
event_type,
|
||||
event_class,
|
||||
intent_reference_id,
|
||||
primary_object_id,
|
||||
primary_object_type,
|
||||
content,
|
||||
)
|
||||
.await
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
#[instrument(skip_all)]
|
||||
pub async fn create_event_and_trigger_outgoing_webhook<W: types::OutgoingWebhookType>(
|
||||
|
||||
Reference in New Issue
Block a user