use std::env; use router::types::ConnectorAuthType; use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct ConnectorAuthentication { pub aci: Option, pub adyen: Option, pub adyen_uk: Option, pub airwallex: Option, pub authorizedotnet: Option, pub bambora: Option, pub bitpay: Option, pub bluesnap: Option, pub checkout: Option, pub coinbase: Option, pub cybersource: Option, pub dlocal: Option, #[cfg(feature = "dummy_connector")] pub dummyconnector: Option, pub fiserv: Option, pub forte: Option, pub globalpay: Option, pub iatapay: Option, pub mollie: Option, pub multisafepay: Option, pub nexinets: Option, pub noon: Option, pub nmi: Option, pub nuvei: Option, pub opennode: Option, pub payeezy: Option, pub paypal: Option, pub payu: Option, pub rapyd: Option, pub shift4: Option, pub stripe: Option, pub stripe_au: Option, pub stripe_uk: Option, pub trustpay: Option, pub worldpay: Option, pub worldline: Option, pub zen: Option, pub automation_configs: Option, } impl ConnectorAuthentication { #[allow(clippy::expect_used)] pub(crate) fn new() -> Self { // Do `export CONNECTOR_AUTH_FILE_PATH="/hyperswitch/crates/router/tests/connectors/sample_auth.toml"` // before running tests let path = env::var("CONNECTOR_AUTH_FILE_PATH") .expect("connector authentication file path not set"); toml::from_str( &std::fs::read_to_string(path).expect("connector authentication config file not found"), ) .expect("Failed to read connector authentication config file") } } #[derive(Debug, Serialize, Deserialize, Clone)] pub struct HeaderKey { pub api_key: String, } impl From for ConnectorAuthType { fn from(key: HeaderKey) -> Self { Self::HeaderKey { api_key: key.api_key, } } } #[derive(Debug, Serialize, Deserialize, Clone)] pub struct BodyKey { pub api_key: String, pub key1: String, } impl From for ConnectorAuthType { fn from(key: BodyKey) -> Self { Self::BodyKey { api_key: key.api_key, key1: key.key1, } } } #[derive(Debug, Serialize, Deserialize, Clone)] pub struct SignatureKey { pub api_key: String, pub key1: String, pub api_secret: String, } impl From for ConnectorAuthType { fn from(key: SignatureKey) -> Self { Self::SignatureKey { api_key: key.api_key, key1: key.key1, api_secret: key.api_secret, } } } #[derive(Debug, Serialize, Deserialize, Clone)] pub struct MultiAuthKey { pub api_key: String, pub key1: String, pub api_secret: String, pub key2: String, } impl From for ConnectorAuthType { fn from(key: MultiAuthKey) -> Self { Self::MultiAuthKey { api_key: key.api_key, key1: key.key1, api_secret: key.api_secret, key2: key.key2, } } } #[derive(Debug, Serialize, Deserialize, Clone)] pub struct AutomationConfigs { pub hs_base_url: Option, pub hs_api_key: Option, pub hs_test_browser: Option, pub chrome_profile_path: Option, pub firefox_profile_path: Option, pub pypl_email: Option, pub pypl_pass: Option, pub gmail_email: Option, pub gmail_pass: Option, pub configs_url: Option, pub stripe_pub_key: Option, pub testcases_path: Option, pub run_minimum_steps: Option, }