diff --git a/crates/connector_configs/src/connector.rs b/crates/connector_configs/src/connector.rs index 84e7398f61c..517a6cfad4f 100644 --- a/crates/connector_configs/src/connector.rs +++ b/crates/connector_configs/src/connector.rs @@ -6,32 +6,45 @@ use api_models::{ enums::{AuthenticationConnectors, Connector, PmAuthConnectors, TaxConnectors}, payments, }; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; use toml; use crate::common_config::{CardProvider, InputData, Provider, ZenApplePay}; -#[derive(Default, Debug, Clone, serde::Serialize, serde::Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] +pub struct PayloadCurrencyAuthKeyType { + pub api_key: String, + pub processing_account_id: String, +} + +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct Classic { pub password_classic: String, pub username_classic: String, pub merchant_id_classic: String, } -#[derive(Default, Debug, Clone, serde::Serialize, serde::Deserialize)] +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub struct Evoucher { pub password_evoucher: String, pub username_evoucher: String, pub merchant_id_evoucher: String, } -#[derive(Default, Debug, Clone, serde::Serialize, serde::Deserialize)] -pub struct CurrencyAuthKeyType { +#[derive(Default, Debug, Clone, Serialize, Deserialize)] +pub struct CashtoCodeCurrencyAuthKeyType { pub classic: Classic, pub evoucher: Evoucher, } -#[derive(Default, Debug, Clone, serde::Serialize, serde::Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(untagged)] +pub enum CurrencyAuthValue { + CashtoCode(CashtoCodeCurrencyAuthKeyType), + Payload(PayloadCurrencyAuthKeyType), +} + +#[derive(Default, Debug, Clone, Serialize, Deserialize)] pub enum ConnectorAuthType { HeaderKey { api_key: String, @@ -52,7 +65,7 @@ pub enum ConnectorAuthType { key2: String, }, CurrencyAuthKey { - auth_key_map: HashMap, + auth_key_map: HashMap, }, CertificateAuth { certificate: String, @@ -63,7 +76,7 @@ pub enum ConnectorAuthType { } #[serde_with::skip_serializing_none] -#[derive(Debug, Deserialize, serde::Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone)] #[serde(untagged)] pub enum ApplePayTomlConfig { Standard(Box), @@ -71,7 +84,7 @@ pub enum ApplePayTomlConfig { } #[serde_with::skip_serializing_none] -#[derive(Debug, Clone, serde::Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub enum KlarnaEndpoint { Europe, NorthAmerica, @@ -79,7 +92,7 @@ pub enum KlarnaEndpoint { } #[serde_with::skip_serializing_none] -#[derive(Debug, Deserialize, serde::Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone)] pub struct ConfigMerchantAdditionalDetails { pub open_banking_recipient_data: Option, pub account_data: Option, @@ -96,7 +109,7 @@ pub struct ConfigMerchantAdditionalDetails { } #[serde_with::skip_serializing_none] -#[derive(Debug, Deserialize, serde::Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone)] pub struct ConfigMetadata { pub merchant_config_currency: Option, pub merchant_account_id: Option, @@ -136,7 +149,7 @@ pub struct ConfigMetadata { } #[serde_with::skip_serializing_none] -#[derive(Debug, Deserialize, serde::Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone)] pub struct ConnectorWalletDetailsConfig { pub samsung_pay: Option>, pub paze: Option>, @@ -144,7 +157,7 @@ pub struct ConnectorWalletDetailsConfig { } #[serde_with::skip_serializing_none] -#[derive(Debug, Deserialize, serde::Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone)] pub struct ConnectorTomlConfig { pub connector_auth: Option, pub connector_webhook_details: Option, @@ -169,7 +182,7 @@ pub struct ConnectorTomlConfig { pub real_time_payment: Option>, } #[serde_with::skip_serializing_none] -#[derive(Debug, Deserialize, serde::Serialize, Clone)] +#[derive(Debug, Deserialize, Serialize, Clone)] pub struct ConnectorConfig { pub authipay: Option, pub juspaythreedsserver: Option, diff --git a/crates/connector_configs/toml/development.toml b/crates/connector_configs/toml/development.toml index 4942bc6af78..50290882cd8 100644 --- a/crates/connector_configs/toml/development.toml +++ b/crates/connector_configs/toml/development.toml @@ -6416,9 +6416,13 @@ type="Text" [[payload.debit]] payment_method_type = "Visa" -[payload.connector_auth.HeaderKey] -api_key="API Key" - +[payload.connector_auth.CurrencyAuthKey.auth_key_map.USD] +processing_account_id = "processing_account_id" +api_key = "API Key" +[payload.connector_auth.CurrencyAuthKey.auth_key_map.CAD] +processing_account_id = "processing_account_id" +api_key = "API Key" + [silverflow] [[silverflow.credit]] payment_method_type = "Mastercard" diff --git a/crates/connector_configs/toml/production.toml b/crates/connector_configs/toml/production.toml index 90053b8dc35..509ea1608a1 100644 --- a/crates/connector_configs/toml/production.toml +++ b/crates/connector_configs/toml/production.toml @@ -5029,9 +5029,13 @@ payment_method_type = "Mastercard" [[payload.debit]] payment_method_type = "Visa" -[payload.connector_auth.HeaderKey] -api_key="API Key" - +[payload.connector_auth.CurrencyAuthKey.auth_key_map.USD] +processing_account_id = "processing_account_id" +api_key = "API Key" +[payload.connector_auth.CurrencyAuthKey.auth_key_map.CAD] +processing_account_id = "processing_account_id" +api_key = "API Key" + [silverflow] [[silverflow.credit]] payment_method_type = "Mastercard" diff --git a/crates/connector_configs/toml/sandbox.toml b/crates/connector_configs/toml/sandbox.toml index cf0ea2a9061..ff6a076ae37 100644 --- a/crates/connector_configs/toml/sandbox.toml +++ b/crates/connector_configs/toml/sandbox.toml @@ -6397,9 +6397,13 @@ payment_method_type = "Mastercard" [[payload.debit]] payment_method_type = "Visa" -[payload.connector_auth.HeaderKey] -api_key="API Key" - +[payload.connector_auth.CurrencyAuthKey.auth_key_map.USD] +processing_account_id = "processing_account_id" +api_key = "API Key" +[payload.connector_auth.CurrencyAuthKey.auth_key_map.CAD] +processing_account_id = "processing_account_id" +api_key = "API Key" + [silverflow] [[silverflow.credit]] payment_method_type = "Mastercard"