mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-01 19:42:27 +08:00
refactor(connector): Move connector mappings and endpoints to dedicated modules (#8562)
This commit is contained in:
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
@ -51,6 +51,9 @@ crates/api_models/src/connector_enums.rs @juspay/hyperswitch-connector
|
||||
crates/common_enums/src/connector_enums.rs @juspay/hyperswitch-connector
|
||||
crates/router/src/configs/defaults/payment_connector_required_fields.rs @juspay/hyperswitch-connector
|
||||
crates/hyperswitch_interfaces/src/configs.rs @juspay/hyperswitch-connector
|
||||
crates/hyperswitch_domain_models/src/connector_endpoints.rs @juspay/hyperswitch-connector
|
||||
crates/router/src/types/api/connector_mapping.rs @juspay/hyperswitch-connector
|
||||
crates/router/src/types/connector_transformers.rs @juspay/hyperswitch-connector
|
||||
|
||||
crates/router/src/compatibility/ @juspay/hyperswitch-compatibility
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ use common_utils::{
|
||||
};
|
||||
use error_stack::ResultExt;
|
||||
use hyperswitch_domain_models::{
|
||||
configs::Connectors,
|
||||
connector_endpoints::Connectors,
|
||||
router_data::{AccessToken, ConnectorAuthType, ErrorResponse, RouterData},
|
||||
router_flow_types::{
|
||||
access_token_auth::AccessTokenAuth,
|
||||
|
||||
@ -6,7 +6,7 @@ pub mod business_profile;
|
||||
pub mod callback_mapper;
|
||||
pub mod card_testing_guard_data;
|
||||
pub mod cards_info;
|
||||
pub mod configs;
|
||||
pub mod connector_endpoints;
|
||||
pub mod consts;
|
||||
pub mod customer;
|
||||
pub mod disputes;
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
use common_enums::enums;
|
||||
|
||||
use crate::configs;
|
||||
use crate::connector_endpoints;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct BillingConnectorPaymentsSyncRequest {
|
||||
/// unique id for making billing connector psync call
|
||||
pub billing_connector_psync_id: String,
|
||||
/// connector params of the connector
|
||||
pub connector_params: configs::ConnectorParams,
|
||||
pub connector_params: connector_endpoints::ConnectorParams,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
@ -18,7 +18,7 @@ pub struct RevenueRecoveryRecordBackRequest {
|
||||
pub payment_method_type: Option<common_enums::PaymentMethodType>,
|
||||
pub attempt_status: common_enums::AttemptStatus,
|
||||
pub connector_transaction_id: Option<common_utils::types::ConnectorTransactionId>,
|
||||
pub connector_params: configs::ConnectorParams,
|
||||
pub connector_params: connector_endpoints::ConnectorParams,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
@ -26,5 +26,5 @@ pub struct BillingConnectorInvoiceSyncRequest {
|
||||
/// Invoice id
|
||||
pub billing_connector_invoice_id: String,
|
||||
/// connector params of the connector
|
||||
pub connector_params: configs::ConnectorParams,
|
||||
pub connector_params: connector_endpoints::ConnectorParams,
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ use common_utils::{
|
||||
};
|
||||
use error_stack::ResultExt;
|
||||
use hyperswitch_domain_models::{
|
||||
configs::Connectors,
|
||||
connector_endpoints::Connectors,
|
||||
errors::api_error_response::ApiErrorResponse,
|
||||
payment_method_data::PaymentMethodData,
|
||||
router_data::{AccessToken, ConnectorAuthType, ErrorResponse, RouterData},
|
||||
|
||||
@ -1 +1 @@
|
||||
pub use hyperswitch_domain_models::configs::Connectors;
|
||||
pub use hyperswitch_domain_models::connector_endpoints::Connectors;
|
||||
|
||||
@ -3,7 +3,7 @@ use common_enums::PaymentAction;
|
||||
use common_utils::{crypto, errors::CustomResult, request::Request};
|
||||
use hyperswitch_domain_models::{
|
||||
api::ApplicationResponse,
|
||||
configs::Connectors,
|
||||
connector_endpoints::Connectors,
|
||||
errors::api_error_response::ApiErrorResponse,
|
||||
payment_method_data::PaymentMethodData,
|
||||
router_data::{ConnectorAuthType, ErrorResponse, RouterData},
|
||||
|
||||
@ -780,7 +780,8 @@ pub fn construct_recovery_record_back_router_data(
|
||||
.change_context(errors::RecoveryError::RecordBackToBillingConnectorFailed)
|
||||
.attach_printable("Cannot find connector from the connector_name")?;
|
||||
|
||||
let connector_params = hyperswitch_domain_models::configs::Connectors::get_connector_params(
|
||||
let connector_params =
|
||||
hyperswitch_domain_models::connector_endpoints::Connectors::get_connector_params(
|
||||
&state.conf.connectors,
|
||||
connector,
|
||||
)
|
||||
|
||||
@ -977,7 +977,7 @@ impl BillingConnectorPaymentsSyncFlowRouterData {
|
||||
.attach_printable("Cannot find connector from the connector_name")?;
|
||||
|
||||
let connector_params =
|
||||
hyperswitch_domain_models::configs::Connectors::get_connector_params(
|
||||
hyperswitch_domain_models::connector_endpoints::Connectors::get_connector_params(
|
||||
&state.conf.connectors,
|
||||
connector,
|
||||
)
|
||||
@ -1143,7 +1143,7 @@ impl BillingConnectorInvoiceSyncFlowRouterData {
|
||||
.attach_printable("Cannot find connector from the connector_name")?;
|
||||
|
||||
let connector_params =
|
||||
hyperswitch_domain_models::configs::Connectors::get_connector_params(
|
||||
hyperswitch_domain_models::connector_endpoints::Connectors::get_connector_params(
|
||||
&state.conf.connectors,
|
||||
connector,
|
||||
)
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
|
||||
pub mod api;
|
||||
pub mod authentication;
|
||||
pub mod connector_transformers;
|
||||
pub mod domain;
|
||||
#[cfg(feature = "frm")]
|
||||
pub mod fraud_check;
|
||||
|
||||
@ -27,6 +27,7 @@ pub mod webhook_events;
|
||||
pub mod webhooks;
|
||||
|
||||
pub mod authentication_v2;
|
||||
pub mod connector_mapping;
|
||||
pub mod disputes_v2;
|
||||
pub mod files_v2;
|
||||
#[cfg(feature = "frm")]
|
||||
@ -40,7 +41,7 @@ use std::{fmt::Debug, str::FromStr};
|
||||
|
||||
use api_models::routing::{self as api_routing, RoutableConnectorChoice};
|
||||
use common_enums::RoutableConnectors;
|
||||
use error_stack::{report, ResultExt};
|
||||
use error_stack::ResultExt;
|
||||
pub use hyperswitch_domain_models::router_flow_types::{
|
||||
access_token_auth::AccessTokenAuth, mandate_revoke::MandateRevoke,
|
||||
webhooks::VerifyWebhookSource,
|
||||
@ -75,13 +76,12 @@ pub use self::fraud_check::*;
|
||||
#[cfg(feature = "payouts")]
|
||||
pub use self::payouts::*;
|
||||
pub use self::{
|
||||
admin::*, api_keys::*, authentication::*, configs::*, customers::*, disputes::*, files::*,
|
||||
payment_link::*, payment_methods::*, payments::*, poll::*, refunds::*, refunds_v2::*,
|
||||
webhooks::*,
|
||||
admin::*, api_keys::*, authentication::*, configs::*, connector_mapping::*, customers::*,
|
||||
disputes::*, files::*, payment_link::*, payment_methods::*, payments::*, poll::*, refunds::*,
|
||||
refunds_v2::*, webhooks::*,
|
||||
};
|
||||
use super::transformers::ForeignTryFrom;
|
||||
use crate::{
|
||||
configs::settings::Connectors,
|
||||
connector, consts,
|
||||
core::{
|
||||
errors::{self, CustomResult},
|
||||
@ -99,29 +99,6 @@ pub enum ConnectorCallType {
|
||||
Skip,
|
||||
}
|
||||
|
||||
// Normal flow will call the connector and follow the flow specific operations (capture, authorize)
|
||||
// SessionTokenFromMetadata will avoid calling the connector instead create the session token ( for sdk )
|
||||
#[derive(Clone, Eq, PartialEq, Debug)]
|
||||
pub enum GetToken {
|
||||
GpayMetadata,
|
||||
SamsungPayMetadata,
|
||||
ApplePayMetadata,
|
||||
PaypalSdkMetadata,
|
||||
PazeMetadata,
|
||||
Connector,
|
||||
}
|
||||
|
||||
/// Routing algorithm will output merchant connector identifier instead of connector name
|
||||
/// In order to support backwards compatibility for older routing algorithms and merchant accounts
|
||||
/// the support for connector name is retained
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct ConnectorData {
|
||||
pub connector: ConnectorEnum,
|
||||
pub connector_name: types::Connector,
|
||||
pub get_token: GetToken,
|
||||
pub merchant_connector_id: Option<common_utils::id_type::MerchantConnectorAccountId>,
|
||||
}
|
||||
|
||||
impl From<ConnectorData> for ConnectorRoutingData {
|
||||
fn from(connector_data: ConnectorData) -> Self {
|
||||
Self {
|
||||
@ -257,409 +234,6 @@ pub enum ConnectorChoice {
|
||||
Decide,
|
||||
}
|
||||
|
||||
impl ConnectorData {
|
||||
pub fn get_connector_by_name(
|
||||
_connectors: &Connectors,
|
||||
name: &str,
|
||||
connector_type: GetToken,
|
||||
connector_id: Option<common_utils::id_type::MerchantConnectorAccountId>,
|
||||
) -> CustomResult<Self, errors::ApiErrorResponse> {
|
||||
let connector = Self::convert_connector(name)?;
|
||||
let connector_name = api_enums::Connector::from_str(name)
|
||||
.change_context(errors::ConnectorError::InvalidConnectorName)
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable_lazy(|| format!("unable to parse connector name {name}"))?;
|
||||
Ok(Self {
|
||||
connector,
|
||||
connector_name,
|
||||
get_token: connector_type,
|
||||
merchant_connector_id: connector_id,
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(feature = "payouts")]
|
||||
pub fn get_payout_connector_by_name(
|
||||
_connectors: &Connectors,
|
||||
name: &str,
|
||||
connector_type: GetToken,
|
||||
connector_id: Option<common_utils::id_type::MerchantConnectorAccountId>,
|
||||
) -> CustomResult<Self, errors::ApiErrorResponse> {
|
||||
let connector = Self::convert_connector(name)?;
|
||||
let payout_connector_name = api_enums::PayoutConnectors::from_str(name)
|
||||
.change_context(errors::ConnectorError::InvalidConnectorName)
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable_lazy(|| format!("unable to parse payout connector name {name}"))?;
|
||||
let connector_name = api_enums::Connector::from(payout_connector_name);
|
||||
Ok(Self {
|
||||
connector,
|
||||
connector_name,
|
||||
get_token: connector_type,
|
||||
merchant_connector_id: connector_id,
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
pub fn get_external_vault_connector_by_name(
|
||||
_connectors: &Connectors,
|
||||
connector: &api_enums::Connector,
|
||||
connector_type: GetToken,
|
||||
connector_id: Option<common_utils::id_type::MerchantConnectorAccountId>,
|
||||
) -> CustomResult<Self, errors::ApiErrorResponse> {
|
||||
let connector_enum = Self::convert_connector(&connector.to_string())?;
|
||||
let external_vault_connector_name =
|
||||
api_enums::VaultConnectors::from_str(&connector.to_string())
|
||||
.change_context(errors::ConnectorError::InvalidConnectorName)
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable_lazy(|| {
|
||||
format!("unable to parse external vault connector name {connector:?}")
|
||||
})?;
|
||||
let connector_name = api_enums::Connector::from(external_vault_connector_name);
|
||||
Ok(Self {
|
||||
connector: connector_enum,
|
||||
connector_name,
|
||||
get_token: connector_type,
|
||||
merchant_connector_id: connector_id,
|
||||
})
|
||||
}
|
||||
|
||||
pub fn convert_connector(
|
||||
connector_name: &str,
|
||||
) -> CustomResult<ConnectorEnum, errors::ApiErrorResponse> {
|
||||
match enums::Connector::from_str(connector_name) {
|
||||
Ok(name) => match name {
|
||||
enums::Connector::Aci => Ok(ConnectorEnum::Old(Box::new(connector::Aci::new()))),
|
||||
|
||||
enums::Connector::Authipay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Authipay::new())))
|
||||
}
|
||||
enums::Connector::Adyen => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Adyen::new())))
|
||||
}
|
||||
enums::Connector::Adyenplatform => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::Adyenplatform::new(),
|
||||
))),
|
||||
enums::Connector::Airwallex => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Airwallex::new())))
|
||||
}
|
||||
// enums::Connector::Amazonpay => {
|
||||
// Ok(ConnectorEnum::Old(Box::new(connector::Amazonpay)))
|
||||
// }
|
||||
enums::Connector::Archipel => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Archipel::new())))
|
||||
}
|
||||
enums::Connector::Authorizedotnet => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Authorizedotnet)))
|
||||
}
|
||||
enums::Connector::Bambora => Ok(ConnectorEnum::Old(Box::new(&connector::Bambora))),
|
||||
enums::Connector::Bamboraapac => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Bamboraapac::new())))
|
||||
}
|
||||
enums::Connector::Bankofamerica => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Bankofamerica)))
|
||||
}
|
||||
enums::Connector::Barclaycard => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Barclaycard)))
|
||||
}
|
||||
enums::Connector::Billwerk => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Billwerk::new())))
|
||||
}
|
||||
enums::Connector::Bitpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Bitpay::new())))
|
||||
}
|
||||
enums::Connector::Bluesnap => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Bluesnap::new())))
|
||||
}
|
||||
enums::Connector::Boku => Ok(ConnectorEnum::Old(Box::new(connector::Boku::new()))),
|
||||
enums::Connector::Braintree => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Braintree::new())))
|
||||
}
|
||||
enums::Connector::Cashtocode => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Cashtocode::new())))
|
||||
}
|
||||
enums::Connector::Celero => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Celero::new())))
|
||||
}
|
||||
enums::Connector::Chargebee => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Chargebee::new())))
|
||||
}
|
||||
// enums::Connector::Checkbook => {
|
||||
// Ok(ConnectorEnum::Old(Box::new(connector::Checkbook)))
|
||||
// }
|
||||
enums::Connector::Checkout => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Checkout::new())))
|
||||
}
|
||||
enums::Connector::Coinbase => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Coinbase)))
|
||||
}
|
||||
enums::Connector::Coingate => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Coingate::new())))
|
||||
}
|
||||
enums::Connector::Cryptopay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Cryptopay::new())))
|
||||
}
|
||||
enums::Connector::CtpMastercard => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::CtpMastercard)))
|
||||
}
|
||||
enums::Connector::CtpVisa => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::UnifiedAuthenticationService::new(),
|
||||
))),
|
||||
enums::Connector::Cybersource => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Cybersource::new())))
|
||||
}
|
||||
enums::Connector::Datatrans => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Datatrans::new())))
|
||||
}
|
||||
enums::Connector::Deutschebank => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Deutschebank::new())))
|
||||
}
|
||||
enums::Connector::Digitalvirgo => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Digitalvirgo::new())))
|
||||
}
|
||||
enums::Connector::Dlocal => Ok(ConnectorEnum::Old(Box::new(&connector::Dlocal))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector1 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<1>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector2 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<2>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector3 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<3>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector4 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<4>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector5 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<5>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector6 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<6>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector7 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<7>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyBillingConnector => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<8>,
|
||||
))),
|
||||
// enums::Connector::Dwolla => {
|
||||
// Ok(ConnectorEnum::Old(Box::new(connector::Dwolla::new())))
|
||||
// }
|
||||
enums::Connector::Ebanx => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Ebanx::new())))
|
||||
}
|
||||
enums::Connector::Elavon => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Elavon::new())))
|
||||
}
|
||||
enums::Connector::Facilitapay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Facilitapay::new())))
|
||||
}
|
||||
enums::Connector::Fiserv => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Fiserv::new())))
|
||||
}
|
||||
enums::Connector::Fiservemea => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Fiservemea::new())))
|
||||
}
|
||||
enums::Connector::Fiuu => Ok(ConnectorEnum::Old(Box::new(connector::Fiuu::new()))),
|
||||
enums::Connector::Forte => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Forte::new())))
|
||||
}
|
||||
enums::Connector::Getnet => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Getnet::new())))
|
||||
}
|
||||
enums::Connector::Globalpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Globalpay::new())))
|
||||
}
|
||||
enums::Connector::Globepay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Globepay::new())))
|
||||
}
|
||||
enums::Connector::Gocardless => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Gocardless)))
|
||||
}
|
||||
enums::Connector::Hipay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Hipay::new())))
|
||||
}
|
||||
enums::Connector::Helcim => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Helcim::new())))
|
||||
}
|
||||
enums::Connector::HyperswitchVault => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::HyperswitchVault)))
|
||||
}
|
||||
enums::Connector::Iatapay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Iatapay::new())))
|
||||
}
|
||||
enums::Connector::Inespay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Inespay::new())))
|
||||
}
|
||||
enums::Connector::Itaubank => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Itaubank::new())))
|
||||
}
|
||||
enums::Connector::Jpmorgan => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Jpmorgan::new())))
|
||||
}
|
||||
enums::Connector::Juspaythreedsserver => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::Juspaythreedsserver::new(),
|
||||
))),
|
||||
enums::Connector::Klarna => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Klarna::new())))
|
||||
}
|
||||
enums::Connector::Mollie => {
|
||||
// enums::Connector::Moneris => Ok(ConnectorEnum::Old(Box::new(connector::Moneris))),
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Mollie::new())))
|
||||
}
|
||||
enums::Connector::Moneris => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Moneris::new())))
|
||||
}
|
||||
enums::Connector::Nexixpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Nexixpay::new())))
|
||||
}
|
||||
enums::Connector::Nmi => Ok(ConnectorEnum::Old(Box::new(connector::Nmi::new()))),
|
||||
enums::Connector::Nomupay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Nomupay::new())))
|
||||
}
|
||||
enums::Connector::Noon => Ok(ConnectorEnum::Old(Box::new(connector::Noon::new()))),
|
||||
// enums::Connector::Nordea => Ok(ConnectorEnum::Old(Box::new(connector::Nordea::new()))),
|
||||
enums::Connector::Novalnet => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Novalnet::new())))
|
||||
}
|
||||
enums::Connector::Nuvei => Ok(ConnectorEnum::Old(Box::new(&connector::Nuvei))),
|
||||
enums::Connector::Opennode => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Opennode)))
|
||||
}
|
||||
enums::Connector::Paybox => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Paybox::new())))
|
||||
}
|
||||
// "payeezy" => Ok(ConnectorIntegrationEnum::Old(Box::new(&connector::Payeezy)), As psync and rsync are not supported by this connector, it is added as template code for future usage
|
||||
enums::Connector::Payload => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Payload::new())))
|
||||
}
|
||||
enums::Connector::Payme => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Payme::new())))
|
||||
}
|
||||
enums::Connector::Payone => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Payone::new())))
|
||||
}
|
||||
enums::Connector::Payu => Ok(ConnectorEnum::Old(Box::new(connector::Payu::new()))),
|
||||
enums::Connector::Placetopay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Placetopay::new())))
|
||||
}
|
||||
enums::Connector::Powertranz => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Powertranz)))
|
||||
}
|
||||
enums::Connector::Prophetpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Prophetpay)))
|
||||
}
|
||||
enums::Connector::Razorpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Razorpay::new())))
|
||||
}
|
||||
enums::Connector::Rapyd => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Rapyd::new())))
|
||||
}
|
||||
enums::Connector::Recurly => {
|
||||
Ok(ConnectorEnum::New(Box::new(connector::Recurly::new())))
|
||||
}
|
||||
enums::Connector::Redsys => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Redsys::new())))
|
||||
}
|
||||
enums::Connector::Santander => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Santander::new())))
|
||||
}
|
||||
enums::Connector::Shift4 => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Shift4::new())))
|
||||
}
|
||||
enums::Connector::Square => Ok(ConnectorEnum::Old(Box::new(&connector::Square))),
|
||||
enums::Connector::Stax => Ok(ConnectorEnum::Old(Box::new(&connector::Stax))),
|
||||
enums::Connector::Stripe => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Stripe::new())))
|
||||
}
|
||||
enums::Connector::Stripebilling => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::Stripebilling::new(),
|
||||
))),
|
||||
enums::Connector::Wise => Ok(ConnectorEnum::Old(Box::new(connector::Wise::new()))),
|
||||
enums::Connector::Worldline => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Worldline)))
|
||||
}
|
||||
enums::Connector::Worldpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Worldpay::new())))
|
||||
}
|
||||
enums::Connector::Worldpayvantiv => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::Worldpayvantiv::new(),
|
||||
))),
|
||||
enums::Connector::Worldpayxml => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Worldpayxml::new())))
|
||||
}
|
||||
enums::Connector::Xendit => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Xendit::new())))
|
||||
}
|
||||
enums::Connector::Mifinity => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Mifinity::new())))
|
||||
}
|
||||
enums::Connector::Multisafepay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Multisafepay::new())))
|
||||
}
|
||||
enums::Connector::Netcetera => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Netcetera)))
|
||||
}
|
||||
enums::Connector::Nexinets => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Nexinets)))
|
||||
}
|
||||
// enums::Connector::Nexixpay => {
|
||||
// Ok(ConnectorEnum::Old(Box::new(&connector::Nexixpay)))
|
||||
// }
|
||||
enums::Connector::Paypal => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Paypal::new())))
|
||||
}
|
||||
enums::Connector::Paystack => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Paystack::new())))
|
||||
}
|
||||
// enums::Connector::Thunes => Ok(ConnectorEnum::Old(Box::new(connector::Thunes))),
|
||||
enums::Connector::Tokenio => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Tokenio::new())))
|
||||
}
|
||||
enums::Connector::Trustpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Trustpay::new())))
|
||||
}
|
||||
enums::Connector::Tsys => Ok(ConnectorEnum::Old(Box::new(connector::Tsys::new()))),
|
||||
// enums::Connector::UnifiedAuthenticationService => Ok(ConnectorEnum::Old(Box::new(
|
||||
// connector::UnifiedAuthenticationService,
|
||||
// ))),
|
||||
enums::Connector::Vgs => Ok(ConnectorEnum::Old(Box::new(connector::Vgs::new()))),
|
||||
enums::Connector::Volt => Ok(ConnectorEnum::Old(Box::new(connector::Volt::new()))),
|
||||
enums::Connector::Wellsfargo => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Wellsfargo::new())))
|
||||
}
|
||||
|
||||
// enums::Connector::Wellsfargopayout => {
|
||||
// Ok(Box::new(connector::Wellsfargopayout::new()))
|
||||
// }
|
||||
enums::Connector::Zen => Ok(ConnectorEnum::Old(Box::new(&connector::Zen))),
|
||||
enums::Connector::Zsl => Ok(ConnectorEnum::Old(Box::new(&connector::Zsl))),
|
||||
enums::Connector::Plaid => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Plaid::new())))
|
||||
}
|
||||
enums::Connector::Signifyd
|
||||
| enums::Connector::Riskified
|
||||
| enums::Connector::Gpayments
|
||||
| enums::Connector::Threedsecureio
|
||||
| enums::Connector::Taxjar => {
|
||||
Err(report!(errors::ConnectorError::InvalidConnectorName)
|
||||
.attach_printable(format!("invalid connector name: {connector_name}")))
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
}
|
||||
},
|
||||
Err(_) => Err(report!(errors::ConnectorError::InvalidConnectorName)
|
||||
.attach_printable(format!("invalid connector name: {connector_name}")))
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
#![allow(clippy::unwrap_used)]
|
||||
|
||||
439
crates/router/src/types/api/connector_mapping.rs
Normal file
439
crates/router/src/types/api/connector_mapping.rs
Normal file
@ -0,0 +1,439 @@
|
||||
use std::str::FromStr;
|
||||
|
||||
use error_stack::{report, ResultExt};
|
||||
|
||||
use crate::{
|
||||
configs::settings::Connectors,
|
||||
connector,
|
||||
core::errors::{self, CustomResult},
|
||||
services::connector_integration_interface::ConnectorEnum,
|
||||
types::{self, api::enums},
|
||||
};
|
||||
|
||||
/// Routing algorithm will output merchant connector identifier instead of connector name
|
||||
/// In order to support backwards compatibility for older routing algorithms and merchant accounts
|
||||
/// the support for connector name is retained
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct ConnectorData {
|
||||
pub connector: ConnectorEnum,
|
||||
pub connector_name: types::Connector,
|
||||
pub get_token: GetToken,
|
||||
pub merchant_connector_id: Option<common_utils::id_type::MerchantConnectorAccountId>,
|
||||
}
|
||||
|
||||
// Normal flow will call the connector and follow the flow specific operations (capture, authorize)
|
||||
// SessionTokenFromMetadata will avoid calling the connector instead create the session token ( for sdk )
|
||||
#[derive(Clone, Eq, PartialEq, Debug)]
|
||||
pub enum GetToken {
|
||||
GpayMetadata,
|
||||
SamsungPayMetadata,
|
||||
ApplePayMetadata,
|
||||
PaypalSdkMetadata,
|
||||
PazeMetadata,
|
||||
Connector,
|
||||
}
|
||||
|
||||
impl ConnectorData {
|
||||
pub fn get_connector_by_name(
|
||||
_connectors: &Connectors,
|
||||
name: &str,
|
||||
connector_type: GetToken,
|
||||
connector_id: Option<common_utils::id_type::MerchantConnectorAccountId>,
|
||||
) -> CustomResult<Self, errors::ApiErrorResponse> {
|
||||
let connector = Self::convert_connector(name)?;
|
||||
let connector_name = enums::Connector::from_str(name)
|
||||
.change_context(errors::ConnectorError::InvalidConnectorName)
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable_lazy(|| format!("unable to parse connector name {name}"))?;
|
||||
Ok(Self {
|
||||
connector,
|
||||
connector_name,
|
||||
get_token: connector_type,
|
||||
merchant_connector_id: connector_id,
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(feature = "payouts")]
|
||||
pub fn get_payout_connector_by_name(
|
||||
_connectors: &Connectors,
|
||||
name: &str,
|
||||
connector_type: GetToken,
|
||||
connector_id: Option<common_utils::id_type::MerchantConnectorAccountId>,
|
||||
) -> CustomResult<Self, errors::ApiErrorResponse> {
|
||||
let connector = Self::convert_connector(name)?;
|
||||
let payout_connector_name = enums::PayoutConnectors::from_str(name)
|
||||
.change_context(errors::ConnectorError::InvalidConnectorName)
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable_lazy(|| format!("unable to parse payout connector name {name}"))?;
|
||||
let connector_name = enums::Connector::from(payout_connector_name);
|
||||
Ok(Self {
|
||||
connector,
|
||||
connector_name,
|
||||
get_token: connector_type,
|
||||
merchant_connector_id: connector_id,
|
||||
})
|
||||
}
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
pub fn get_external_vault_connector_by_name(
|
||||
_connectors: &Connectors,
|
||||
connector: &enums::Connector,
|
||||
connector_type: GetToken,
|
||||
connector_id: Option<common_utils::id_type::MerchantConnectorAccountId>,
|
||||
) -> CustomResult<Self, errors::ApiErrorResponse> {
|
||||
let connector_enum = Self::convert_connector(&connector.to_string())?;
|
||||
let external_vault_connector_name =
|
||||
enums::VaultConnectors::from_str(&connector.to_string())
|
||||
.change_context(errors::ConnectorError::InvalidConnectorName)
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable_lazy(|| {
|
||||
format!("unable to parse external vault connector name {connector:?}")
|
||||
})?;
|
||||
let connector_name = enums::Connector::from(external_vault_connector_name);
|
||||
Ok(Self {
|
||||
connector: connector_enum,
|
||||
connector_name,
|
||||
get_token: connector_type,
|
||||
merchant_connector_id: connector_id,
|
||||
})
|
||||
}
|
||||
|
||||
pub fn convert_connector(
|
||||
connector_name: &str,
|
||||
) -> CustomResult<ConnectorEnum, errors::ApiErrorResponse> {
|
||||
match enums::Connector::from_str(connector_name) {
|
||||
Ok(name) => match name {
|
||||
enums::Connector::Aci => Ok(ConnectorEnum::Old(Box::new(connector::Aci::new()))),
|
||||
enums::Connector::Adyen => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Adyen::new())))
|
||||
}
|
||||
enums::Connector::Adyenplatform => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::Adyenplatform::new(),
|
||||
))),
|
||||
enums::Connector::Airwallex => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Airwallex::new())))
|
||||
}
|
||||
// enums::Connector::Amazonpay => {
|
||||
// Ok(ConnectorEnum::Old(Box::new(connector::Amazonpay)))
|
||||
// }
|
||||
enums::Connector::Archipel => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Archipel::new())))
|
||||
}
|
||||
enums::Connector::Authipay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Authipay::new())))
|
||||
}
|
||||
enums::Connector::Authorizedotnet => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Authorizedotnet)))
|
||||
}
|
||||
enums::Connector::Bambora => Ok(ConnectorEnum::Old(Box::new(&connector::Bambora))),
|
||||
enums::Connector::Bamboraapac => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Bamboraapac::new())))
|
||||
}
|
||||
enums::Connector::Bankofamerica => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Bankofamerica)))
|
||||
}
|
||||
enums::Connector::Barclaycard => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Barclaycard)))
|
||||
}
|
||||
enums::Connector::Billwerk => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Billwerk::new())))
|
||||
}
|
||||
enums::Connector::Bitpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Bitpay::new())))
|
||||
}
|
||||
enums::Connector::Bluesnap => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Bluesnap::new())))
|
||||
}
|
||||
enums::Connector::Boku => Ok(ConnectorEnum::Old(Box::new(connector::Boku::new()))),
|
||||
enums::Connector::Braintree => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Braintree::new())))
|
||||
}
|
||||
enums::Connector::Cashtocode => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Cashtocode::new())))
|
||||
}
|
||||
enums::Connector::Celero => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Celero::new())))
|
||||
}
|
||||
enums::Connector::Chargebee => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Chargebee::new())))
|
||||
}
|
||||
// enums::Connector::Checkbook => {
|
||||
// Ok(ConnectorEnum::Old(Box::new(connector::Checkbook)))
|
||||
// }
|
||||
enums::Connector::Checkout => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Checkout::new())))
|
||||
}
|
||||
enums::Connector::Coinbase => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Coinbase)))
|
||||
}
|
||||
enums::Connector::Coingate => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Coingate::new())))
|
||||
}
|
||||
enums::Connector::Cryptopay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Cryptopay::new())))
|
||||
}
|
||||
enums::Connector::CtpMastercard => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::CtpMastercard)))
|
||||
}
|
||||
enums::Connector::CtpVisa => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::UnifiedAuthenticationService::new(),
|
||||
))),
|
||||
enums::Connector::Cybersource => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Cybersource::new())))
|
||||
}
|
||||
enums::Connector::Datatrans => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Datatrans::new())))
|
||||
}
|
||||
enums::Connector::Deutschebank => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Deutschebank::new())))
|
||||
}
|
||||
enums::Connector::Digitalvirgo => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Digitalvirgo::new())))
|
||||
}
|
||||
enums::Connector::Dlocal => Ok(ConnectorEnum::Old(Box::new(&connector::Dlocal))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector1 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<1>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector2 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<2>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector3 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<3>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector4 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<4>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector5 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<5>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector6 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<6>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyConnector7 => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<7>,
|
||||
))),
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
enums::Connector::DummyBillingConnector => Ok(ConnectorEnum::Old(Box::new(
|
||||
&connector::DummyConnector::<8>,
|
||||
))),
|
||||
// enums::Connector::Dwolla => {
|
||||
// Ok(ConnectorEnum::Old(Box::new(connector::Dwolla::new())))
|
||||
// }
|
||||
enums::Connector::Ebanx => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Ebanx::new())))
|
||||
}
|
||||
enums::Connector::Elavon => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Elavon::new())))
|
||||
}
|
||||
enums::Connector::Facilitapay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Facilitapay::new())))
|
||||
}
|
||||
enums::Connector::Fiserv => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Fiserv::new())))
|
||||
}
|
||||
enums::Connector::Fiservemea => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Fiservemea::new())))
|
||||
}
|
||||
enums::Connector::Fiuu => Ok(ConnectorEnum::Old(Box::new(connector::Fiuu::new()))),
|
||||
enums::Connector::Forte => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Forte::new())))
|
||||
}
|
||||
enums::Connector::Getnet => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Getnet::new())))
|
||||
}
|
||||
enums::Connector::Globalpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Globalpay::new())))
|
||||
}
|
||||
enums::Connector::Globepay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Globepay::new())))
|
||||
}
|
||||
enums::Connector::Gocardless => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Gocardless)))
|
||||
}
|
||||
enums::Connector::Hipay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Hipay::new())))
|
||||
}
|
||||
enums::Connector::Helcim => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Helcim::new())))
|
||||
}
|
||||
enums::Connector::HyperswitchVault => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::HyperswitchVault)))
|
||||
}
|
||||
enums::Connector::Iatapay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Iatapay::new())))
|
||||
}
|
||||
enums::Connector::Inespay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Inespay::new())))
|
||||
}
|
||||
enums::Connector::Itaubank => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Itaubank::new())))
|
||||
}
|
||||
enums::Connector::Jpmorgan => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Jpmorgan::new())))
|
||||
}
|
||||
enums::Connector::Juspaythreedsserver => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::Juspaythreedsserver::new(),
|
||||
))),
|
||||
enums::Connector::Klarna => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Klarna::new())))
|
||||
}
|
||||
enums::Connector::Mollie => {
|
||||
// enums::Connector::Moneris => Ok(ConnectorEnum::Old(Box::new(connector::Moneris))),
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Mollie::new())))
|
||||
}
|
||||
enums::Connector::Moneris => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Moneris::new())))
|
||||
}
|
||||
enums::Connector::Nexixpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Nexixpay::new())))
|
||||
}
|
||||
enums::Connector::Nmi => Ok(ConnectorEnum::Old(Box::new(connector::Nmi::new()))),
|
||||
enums::Connector::Nomupay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Nomupay::new())))
|
||||
}
|
||||
enums::Connector::Noon => Ok(ConnectorEnum::Old(Box::new(connector::Noon::new()))),
|
||||
// enums::Connector::Nordea => Ok(ConnectorEnum::Old(Box::new(connector::Nordea::new()))),
|
||||
enums::Connector::Novalnet => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Novalnet::new())))
|
||||
}
|
||||
enums::Connector::Nuvei => Ok(ConnectorEnum::Old(Box::new(&connector::Nuvei))),
|
||||
enums::Connector::Opennode => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Opennode)))
|
||||
}
|
||||
enums::Connector::Paybox => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Paybox::new())))
|
||||
}
|
||||
// "payeezy" => Ok(ConnectorIntegrationEnum::Old(Box::new(&connector::Payeezy)), As psync and rsync are not supported by this connector, it is added as template code for future usage
|
||||
// enums::Connector::Payload => {
|
||||
// Ok(ConnectorEnum::Old(Box::new(connector::Paybload::new())))
|
||||
// }
|
||||
enums::Connector::Payload => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Payload::new())))
|
||||
}
|
||||
enums::Connector::Payme => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Payme::new())))
|
||||
}
|
||||
enums::Connector::Payone => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Payone::new())))
|
||||
}
|
||||
enums::Connector::Payu => Ok(ConnectorEnum::Old(Box::new(connector::Payu::new()))),
|
||||
enums::Connector::Placetopay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Placetopay::new())))
|
||||
}
|
||||
enums::Connector::Powertranz => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Powertranz)))
|
||||
}
|
||||
enums::Connector::Prophetpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Prophetpay)))
|
||||
}
|
||||
enums::Connector::Razorpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Razorpay::new())))
|
||||
}
|
||||
enums::Connector::Rapyd => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Rapyd::new())))
|
||||
}
|
||||
enums::Connector::Recurly => {
|
||||
Ok(ConnectorEnum::New(Box::new(connector::Recurly::new())))
|
||||
}
|
||||
enums::Connector::Redsys => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Redsys::new())))
|
||||
}
|
||||
enums::Connector::Santander => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Santander::new())))
|
||||
}
|
||||
enums::Connector::Shift4 => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Shift4::new())))
|
||||
}
|
||||
enums::Connector::Square => Ok(ConnectorEnum::Old(Box::new(&connector::Square))),
|
||||
enums::Connector::Stax => Ok(ConnectorEnum::Old(Box::new(&connector::Stax))),
|
||||
enums::Connector::Stripe => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Stripe::new())))
|
||||
}
|
||||
enums::Connector::Stripebilling => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::Stripebilling::new(),
|
||||
))),
|
||||
enums::Connector::Wise => Ok(ConnectorEnum::Old(Box::new(connector::Wise::new()))),
|
||||
enums::Connector::Worldline => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Worldline)))
|
||||
}
|
||||
enums::Connector::Worldpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Worldpay::new())))
|
||||
}
|
||||
enums::Connector::Worldpayvantiv => Ok(ConnectorEnum::Old(Box::new(
|
||||
connector::Worldpayvantiv::new(),
|
||||
))),
|
||||
enums::Connector::Worldpayxml => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Worldpayxml::new())))
|
||||
}
|
||||
enums::Connector::Xendit => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Xendit::new())))
|
||||
}
|
||||
enums::Connector::Mifinity => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Mifinity::new())))
|
||||
}
|
||||
enums::Connector::Multisafepay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Multisafepay::new())))
|
||||
}
|
||||
enums::Connector::Netcetera => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Netcetera)))
|
||||
}
|
||||
enums::Connector::Nexinets => {
|
||||
Ok(ConnectorEnum::Old(Box::new(&connector::Nexinets)))
|
||||
}
|
||||
// enums::Connector::Nexixpay => {
|
||||
// Ok(ConnectorEnum::Old(Box::new(&connector::Nexixpay)))
|
||||
// }
|
||||
enums::Connector::Paypal => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Paypal::new())))
|
||||
}
|
||||
enums::Connector::Paystack => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Paystack::new())))
|
||||
}
|
||||
// enums::Connector::Thunes => Ok(ConnectorEnum::Old(Box::new(connector::Thunes))),
|
||||
enums::Connector::Tokenio => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Tokenio::new())))
|
||||
}
|
||||
enums::Connector::Trustpay => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Trustpay::new())))
|
||||
}
|
||||
enums::Connector::Tsys => Ok(ConnectorEnum::Old(Box::new(connector::Tsys::new()))),
|
||||
// enums::Connector::UnifiedAuthenticationService => Ok(ConnectorEnum::Old(Box::new(
|
||||
// connector::UnifiedAuthenticationService,
|
||||
// ))),
|
||||
enums::Connector::Vgs => Ok(ConnectorEnum::Old(Box::new(connector::Vgs::new()))),
|
||||
enums::Connector::Volt => Ok(ConnectorEnum::Old(Box::new(connector::Volt::new()))),
|
||||
enums::Connector::Wellsfargo => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Wellsfargo::new())))
|
||||
}
|
||||
|
||||
// enums::Connector::Wellsfargopayout => {
|
||||
// Ok(Box::new(connector::Wellsfargopayout::new()))
|
||||
// }
|
||||
enums::Connector::Zen => Ok(ConnectorEnum::Old(Box::new(&connector::Zen))),
|
||||
enums::Connector::Zsl => Ok(ConnectorEnum::Old(Box::new(&connector::Zsl))),
|
||||
enums::Connector::Plaid => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Plaid::new())))
|
||||
}
|
||||
enums::Connector::Signifyd
|
||||
| enums::Connector::Riskified
|
||||
| enums::Connector::Gpayments
|
||||
| enums::Connector::Threedsecureio
|
||||
| enums::Connector::Taxjar => {
|
||||
Err(report!(errors::ConnectorError::InvalidConnectorName)
|
||||
.attach_printable(format!("invalid connector name: {connector_name}")))
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
}
|
||||
},
|
||||
Err(_) => Err(report!(errors::ConnectorError::InvalidConnectorName)
|
||||
.attach_printable(format!("invalid connector name: {connector_name}")))
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError),
|
||||
}
|
||||
}
|
||||
}
|
||||
188
crates/router/src/types/connector_transformers.rs
Normal file
188
crates/router/src/types/connector_transformers.rs
Normal file
@ -0,0 +1,188 @@
|
||||
use api_models::enums as api_enums;
|
||||
|
||||
use super::ForeignTryFrom;
|
||||
|
||||
impl ForeignTryFrom<api_enums::Connector> for common_enums::RoutableConnectors {
|
||||
type Error = error_stack::Report<common_utils::errors::ValidationError>;
|
||||
|
||||
fn foreign_try_from(from: api_enums::Connector) -> Result<Self, Self::Error> {
|
||||
Ok(match from {
|
||||
api_enums::Connector::Aci => Self::Aci,
|
||||
api_enums::Connector::Adyen => Self::Adyen,
|
||||
api_enums::Connector::Adyenplatform => Self::Adyenplatform,
|
||||
api_enums::Connector::Airwallex => Self::Airwallex,
|
||||
// api_enums::Connector::Amazonpay => Self::Amazonpay,
|
||||
api_enums::Connector::Archipel => Self::Archipel,
|
||||
api_enums::Connector::Authipay => Self::Authipay,
|
||||
api_enums::Connector::Authorizedotnet => Self::Authorizedotnet,
|
||||
api_enums::Connector::Bambora => Self::Bambora,
|
||||
api_enums::Connector::Bamboraapac => Self::Bamboraapac,
|
||||
api_enums::Connector::Bankofamerica => Self::Bankofamerica,
|
||||
api_enums::Connector::Barclaycard => Self::Barclaycard,
|
||||
api_enums::Connector::Billwerk => Self::Billwerk,
|
||||
api_enums::Connector::Bitpay => Self::Bitpay,
|
||||
api_enums::Connector::Bluesnap => Self::Bluesnap,
|
||||
api_enums::Connector::Boku => Self::Boku,
|
||||
api_enums::Connector::Braintree => Self::Braintree,
|
||||
api_enums::Connector::Cashtocode => Self::Cashtocode,
|
||||
api_enums::Connector::Celero => Self::Celero,
|
||||
api_enums::Connector::Chargebee => Self::Chargebee,
|
||||
// api_enums::Connector::Checkbook => Self::Checkbook,
|
||||
api_enums::Connector::Checkout => Self::Checkout,
|
||||
api_enums::Connector::Coinbase => Self::Coinbase,
|
||||
api_enums::Connector::Coingate => Self::Coingate,
|
||||
api_enums::Connector::Cryptopay => Self::Cryptopay,
|
||||
api_enums::Connector::CtpVisa => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "ctp visa is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::CtpMastercard => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "ctp mastercard is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Cybersource => Self::Cybersource,
|
||||
api_enums::Connector::Datatrans => Self::Datatrans,
|
||||
api_enums::Connector::Deutschebank => Self::Deutschebank,
|
||||
api_enums::Connector::Digitalvirgo => Self::Digitalvirgo,
|
||||
api_enums::Connector::Dlocal => Self::Dlocal,
|
||||
// api_enums::Connector::Dwolla => Self::Dwolla,
|
||||
api_enums::Connector::Ebanx => Self::Ebanx,
|
||||
api_enums::Connector::Elavon => Self::Elavon,
|
||||
api_enums::Connector::Facilitapay => Self::Facilitapay,
|
||||
api_enums::Connector::Fiserv => Self::Fiserv,
|
||||
api_enums::Connector::Fiservemea => Self::Fiservemea,
|
||||
api_enums::Connector::Fiuu => Self::Fiuu,
|
||||
api_enums::Connector::Forte => Self::Forte,
|
||||
api_enums::Connector::Getnet => Self::Getnet,
|
||||
api_enums::Connector::Globalpay => Self::Globalpay,
|
||||
api_enums::Connector::Globepay => Self::Globepay,
|
||||
api_enums::Connector::Gocardless => Self::Gocardless,
|
||||
api_enums::Connector::Gpayments => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "gpayments is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Hipay => Self::Hipay,
|
||||
api_enums::Connector::Helcim => Self::Helcim,
|
||||
api_enums::Connector::HyperswitchVault => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "Hyperswitch Vault is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Iatapay => Self::Iatapay,
|
||||
api_enums::Connector::Inespay => Self::Inespay,
|
||||
api_enums::Connector::Itaubank => Self::Itaubank,
|
||||
api_enums::Connector::Jpmorgan => Self::Jpmorgan,
|
||||
api_enums::Connector::Juspaythreedsserver => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "juspaythreedsserver is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Klarna => Self::Klarna,
|
||||
api_enums::Connector::Mifinity => Self::Mifinity,
|
||||
api_enums::Connector::Mollie => Self::Mollie,
|
||||
api_enums::Connector::Moneris => Self::Moneris,
|
||||
api_enums::Connector::Multisafepay => Self::Multisafepay,
|
||||
api_enums::Connector::Netcetera => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "netcetera is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Nexinets => Self::Nexinets,
|
||||
api_enums::Connector::Nexixpay => Self::Nexixpay,
|
||||
api_enums::Connector::Nmi => Self::Nmi,
|
||||
api_enums::Connector::Nomupay => Self::Nomupay,
|
||||
api_enums::Connector::Noon => Self::Noon,
|
||||
// api_enums::Connector::Nordea => Self::Nordea,
|
||||
api_enums::Connector::Novalnet => Self::Novalnet,
|
||||
api_enums::Connector::Nuvei => Self::Nuvei,
|
||||
api_enums::Connector::Opennode => Self::Opennode,
|
||||
api_enums::Connector::Paybox => Self::Paybox,
|
||||
api_enums::Connector::Payload => Self::Payload,
|
||||
api_enums::Connector::Payme => Self::Payme,
|
||||
api_enums::Connector::Payone => Self::Payone,
|
||||
api_enums::Connector::Paypal => Self::Paypal,
|
||||
api_enums::Connector::Paystack => Self::Paystack,
|
||||
api_enums::Connector::Payu => Self::Payu,
|
||||
api_models::enums::Connector::Placetopay => Self::Placetopay,
|
||||
api_enums::Connector::Plaid => Self::Plaid,
|
||||
api_enums::Connector::Powertranz => Self::Powertranz,
|
||||
api_enums::Connector::Prophetpay => Self::Prophetpay,
|
||||
api_enums::Connector::Rapyd => Self::Rapyd,
|
||||
api_enums::Connector::Razorpay => Self::Razorpay,
|
||||
api_enums::Connector::Recurly => Self::Recurly,
|
||||
api_enums::Connector::Redsys => Self::Redsys,
|
||||
api_enums::Connector::Santander => Self::Santander,
|
||||
api_enums::Connector::Shift4 => Self::Shift4,
|
||||
api_enums::Connector::Signifyd => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "signifyd is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Riskified => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "riskified is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Square => Self::Square,
|
||||
api_enums::Connector::Stax => Self::Stax,
|
||||
api_enums::Connector::Stripe => Self::Stripe,
|
||||
api_enums::Connector::Stripebilling => Self::Stripebilling,
|
||||
// api_enums::Connector::Thunes => Self::Thunes,
|
||||
api_enums::Connector::Tokenio => Self::Tokenio,
|
||||
api_enums::Connector::Trustpay => Self::Trustpay,
|
||||
api_enums::Connector::Tsys => Self::Tsys,
|
||||
// api_enums::Connector::UnifiedAuthenticationService => {
|
||||
// Self::UnifiedAuthenticationService
|
||||
// }
|
||||
api_enums::Connector::Vgs => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "Vgs is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Volt => Self::Volt,
|
||||
api_enums::Connector::Wellsfargo => Self::Wellsfargo,
|
||||
// api_enums::Connector::Wellsfargopayout => Self::Wellsfargopayout,
|
||||
api_enums::Connector::Wise => Self::Wise,
|
||||
api_enums::Connector::Worldline => Self::Worldline,
|
||||
api_enums::Connector::Worldpay => Self::Worldpay,
|
||||
api_enums::Connector::Worldpayvantiv => Self::Worldpayvantiv,
|
||||
api_enums::Connector::Worldpayxml => Self::Worldpayxml,
|
||||
api_enums::Connector::Xendit => Self::Xendit,
|
||||
api_enums::Connector::Zen => Self::Zen,
|
||||
api_enums::Connector::Zsl => Self::Zsl,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyBillingConnector => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "stripe_billing_test is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector1 => Self::DummyConnector1,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector2 => Self::DummyConnector2,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector3 => Self::DummyConnector3,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector4 => Self::DummyConnector4,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector5 => Self::DummyConnector5,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector6 => Self::DummyConnector6,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector7 => Self::DummyConnector7,
|
||||
api_enums::Connector::Threedsecureio => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "threedsecureio is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Taxjar => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "Taxjar is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -201,192 +201,6 @@ impl ForeignFrom<storage_enums::MandateDataType> for payments::MandateType {
|
||||
}
|
||||
}
|
||||
|
||||
impl ForeignTryFrom<api_enums::Connector> for common_enums::RoutableConnectors {
|
||||
type Error = error_stack::Report<common_utils::errors::ValidationError>;
|
||||
|
||||
fn foreign_try_from(from: api_enums::Connector) -> Result<Self, Self::Error> {
|
||||
Ok(match from {
|
||||
api_enums::Connector::Aci => Self::Aci,
|
||||
api_enums::Connector::Authipay => Self::Authipay,
|
||||
api_enums::Connector::Adyen => Self::Adyen,
|
||||
api_enums::Connector::Adyenplatform => Self::Adyenplatform,
|
||||
api_enums::Connector::Airwallex => Self::Airwallex,
|
||||
// api_enums::Connector::Amazonpay => Self::Amazonpay,
|
||||
api_enums::Connector::Archipel => Self::Archipel,
|
||||
api_enums::Connector::Authorizedotnet => Self::Authorizedotnet,
|
||||
api_enums::Connector::Bambora => Self::Bambora,
|
||||
api_enums::Connector::Bamboraapac => Self::Bamboraapac,
|
||||
api_enums::Connector::Bankofamerica => Self::Bankofamerica,
|
||||
api_enums::Connector::Barclaycard => Self::Barclaycard,
|
||||
api_enums::Connector::Billwerk => Self::Billwerk,
|
||||
api_enums::Connector::Bitpay => Self::Bitpay,
|
||||
api_enums::Connector::Bluesnap => Self::Bluesnap,
|
||||
api_enums::Connector::Boku => Self::Boku,
|
||||
api_enums::Connector::Braintree => Self::Braintree,
|
||||
api_enums::Connector::Cashtocode => Self::Cashtocode,
|
||||
api_enums::Connector::Celero => Self::Celero,
|
||||
api_enums::Connector::Chargebee => Self::Chargebee,
|
||||
// api_enums::Connector::Checkbook => Self::Checkbook,
|
||||
api_enums::Connector::Checkout => Self::Checkout,
|
||||
api_enums::Connector::Coinbase => Self::Coinbase,
|
||||
api_enums::Connector::Coingate => Self::Coingate,
|
||||
api_enums::Connector::Cryptopay => Self::Cryptopay,
|
||||
api_enums::Connector::CtpVisa => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "ctp visa is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::CtpMastercard => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "ctp mastercard is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Cybersource => Self::Cybersource,
|
||||
api_enums::Connector::Datatrans => Self::Datatrans,
|
||||
api_enums::Connector::Deutschebank => Self::Deutschebank,
|
||||
api_enums::Connector::Digitalvirgo => Self::Digitalvirgo,
|
||||
api_enums::Connector::Dlocal => Self::Dlocal,
|
||||
// api_enums::Connector::Dwolla => Self::Dwolla,
|
||||
api_enums::Connector::Ebanx => Self::Ebanx,
|
||||
api_enums::Connector::Elavon => Self::Elavon,
|
||||
api_enums::Connector::Facilitapay => Self::Facilitapay,
|
||||
api_enums::Connector::Fiserv => Self::Fiserv,
|
||||
api_enums::Connector::Fiservemea => Self::Fiservemea,
|
||||
api_enums::Connector::Fiuu => Self::Fiuu,
|
||||
api_enums::Connector::Forte => Self::Forte,
|
||||
api_enums::Connector::Getnet => Self::Getnet,
|
||||
api_enums::Connector::Globalpay => Self::Globalpay,
|
||||
api_enums::Connector::Globepay => Self::Globepay,
|
||||
api_enums::Connector::Gocardless => Self::Gocardless,
|
||||
api_enums::Connector::Gpayments => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "gpayments is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Hipay => Self::Hipay,
|
||||
api_enums::Connector::Helcim => Self::Helcim,
|
||||
api_enums::Connector::HyperswitchVault => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "Hyperswitch Vault is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Iatapay => Self::Iatapay,
|
||||
api_enums::Connector::Inespay => Self::Inespay,
|
||||
api_enums::Connector::Itaubank => Self::Itaubank,
|
||||
api_enums::Connector::Jpmorgan => Self::Jpmorgan,
|
||||
api_enums::Connector::Juspaythreedsserver => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "juspaythreedsserver is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Klarna => Self::Klarna,
|
||||
api_enums::Connector::Mifinity => Self::Mifinity,
|
||||
api_enums::Connector::Mollie => Self::Mollie,
|
||||
api_enums::Connector::Moneris => Self::Moneris,
|
||||
api_enums::Connector::Multisafepay => Self::Multisafepay,
|
||||
api_enums::Connector::Netcetera => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "netcetera is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Nexinets => Self::Nexinets,
|
||||
api_enums::Connector::Nexixpay => Self::Nexixpay,
|
||||
api_enums::Connector::Nmi => Self::Nmi,
|
||||
api_enums::Connector::Nomupay => Self::Nomupay,
|
||||
api_enums::Connector::Noon => Self::Noon,
|
||||
// api_enums::Connector::Nordea => Self::Nordea,
|
||||
api_enums::Connector::Novalnet => Self::Novalnet,
|
||||
api_enums::Connector::Nuvei => Self::Nuvei,
|
||||
api_enums::Connector::Opennode => Self::Opennode,
|
||||
api_enums::Connector::Paybox => Self::Paybox,
|
||||
api_enums::Connector::Payload => Self::Payload,
|
||||
api_enums::Connector::Payme => Self::Payme,
|
||||
api_enums::Connector::Payone => Self::Payone,
|
||||
api_enums::Connector::Paypal => Self::Paypal,
|
||||
api_enums::Connector::Paystack => Self::Paystack,
|
||||
api_enums::Connector::Payu => Self::Payu,
|
||||
api_models::enums::Connector::Placetopay => Self::Placetopay,
|
||||
api_enums::Connector::Plaid => Self::Plaid,
|
||||
api_enums::Connector::Powertranz => Self::Powertranz,
|
||||
api_enums::Connector::Prophetpay => Self::Prophetpay,
|
||||
api_enums::Connector::Rapyd => Self::Rapyd,
|
||||
api_enums::Connector::Razorpay => Self::Razorpay,
|
||||
api_enums::Connector::Recurly => Self::Recurly,
|
||||
api_enums::Connector::Redsys => Self::Redsys,
|
||||
api_enums::Connector::Santander => Self::Santander,
|
||||
api_enums::Connector::Shift4 => Self::Shift4,
|
||||
api_enums::Connector::Signifyd => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "signifyd is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Riskified => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "riskified is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Square => Self::Square,
|
||||
api_enums::Connector::Stax => Self::Stax,
|
||||
api_enums::Connector::Stripe => Self::Stripe,
|
||||
api_enums::Connector::Stripebilling => Self::Stripebilling,
|
||||
// api_enums::Connector::Taxjar => Self::Taxjar,
|
||||
// api_enums::Connector::Thunes => Self::Thunes,
|
||||
api_enums::Connector::Tokenio => Self::Tokenio,
|
||||
api_enums::Connector::Trustpay => Self::Trustpay,
|
||||
api_enums::Connector::Tsys => Self::Tsys,
|
||||
// api_enums::Connector::UnifiedAuthenticationService => {
|
||||
// Self::UnifiedAuthenticationService
|
||||
// }
|
||||
api_enums::Connector::Vgs => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "Vgs is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Volt => Self::Volt,
|
||||
api_enums::Connector::Wellsfargo => Self::Wellsfargo,
|
||||
// api_enums::Connector::Wellsfargopayout => Self::Wellsfargopayout,
|
||||
api_enums::Connector::Wise => Self::Wise,
|
||||
api_enums::Connector::Worldline => Self::Worldline,
|
||||
api_enums::Connector::Worldpay => Self::Worldpay,
|
||||
api_enums::Connector::Worldpayvantiv => Self::Worldpayvantiv,
|
||||
api_enums::Connector::Worldpayxml => Self::Worldpayxml,
|
||||
api_enums::Connector::Xendit => Self::Xendit,
|
||||
api_enums::Connector::Zen => Self::Zen,
|
||||
api_enums::Connector::Zsl => Self::Zsl,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyBillingConnector => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "stripe_billing_test is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector1 => Self::DummyConnector1,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector2 => Self::DummyConnector2,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector3 => Self::DummyConnector3,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector4 => Self::DummyConnector4,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector5 => Self::DummyConnector5,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector6 => Self::DummyConnector6,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::Connector::DummyConnector7 => Self::DummyConnector7,
|
||||
api_enums::Connector::Threedsecureio => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "threedsecureio is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
api_enums::Connector::Taxjar => {
|
||||
Err(common_utils::errors::ValidationError::InvalidValue {
|
||||
message: "Taxjar is not a routable connector".to_string(),
|
||||
})?
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl ForeignFrom<storage_enums::MandateAmountData> for payments::MandateAmountData {
|
||||
fn foreign_from(from: storage_enums::MandateAmountData) -> Self {
|
||||
Self {
|
||||
|
||||
@ -46,7 +46,7 @@ cd $SCRIPT/..
|
||||
|
||||
# Remove template files if already created for this connector
|
||||
rm -rf $conn/$payment_gateway $conn/$payment_gateway.rs
|
||||
git checkout $conn.rs $src/types/api.rs $src/configs/settings.rs config/development.toml config/docker_compose.toml config/config.example.toml loadtest/config/development.toml crates/api_models/src/connector_enums.rs crates/euclid/src/enums.rs crates/api_models/src/routing.rs $src/core/payments/flows.rs crates/common_enums/src/connector_enums.rs crates/common_enums/src/connector_enums.rs-e $src/types/transformers.rs $src/core/admin.rs
|
||||
git checkout $conn.rs $src/types/api/connector_mapping.rs $src/configs/settings.rs config/development.toml config/docker_compose.toml config/config.example.toml loadtest/config/development.toml crates/api_models/src/connector_enums.rs crates/euclid/src/enums.rs crates/api_models/src/routing.rs $src/core/payments/flows.rs crates/common_enums/src/connector_enums.rs crates/common_enums/src/connector_enums.rs-e $src/types/connector_transformers.rs $src/core/admin.rs
|
||||
|
||||
# Add enum for this connector in required places
|
||||
previous_connector=''
|
||||
@ -177,11 +177,11 @@ sed -i'' -e "s/^default_imp_for_new_connector_integration_connector_authenticati
|
||||
|
||||
sed -i'' -e "/pub ${previous_connector}: ConnectorParams,/a\\
|
||||
pub ${payment_gateway}: ConnectorParams,
|
||||
" crates/hyperswitch_domain_models/src/configs.rs
|
||||
" crates/hyperswitch_domain_models/src/connector_endpoints.rs
|
||||
|
||||
|
||||
# Remove temporary files created in above step
|
||||
rm $conn.rs-e $src/types/api.rs-e $src/configs/settings.rs-e config/development.toml-e config/docker_compose.toml-e config/config.example.toml-e loadtest/config/development.toml-e crates/api_models/src/connector_enums.rs-e crates/euclid/src/enums.rs-e crates/api_models/src/routing.rs-e $src/core/payments/flows.rs-e crates/common_enums/src/connector_enums.rs-e $src/types/transformers.rs-e $src/core/admin.rs-e crates/hyperswitch_connectors/src/default_implementations.rs-e crates/hyperswitch_connectors/src/default_implementations_v2.rs-e crates/hyperswitch_interfaces/src/configs.rs-e $src/connector.rs-e config/deployments/integration_test.toml-e config/deployments/production.toml-e config/deployments/sandbox.toml-e temp crates/connector_configs/src/connector.rs-e crates/router/tests/connectors/main.rs-e crates/router/src/core/payments/connector_integration_v2_impls.rs-e crates/hyperswitch_domain_models/src/configs.rs-e
|
||||
rm $conn.rs-e $src/types/api/connector_mapping.rs-e $src/configs/settings.rs-e config/development.toml-e config/docker_compose.toml-e config/config.example.toml-e loadtest/config/development.toml-e crates/api_models/src/connector_enums.rs-e crates/euclid/src/enums.rs-e crates/api_models/src/routing.rs-e $src/core/payments/flows.rs-e crates/common_enums/src/connector_enums.rs-e $src/types/connector_transformers.rs-e $src/core/admin.rs-e crates/hyperswitch_connectors/src/default_implementations.rs-e crates/hyperswitch_connectors/src/default_implementations_v2.rs-e crates/hyperswitch_interfaces/src/configs.rs-e $src/connector.rs-e config/deployments/integration_test.toml-e config/deployments/production.toml-e config/deployments/sandbox.toml-e temp crates/connector_configs/src/connector.rs-e crates/router/tests/connectors/main.rs-e crates/router/src/core/payments/connector_integration_v2_impls.rs-e crates/hyperswitch_domain_models/src/connector_endpoints.rs-e
|
||||
|
||||
cd $conn/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user