mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-01 11:06:50 +08:00
feat(pm_auth): Added pm_auth_config to merchant_connector_account (#2183)
Co-authored-by: Sarthak Soni <sarthak.soni@juspay.in>
This commit is contained in:
@ -633,6 +633,8 @@ pub struct MerchantConnectorCreate {
|
|||||||
pub connector_webhook_details: Option<MerchantConnectorWebhookDetails>,
|
pub connector_webhook_details: Option<MerchantConnectorWebhookDetails>,
|
||||||
/// Identifier for the business profile, if not provided default will be chosen from merchant account
|
/// Identifier for the business profile, if not provided default will be chosen from merchant account
|
||||||
pub profile_id: Option<String>,
|
pub profile_id: Option<String>,
|
||||||
|
|
||||||
|
pub pm_auth_config: Option<serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
|
#[derive(Debug, Clone, Serialize, Deserialize, ToSchema)]
|
||||||
@ -736,6 +738,8 @@ pub struct MerchantConnectorResponse {
|
|||||||
pub profile_id: Option<String>,
|
pub profile_id: Option<String>,
|
||||||
/// identifier for the verified domains of a particular connector account
|
/// identifier for the verified domains of a particular connector account
|
||||||
pub applepay_verified_domains: Option<Vec<String>>,
|
pub applepay_verified_domains: Option<Vec<String>>,
|
||||||
|
|
||||||
|
pub pm_auth_config: Option<serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Create a new Merchant Connector for the merchant account. The connector could be a payment processor / facilitator / acquirer or specialized services like Fraud / Accounting etc."
|
/// Create a new Merchant Connector for the merchant account. The connector could be a payment processor / facilitator / acquirer or specialized services like Fraud / Accounting etc."
|
||||||
@ -805,6 +809,8 @@ pub struct MerchantConnectorUpdate {
|
|||||||
}
|
}
|
||||||
}))]
|
}))]
|
||||||
pub connector_webhook_details: Option<MerchantConnectorWebhookDetails>,
|
pub connector_webhook_details: Option<MerchantConnectorWebhookDetails>,
|
||||||
|
|
||||||
|
pub pm_auth_config: Option<serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
///Details of FrmConfigs are mentioned here... it should be passed in payment connector create api call, and stored in merchant_connector_table
|
///Details of FrmConfigs are mentioned here... it should be passed in payment connector create api call, and stored in merchant_connector_table
|
||||||
|
|||||||
@ -208,6 +208,8 @@ pub enum ConnectorType {
|
|||||||
NonBankingFinance,
|
NonBankingFinance,
|
||||||
/// Acquirers, Gateways etc
|
/// Acquirers, Gateways etc
|
||||||
PayoutProcessor,
|
PayoutProcessor,
|
||||||
|
/// PaymentMethods Auth Services
|
||||||
|
PaymentMethodAuth,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(clippy::upper_case_acronyms)]
|
#[allow(clippy::upper_case_acronyms)]
|
||||||
|
|||||||
@ -41,6 +41,7 @@ pub struct MerchantConnectorAccount {
|
|||||||
pub profile_id: Option<String>,
|
pub profile_id: Option<String>,
|
||||||
#[diesel(deserialize_as = super::OptionalDieselArray<String>)]
|
#[diesel(deserialize_as = super::OptionalDieselArray<String>)]
|
||||||
pub applepay_verified_domains: Option<Vec<String>>,
|
pub applepay_verified_domains: Option<Vec<String>>,
|
||||||
|
pub pm_auth_config: Option<serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Insertable, router_derive::DebugAsDisplay)]
|
#[derive(Clone, Debug, Insertable, router_derive::DebugAsDisplay)]
|
||||||
@ -68,6 +69,7 @@ pub struct MerchantConnectorAccountNew {
|
|||||||
pub profile_id: Option<String>,
|
pub profile_id: Option<String>,
|
||||||
#[diesel(deserialize_as = super::OptionalDieselArray<String>)]
|
#[diesel(deserialize_as = super::OptionalDieselArray<String>)]
|
||||||
pub applepay_verified_domains: Option<Vec<String>>,
|
pub applepay_verified_domains: Option<Vec<String>>,
|
||||||
|
pub pm_auth_config: Option<serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, AsChangeset, router_derive::DebugAsDisplay)]
|
#[derive(Clone, Debug, AsChangeset, router_derive::DebugAsDisplay)]
|
||||||
@ -89,6 +91,7 @@ pub struct MerchantConnectorAccountUpdateInternal {
|
|||||||
pub frm_config: Option<Vec<Secret<serde_json::Value>>>,
|
pub frm_config: Option<Vec<Secret<serde_json::Value>>>,
|
||||||
#[diesel(deserialize_as = super::OptionalDieselArray<String>)]
|
#[diesel(deserialize_as = super::OptionalDieselArray<String>)]
|
||||||
pub applepay_verified_domains: Option<Vec<String>>,
|
pub applepay_verified_domains: Option<Vec<String>>,
|
||||||
|
pub pm_auth_config: Option<serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MerchantConnectorAccountUpdateInternal {
|
impl MerchantConnectorAccountUpdateInternal {
|
||||||
@ -110,6 +113,7 @@ impl MerchantConnectorAccountUpdateInternal {
|
|||||||
payment_methods_enabled: self.payment_methods_enabled,
|
payment_methods_enabled: self.payment_methods_enabled,
|
||||||
frm_config: self.frm_config,
|
frm_config: self.frm_config,
|
||||||
modified_at: self.modified_at.unwrap_or(source.modified_at),
|
modified_at: self.modified_at.unwrap_or(source.modified_at),
|
||||||
|
pm_auth_config: self.pm_auth_config,
|
||||||
|
|
||||||
..source
|
..source
|
||||||
}
|
}
|
||||||
|
|||||||
@ -476,6 +476,7 @@ diesel::table! {
|
|||||||
#[max_length = 64]
|
#[max_length = 64]
|
||||||
profile_id -> Nullable<Varchar>,
|
profile_id -> Nullable<Varchar>,
|
||||||
applepay_verified_domains -> Nullable<Array<Nullable<Text>>>,
|
applepay_verified_domains -> Nullable<Array<Nullable<Text>>>,
|
||||||
|
pm_auth_config -> Nullable<Jsonb>,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -682,6 +682,7 @@ pub async fn create_payment_connector(
|
|||||||
},
|
},
|
||||||
profile_id: Some(profile_id.clone()),
|
profile_id: Some(profile_id.clone()),
|
||||||
applepay_verified_domains: None,
|
applepay_verified_domains: None,
|
||||||
|
pm_auth_config: req.pm_auth_config.clone(),
|
||||||
};
|
};
|
||||||
|
|
||||||
let mca = state
|
let mca = state
|
||||||
@ -847,6 +848,7 @@ pub async fn update_payment_connector(
|
|||||||
None => None,
|
None => None,
|
||||||
},
|
},
|
||||||
applepay_verified_domains: None,
|
applepay_verified_domains: None,
|
||||||
|
pm_auth_config: req.pm_auth_config,
|
||||||
};
|
};
|
||||||
|
|
||||||
let updated_mca = db
|
let updated_mca = db
|
||||||
|
|||||||
@ -58,6 +58,7 @@ pub async fn check_existence_and_add_domain_to_db(
|
|||||||
frm_configs: None,
|
frm_configs: None,
|
||||||
connector_webhook_details: None,
|
connector_webhook_details: None,
|
||||||
applepay_verified_domains: Some(already_verified_domains.clone()),
|
applepay_verified_domains: Some(already_verified_domains.clone()),
|
||||||
|
pm_auth_config: None,
|
||||||
};
|
};
|
||||||
state
|
state
|
||||||
.store
|
.store
|
||||||
|
|||||||
@ -650,6 +650,7 @@ impl MerchantConnectorAccountInterface for MockDb {
|
|||||||
connector_webhook_details: t.connector_webhook_details,
|
connector_webhook_details: t.connector_webhook_details,
|
||||||
profile_id: t.profile_id,
|
profile_id: t.profile_id,
|
||||||
applepay_verified_domains: t.applepay_verified_domains,
|
applepay_verified_domains: t.applepay_verified_domains,
|
||||||
|
pm_auth_config: t.pm_auth_config,
|
||||||
};
|
};
|
||||||
accounts.push(account.clone());
|
accounts.push(account.clone());
|
||||||
account
|
account
|
||||||
@ -845,6 +846,7 @@ mod merchant_connector_account_cache_tests {
|
|||||||
connector_webhook_details: None,
|
connector_webhook_details: None,
|
||||||
profile_id: Some(profile_id.to_string()),
|
profile_id: Some(profile_id.to_string()),
|
||||||
applepay_verified_domains: None,
|
applepay_verified_domains: None,
|
||||||
|
pm_auth_config: None,
|
||||||
};
|
};
|
||||||
|
|
||||||
db.insert_merchant_connector_account(mca.clone(), &merchant_key)
|
db.insert_merchant_connector_account(mca.clone(), &merchant_key)
|
||||||
|
|||||||
@ -34,6 +34,7 @@ pub struct MerchantConnectorAccount {
|
|||||||
pub connector_webhook_details: Option<pii::SecretSerdeValue>,
|
pub connector_webhook_details: Option<pii::SecretSerdeValue>,
|
||||||
pub profile_id: Option<String>,
|
pub profile_id: Option<String>,
|
||||||
pub applepay_verified_domains: Option<Vec<String>>,
|
pub applepay_verified_domains: Option<Vec<String>>,
|
||||||
|
pub pm_auth_config: Option<serde_json::Value>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
@ -51,6 +52,7 @@ pub enum MerchantConnectorAccountUpdate {
|
|||||||
frm_configs: Option<Vec<Secret<serde_json::Value>>>,
|
frm_configs: Option<Vec<Secret<serde_json::Value>>>,
|
||||||
connector_webhook_details: Option<pii::SecretSerdeValue>,
|
connector_webhook_details: Option<pii::SecretSerdeValue>,
|
||||||
applepay_verified_domains: Option<Vec<String>>,
|
applepay_verified_domains: Option<Vec<String>>,
|
||||||
|
pm_auth_config: Option<serde_json::Value>,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,6 +87,7 @@ impl behaviour::Conversion for MerchantConnectorAccount {
|
|||||||
connector_webhook_details: self.connector_webhook_details,
|
connector_webhook_details: self.connector_webhook_details,
|
||||||
profile_id: self.profile_id,
|
profile_id: self.profile_id,
|
||||||
applepay_verified_domains: self.applepay_verified_domains,
|
applepay_verified_domains: self.applepay_verified_domains,
|
||||||
|
pm_auth_config: self.pm_auth_config,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -123,6 +126,7 @@ impl behaviour::Conversion for MerchantConnectorAccount {
|
|||||||
connector_webhook_details: other.connector_webhook_details,
|
connector_webhook_details: other.connector_webhook_details,
|
||||||
profile_id: other.profile_id,
|
profile_id: other.profile_id,
|
||||||
applepay_verified_domains: other.applepay_verified_domains,
|
applepay_verified_domains: other.applepay_verified_domains,
|
||||||
|
pm_auth_config: other.pm_auth_config,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -149,6 +153,7 @@ impl behaviour::Conversion for MerchantConnectorAccount {
|
|||||||
connector_webhook_details: self.connector_webhook_details,
|
connector_webhook_details: self.connector_webhook_details,
|
||||||
profile_id: self.profile_id,
|
profile_id: self.profile_id,
|
||||||
applepay_verified_domains: self.applepay_verified_domains,
|
applepay_verified_domains: self.applepay_verified_domains,
|
||||||
|
pm_auth_config: self.pm_auth_config,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -169,6 +174,7 @@ impl From<MerchantConnectorAccountUpdate> for MerchantConnectorAccountUpdateInte
|
|||||||
frm_configs,
|
frm_configs,
|
||||||
connector_webhook_details,
|
connector_webhook_details,
|
||||||
applepay_verified_domains,
|
applepay_verified_domains,
|
||||||
|
pm_auth_config,
|
||||||
} => Self {
|
} => Self {
|
||||||
merchant_id,
|
merchant_id,
|
||||||
connector_type,
|
connector_type,
|
||||||
@ -184,6 +190,7 @@ impl From<MerchantConnectorAccountUpdate> for MerchantConnectorAccountUpdateInte
|
|||||||
modified_at: Some(common_utils::date_time::now()),
|
modified_at: Some(common_utils::date_time::now()),
|
||||||
connector_webhook_details,
|
connector_webhook_details,
|
||||||
applepay_verified_domains,
|
applepay_verified_domains,
|
||||||
|
pm_auth_config,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -668,6 +668,7 @@ impl TryFrom<domain::MerchantConnectorAccount> for api_models::admin::MerchantCo
|
|||||||
.transpose()?,
|
.transpose()?,
|
||||||
profile_id: item.profile_id,
|
profile_id: item.profile_id,
|
||||||
applepay_verified_domains: item.applepay_verified_domains,
|
applepay_verified_domains: item.applepay_verified_domains,
|
||||||
|
pm_auth_config: item.pm_auth_config,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,2 @@
|
|||||||
|
-- This file should undo anything in `up.sql`
|
||||||
|
ALTER TABLE merchant_connector_account DROP COLUMN IF EXISTS pm_auth_config;
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
-- Your SQL goes here
|
||||||
|
ALTER TABLE merchant_connector_account ADD COLUMN IF NOT EXISTS pm_auth_config JSONB DEFAULT NULL;
|
||||||
|
ALTER TYPE "ConnectorType" ADD VALUE 'payment_method_auth';
|
||||||
@ -3922,7 +3922,8 @@
|
|||||||
"networks",
|
"networks",
|
||||||
"banking_entities",
|
"banking_entities",
|
||||||
"non_banking_finance",
|
"non_banking_finance",
|
||||||
"payout_processor"
|
"payout_processor",
|
||||||
|
"payment_method_auth"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"CountryAlpha2": {
|
"CountryAlpha2": {
|
||||||
@ -6522,6 +6523,9 @@
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"description": "Identifier for the business profile, if not provided default will be chosen from merchant account",
|
"description": "Identifier for the business profile, if not provided default will be chosen from merchant account",
|
||||||
"nullable": true
|
"nullable": true
|
||||||
|
},
|
||||||
|
"pm_auth_config": {
|
||||||
|
"nullable": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -6746,6 +6750,9 @@
|
|||||||
},
|
},
|
||||||
"description": "identifier for the verified domains of a particular connector account",
|
"description": "identifier for the verified domains of a particular connector account",
|
||||||
"nullable": true
|
"nullable": true
|
||||||
|
},
|
||||||
|
"pm_auth_config": {
|
||||||
|
"nullable": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -6843,6 +6850,9 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"nullable": true
|
"nullable": true
|
||||||
|
},
|
||||||
|
"pm_auth_config": {
|
||||||
|
"nullable": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user