mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 17:47:54 +08:00
refactor: separate DB queries and HTML creation for payout links (#4967)
Signed-off-by: Chikke Srujan <chikke.srujan@Chikke-Srujan-C02FC60MMD6M.local> Signed-off-by: chikke srujan <121822803+srujanchikke@users.noreply.github.com> Signed-off-by: Chikke Srujan <chikke.srujan@Chikke-Srujan-G961M60MK7.local> Co-authored-by: chikke srujan <121822803+srujanchikke@users.noreply.github.com> Co-authored-by: Chikke Srujan <chikke.srujan@Chikke-Srujan-C02FC60MMD6M.local> Co-authored-by: Srujan chikke <chikke.srujan@juspay.in> Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com> Co-authored-by: Chikke Srujan <chikke.srujan@Chikke-Srujan-G961M60MK7.local>
This commit is contained in:
@ -3,7 +3,7 @@ use std::collections::HashMap;
|
||||
use common_utils::{
|
||||
consts,
|
||||
crypto::{Encryptable, OptionalEncryptableName},
|
||||
pii,
|
||||
link_utils, pii,
|
||||
};
|
||||
use masking::Secret;
|
||||
use serde::{Deserialize, Serialize};
|
||||
@ -95,6 +95,10 @@ pub struct MerchantAccountCreate {
|
||||
|
||||
/// The id of the organization to which the merchant belongs to
|
||||
pub organization_id: Option<String>,
|
||||
|
||||
/// Default payment method collect link config
|
||||
#[schema(value_type = Option<BusinessCollectLinkConfig>)]
|
||||
pub pm_collect_link_config: Option<BusinessCollectLinkConfig>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize, ToSchema)]
|
||||
@ -186,6 +190,10 @@ pub struct MerchantAccountUpdate {
|
||||
/// To unset this field, pass an empty string
|
||||
#[schema(max_length = 64)]
|
||||
pub default_profile: Option<String>,
|
||||
|
||||
/// Default payment method collect link config
|
||||
#[schema(value_type = Option<BusinessCollectLinkConfig>)]
|
||||
pub pm_collect_link_config: Option<BusinessCollectLinkConfig>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, ToSchema, Serialize)]
|
||||
@ -277,6 +285,10 @@ pub struct MerchantAccountResponse {
|
||||
/// Used to indicate the status of the recon module for a merchant account
|
||||
#[schema(value_type = ReconStatus, example = "not_requested")]
|
||||
pub recon_status: enums::ReconStatus,
|
||||
|
||||
/// Default payment method collect link config
|
||||
#[schema(value_type = Option<BusinessCollectLinkConfig>)]
|
||||
pub pm_collect_link_config: Option<BusinessCollectLinkConfig>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, ToSchema, Serialize)]
|
||||
@ -944,6 +956,10 @@ pub struct BusinessProfileCreate {
|
||||
/// initiated transaction) based on the routing rules.
|
||||
/// If set to `false`, MIT will go through the same connector as the CIT.
|
||||
pub is_connector_agnostic_mit_enabled: Option<bool>,
|
||||
|
||||
/// Default payout link config
|
||||
#[schema(value_type = Option<BusinessPayoutLinkConfig>)]
|
||||
pub payout_link_config: Option<BusinessPayoutLinkConfig>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, ToSchema, Serialize)]
|
||||
@ -1028,6 +1044,10 @@ pub struct BusinessProfileResponse {
|
||||
/// initiated transaction) based on the routing rules.
|
||||
/// If set to `false`, MIT will go through the same connector as the CIT.
|
||||
pub is_connector_agnostic_mit_enabled: Option<bool>,
|
||||
|
||||
/// Default payout link config
|
||||
#[schema(value_type = Option<BusinessPayoutLinkConfig>)]
|
||||
pub payout_link_config: Option<BusinessPayoutLinkConfig>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, ToSchema, Serialize)]
|
||||
@ -1104,6 +1124,35 @@ pub struct BusinessProfileUpdate {
|
||||
/// initiated transaction) based on the routing rules.
|
||||
/// If set to `false`, MIT will go through the same connector as the CIT.
|
||||
pub is_connector_agnostic_mit_enabled: Option<bool>,
|
||||
|
||||
/// Default payout link config
|
||||
#[schema(value_type = Option<BusinessPayoutLinkConfig>)]
|
||||
pub payout_link_config: Option<BusinessPayoutLinkConfig>,
|
||||
}
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, ToSchema)]
|
||||
pub struct BusinessCollectLinkConfig {
|
||||
#[serde(flatten)]
|
||||
pub config: BusinessGenericLinkConfig,
|
||||
|
||||
/// List of payment methods shown on collect UI
|
||||
#[schema(value_type = Vec<EnabledPaymentMethod>, example = r#"[{"payment_method": "bank_transfer", "payment_method_types": ["ach", "bacs", "sepa"]}]"#)]
|
||||
pub enabled_payment_methods: Vec<link_utils::EnabledPaymentMethod>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, ToSchema)]
|
||||
pub struct BusinessPayoutLinkConfig {
|
||||
#[serde(flatten)]
|
||||
pub config: BusinessGenericLinkConfig,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, ToSchema)]
|
||||
pub struct BusinessGenericLinkConfig {
|
||||
/// Custom domain name to be used for hosting the link
|
||||
pub domain_name: Option<String>,
|
||||
|
||||
#[serde(flatten)]
|
||||
#[schema(value_type = GenericLinkUiConfig)]
|
||||
pub ui_config: link_utils::GenericLinkUiConfig,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize, PartialEq, ToSchema)]
|
||||
|
||||
Reference in New Issue
Block a user