mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-27 19:46:48 +08:00
fix(core): Replace euclid enum with RoutableConnectors enum (#2994)
Signed-off-by: chikke srujan <121822803+srujanchikke@users.noreply.github.com> Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -2339,6 +2339,7 @@ name = "euclid_wasm"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"api_models",
|
||||
"common_enums",
|
||||
"currency_conversion",
|
||||
"euclid",
|
||||
"getrandom 0.2.10",
|
||||
@ -3306,6 +3307,7 @@ name = "kgraph_utils"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"api_models",
|
||||
"common_enums",
|
||||
"criterion",
|
||||
"euclid",
|
||||
"masking",
|
||||
|
||||
@ -106,6 +106,7 @@ impl ConnectorCommon for {{project-name | downcase | pascal_case}} {
|
||||
message: response.message,
|
||||
reason: response.reason,
|
||||
attempt_status: None,
|
||||
connector_transaction_id: None,
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -485,7 +486,7 @@ impl api::IncomingWebhook for {{project-name | downcase | pascal_case}} {
|
||||
fn get_webhook_resource_object(
|
||||
&self,
|
||||
_request: &api::IncomingWebhookRequestDetails<'_>,
|
||||
) -> CustomResult<Box<dyn erased_serde::Serialize>, errors::ConnectorError> {
|
||||
) -> CustomResult<Box<dyn masking::ErasedMaskSerialize>, errors::ConnectorError> {
|
||||
Err(errors::ConnectorError::WebhooksNotImplemented).into_report()
|
||||
}
|
||||
}
|
||||
|
||||
@ -147,104 +147,6 @@ impl Connector {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Clone,
|
||||
Copy,
|
||||
Debug,
|
||||
Eq,
|
||||
Hash,
|
||||
PartialEq,
|
||||
serde::Serialize,
|
||||
serde::Deserialize,
|
||||
strum::Display,
|
||||
strum::EnumString,
|
||||
strum::EnumIter,
|
||||
strum::EnumVariantNames,
|
||||
)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[strum(serialize_all = "snake_case")]
|
||||
pub enum RoutableConnectors {
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "phonypay")]
|
||||
#[strum(serialize = "phonypay")]
|
||||
DummyConnector1,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "fauxpay")]
|
||||
#[strum(serialize = "fauxpay")]
|
||||
DummyConnector2,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "pretendpay")]
|
||||
#[strum(serialize = "pretendpay")]
|
||||
DummyConnector3,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "stripe_test")]
|
||||
#[strum(serialize = "stripe_test")]
|
||||
DummyConnector4,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "adyen_test")]
|
||||
#[strum(serialize = "adyen_test")]
|
||||
DummyConnector5,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "checkout_test")]
|
||||
#[strum(serialize = "checkout_test")]
|
||||
DummyConnector6,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "paypal_test")]
|
||||
#[strum(serialize = "paypal_test")]
|
||||
DummyConnector7,
|
||||
Aci,
|
||||
Adyen,
|
||||
Airwallex,
|
||||
Authorizedotnet,
|
||||
Bankofamerica,
|
||||
Bitpay,
|
||||
Bambora,
|
||||
Bluesnap,
|
||||
Boku,
|
||||
Braintree,
|
||||
Cashtocode,
|
||||
Checkout,
|
||||
Coinbase,
|
||||
Cryptopay,
|
||||
Cybersource,
|
||||
Dlocal,
|
||||
Fiserv,
|
||||
Forte,
|
||||
Globalpay,
|
||||
Globepay,
|
||||
Gocardless,
|
||||
Helcim,
|
||||
Iatapay,
|
||||
Klarna,
|
||||
Mollie,
|
||||
Multisafepay,
|
||||
Nexinets,
|
||||
Nmi,
|
||||
Noon,
|
||||
Nuvei,
|
||||
// Opayo, added as template code for future usage
|
||||
Opennode,
|
||||
// Payeezy, As psync and rsync are not supported by this connector, it is added as template code for future usage
|
||||
Payme,
|
||||
Paypal,
|
||||
Payu,
|
||||
Powertranz,
|
||||
Prophetpay,
|
||||
Rapyd,
|
||||
Shift4,
|
||||
Square,
|
||||
Stax,
|
||||
Stripe,
|
||||
Trustpay,
|
||||
// Tsys,
|
||||
Tsys,
|
||||
Volt,
|
||||
Wise,
|
||||
Worldline,
|
||||
Worldpay,
|
||||
Zen,
|
||||
}
|
||||
|
||||
#[cfg(feature = "payouts")]
|
||||
#[derive(
|
||||
Clone,
|
||||
|
||||
@ -4,7 +4,6 @@ use common_utils::errors::ParsingError;
|
||||
use error_stack::IntoReport;
|
||||
use euclid::{
|
||||
dssa::types::EuclidAnalysable,
|
||||
enums as euclid_enums,
|
||||
frontend::{
|
||||
ast,
|
||||
dir::{DirKeyKind, EuclidDirFilter},
|
||||
@ -287,71 +286,7 @@ impl From<RoutableConnectorChoice> for RoutableChoiceSerde {
|
||||
impl From<RoutableConnectorChoice> for ast::ConnectorChoice {
|
||||
fn from(value: RoutableConnectorChoice) -> Self {
|
||||
Self {
|
||||
connector: match value.connector {
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
RoutableConnectors::DummyConnector1 => euclid_enums::Connector::DummyConnector1,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
RoutableConnectors::DummyConnector2 => euclid_enums::Connector::DummyConnector2,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
RoutableConnectors::DummyConnector3 => euclid_enums::Connector::DummyConnector3,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
RoutableConnectors::DummyConnector4 => euclid_enums::Connector::DummyConnector4,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
RoutableConnectors::DummyConnector5 => euclid_enums::Connector::DummyConnector5,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
RoutableConnectors::DummyConnector6 => euclid_enums::Connector::DummyConnector6,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
RoutableConnectors::DummyConnector7 => euclid_enums::Connector::DummyConnector7,
|
||||
RoutableConnectors::Aci => euclid_enums::Connector::Aci,
|
||||
RoutableConnectors::Adyen => euclid_enums::Connector::Adyen,
|
||||
RoutableConnectors::Airwallex => euclid_enums::Connector::Airwallex,
|
||||
RoutableConnectors::Authorizedotnet => euclid_enums::Connector::Authorizedotnet,
|
||||
RoutableConnectors::Bambora => euclid_enums::Connector::Bambora,
|
||||
RoutableConnectors::Bankofamerica => euclid_enums::Connector::Bankofamerica,
|
||||
RoutableConnectors::Bitpay => euclid_enums::Connector::Bitpay,
|
||||
RoutableConnectors::Bluesnap => euclid_enums::Connector::Bluesnap,
|
||||
RoutableConnectors::Boku => euclid_enums::Connector::Boku,
|
||||
RoutableConnectors::Braintree => euclid_enums::Connector::Braintree,
|
||||
RoutableConnectors::Cashtocode => euclid_enums::Connector::Cashtocode,
|
||||
RoutableConnectors::Checkout => euclid_enums::Connector::Checkout,
|
||||
RoutableConnectors::Coinbase => euclid_enums::Connector::Coinbase,
|
||||
RoutableConnectors::Cryptopay => euclid_enums::Connector::Cryptopay,
|
||||
RoutableConnectors::Cybersource => euclid_enums::Connector::Cybersource,
|
||||
RoutableConnectors::Dlocal => euclid_enums::Connector::Dlocal,
|
||||
RoutableConnectors::Fiserv => euclid_enums::Connector::Fiserv,
|
||||
RoutableConnectors::Forte => euclid_enums::Connector::Forte,
|
||||
RoutableConnectors::Globalpay => euclid_enums::Connector::Globalpay,
|
||||
RoutableConnectors::Globepay => euclid_enums::Connector::Globepay,
|
||||
RoutableConnectors::Gocardless => euclid_enums::Connector::Gocardless,
|
||||
RoutableConnectors::Helcim => euclid_enums::Connector::Helcim,
|
||||
RoutableConnectors::Iatapay => euclid_enums::Connector::Iatapay,
|
||||
RoutableConnectors::Klarna => euclid_enums::Connector::Klarna,
|
||||
RoutableConnectors::Mollie => euclid_enums::Connector::Mollie,
|
||||
RoutableConnectors::Multisafepay => euclid_enums::Connector::Multisafepay,
|
||||
RoutableConnectors::Nexinets => euclid_enums::Connector::Nexinets,
|
||||
RoutableConnectors::Nmi => euclid_enums::Connector::Nmi,
|
||||
RoutableConnectors::Noon => euclid_enums::Connector::Noon,
|
||||
RoutableConnectors::Nuvei => euclid_enums::Connector::Nuvei,
|
||||
RoutableConnectors::Opennode => euclid_enums::Connector::Opennode,
|
||||
RoutableConnectors::Payme => euclid_enums::Connector::Payme,
|
||||
RoutableConnectors::Paypal => euclid_enums::Connector::Paypal,
|
||||
RoutableConnectors::Payu => euclid_enums::Connector::Payu,
|
||||
RoutableConnectors::Powertranz => euclid_enums::Connector::Powertranz,
|
||||
RoutableConnectors::Prophetpay => euclid_enums::Connector::Prophetpay,
|
||||
RoutableConnectors::Rapyd => euclid_enums::Connector::Rapyd,
|
||||
RoutableConnectors::Shift4 => euclid_enums::Connector::Shift4,
|
||||
RoutableConnectors::Square => euclid_enums::Connector::Square,
|
||||
RoutableConnectors::Stax => euclid_enums::Connector::Stax,
|
||||
RoutableConnectors::Stripe => euclid_enums::Connector::Stripe,
|
||||
RoutableConnectors::Trustpay => euclid_enums::Connector::Trustpay,
|
||||
RoutableConnectors::Tsys => euclid_enums::Connector::Tsys,
|
||||
RoutableConnectors::Volt => euclid_enums::Connector::Volt,
|
||||
RoutableConnectors::Wise => euclid_enums::Connector::Wise,
|
||||
RoutableConnectors::Worldline => euclid_enums::Connector::Worldline,
|
||||
RoutableConnectors::Worldpay => euclid_enums::Connector::Worldpay,
|
||||
RoutableConnectors::Zen => euclid_enums::Connector::Zen,
|
||||
},
|
||||
|
||||
connector: value.connector,
|
||||
#[cfg(not(feature = "connector_choice_mca_id"))]
|
||||
sub_label: value.sub_label,
|
||||
}
|
||||
|
||||
@ -7,6 +7,10 @@ rust-version.workspace = true
|
||||
readme = "README.md"
|
||||
license.workspace = true
|
||||
|
||||
[features]
|
||||
default = ["dummy_connector"]
|
||||
dummy_connector = []
|
||||
|
||||
[dependencies]
|
||||
diesel = { version = "2.1.0", features = ["postgres"] }
|
||||
serde = { version = "1.0.160", features = ["derive"] }
|
||||
|
||||
@ -59,6 +59,105 @@ pub enum AttemptStatus {
|
||||
DeviceDataCollectionPending,
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Clone,
|
||||
Copy,
|
||||
Debug,
|
||||
Eq,
|
||||
Hash,
|
||||
PartialEq,
|
||||
serde::Serialize,
|
||||
serde::Deserialize,
|
||||
strum::Display,
|
||||
strum::EnumString,
|
||||
strum::EnumIter,
|
||||
strum::EnumVariantNames,
|
||||
)]
|
||||
#[router_derive::diesel_enum(storage_type = "db_enum")]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[strum(serialize_all = "snake_case")]
|
||||
pub enum RoutableConnectors {
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "phonypay")]
|
||||
#[strum(serialize = "phonypay")]
|
||||
DummyConnector1,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "fauxpay")]
|
||||
#[strum(serialize = "fauxpay")]
|
||||
DummyConnector2,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "pretendpay")]
|
||||
#[strum(serialize = "pretendpay")]
|
||||
DummyConnector3,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "stripe_test")]
|
||||
#[strum(serialize = "stripe_test")]
|
||||
DummyConnector4,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "adyen_test")]
|
||||
#[strum(serialize = "adyen_test")]
|
||||
DummyConnector5,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "checkout_test")]
|
||||
#[strum(serialize = "checkout_test")]
|
||||
DummyConnector6,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "paypal_test")]
|
||||
#[strum(serialize = "paypal_test")]
|
||||
DummyConnector7,
|
||||
Aci,
|
||||
Adyen,
|
||||
Airwallex,
|
||||
Authorizedotnet,
|
||||
Bankofamerica,
|
||||
Bitpay,
|
||||
Bambora,
|
||||
Bluesnap,
|
||||
Boku,
|
||||
Braintree,
|
||||
Cashtocode,
|
||||
Checkout,
|
||||
Coinbase,
|
||||
Cryptopay,
|
||||
Cybersource,
|
||||
Dlocal,
|
||||
Fiserv,
|
||||
Forte,
|
||||
Globalpay,
|
||||
Globepay,
|
||||
Gocardless,
|
||||
Helcim,
|
||||
Iatapay,
|
||||
Klarna,
|
||||
Mollie,
|
||||
Multisafepay,
|
||||
Nexinets,
|
||||
Nmi,
|
||||
Noon,
|
||||
Nuvei,
|
||||
// Opayo, added as template code for future usage
|
||||
Opennode,
|
||||
// Payeezy, As psync and rsync are not supported by this connector, it is added as template code for future usage
|
||||
Payme,
|
||||
Paypal,
|
||||
Payu,
|
||||
Powertranz,
|
||||
Prophetpay,
|
||||
Rapyd,
|
||||
Shift4,
|
||||
Square,
|
||||
Stax,
|
||||
Stripe,
|
||||
Trustpay,
|
||||
// Tsys,
|
||||
Tsys,
|
||||
Volt,
|
||||
Wise,
|
||||
Worldline,
|
||||
Worldpay,
|
||||
Zen,
|
||||
}
|
||||
|
||||
impl AttemptStatus {
|
||||
pub fn is_terminal_status(self) -> bool {
|
||||
match self {
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
pub use common_enums::{
|
||||
AuthenticationType, CaptureMethod, CardNetwork, Country, Currency,
|
||||
FutureUsage as SetupFutureUsage, PaymentMethod, PaymentMethodType,
|
||||
FutureUsage as SetupFutureUsage, PaymentMethod, PaymentMethodType, RoutableConnectors,
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use strum::VariantNames;
|
||||
|
||||
pub trait CollectVariants {
|
||||
@ -24,6 +23,7 @@ macro_rules! collect_variants {
|
||||
pub(crate) use collect_variants;
|
||||
|
||||
collect_variants!(PaymentMethod);
|
||||
collect_variants!(RoutableConnectors);
|
||||
collect_variants!(PaymentType);
|
||||
collect_variants!(MandateType);
|
||||
collect_variants!(MandateAcceptanceType);
|
||||
@ -33,105 +33,8 @@ collect_variants!(AuthenticationType);
|
||||
collect_variants!(CaptureMethod);
|
||||
collect_variants!(Currency);
|
||||
collect_variants!(Country);
|
||||
collect_variants!(Connector);
|
||||
collect_variants!(SetupFutureUsage);
|
||||
|
||||
#[derive(
|
||||
Debug,
|
||||
Copy,
|
||||
Clone,
|
||||
PartialEq,
|
||||
Eq,
|
||||
Hash,
|
||||
Serialize,
|
||||
Deserialize,
|
||||
strum::Display,
|
||||
strum::EnumVariantNames,
|
||||
strum::EnumIter,
|
||||
strum::EnumString,
|
||||
frunk::LabelledGeneric,
|
||||
)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[strum(serialize_all = "snake_case")]
|
||||
pub enum Connector {
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "phonypay")]
|
||||
#[strum(serialize = "phonypay")]
|
||||
DummyConnector1,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "fauxpay")]
|
||||
#[strum(serialize = "fauxpay")]
|
||||
DummyConnector2,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "pretendpay")]
|
||||
#[strum(serialize = "pretendpay")]
|
||||
DummyConnector3,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "stripe_test")]
|
||||
#[strum(serialize = "stripe_test")]
|
||||
DummyConnector4,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "adyen_test")]
|
||||
#[strum(serialize = "adyen_test")]
|
||||
DummyConnector5,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "checkout_test")]
|
||||
#[strum(serialize = "checkout_test")]
|
||||
DummyConnector6,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
#[serde(rename = "paypal_test")]
|
||||
#[strum(serialize = "paypal_test")]
|
||||
DummyConnector7,
|
||||
Aci,
|
||||
Adyen,
|
||||
Airwallex,
|
||||
Authorizedotnet,
|
||||
Bambora,
|
||||
Bankofamerica,
|
||||
Bitpay,
|
||||
Bluesnap,
|
||||
Boku,
|
||||
Braintree,
|
||||
Cashtocode,
|
||||
Checkout,
|
||||
Coinbase,
|
||||
Cryptopay,
|
||||
Cybersource,
|
||||
Dlocal,
|
||||
Fiserv,
|
||||
Forte,
|
||||
Globalpay,
|
||||
Globepay,
|
||||
Gocardless,
|
||||
Helcim,
|
||||
Iatapay,
|
||||
Klarna,
|
||||
Mollie,
|
||||
Multisafepay,
|
||||
Nexinets,
|
||||
Nmi,
|
||||
Noon,
|
||||
Nuvei,
|
||||
Opennode,
|
||||
Payme,
|
||||
Paypal,
|
||||
Payu,
|
||||
Powertranz,
|
||||
Prophetpay,
|
||||
Rapyd,
|
||||
Shift4,
|
||||
Square,
|
||||
Stax,
|
||||
Stripe,
|
||||
Trustpay,
|
||||
Tsys,
|
||||
Volt,
|
||||
Wise,
|
||||
Worldline,
|
||||
Worldpay,
|
||||
Zen,
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Clone,
|
||||
Debug,
|
||||
|
||||
@ -2,16 +2,14 @@ pub mod lowering;
|
||||
#[cfg(feature = "ast_parser")]
|
||||
pub mod parser;
|
||||
|
||||
use common_enums::RoutableConnectors;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::{
|
||||
enums::Connector,
|
||||
types::{DataType, Metadata},
|
||||
};
|
||||
use crate::types::{DataType, Metadata};
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
||||
pub struct ConnectorChoice {
|
||||
pub connector: Connector,
|
||||
pub connector: RoutableConnectors,
|
||||
#[cfg(not(feature = "connector_choice_mca_id"))]
|
||||
pub sub_label: Option<String>,
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ macro_rules! dirval {
|
||||
(Connector = $name:ident) => {
|
||||
$crate::frontend::dir::DirValue::Connector(Box::new(
|
||||
$crate::frontend::ast::ConnectorChoice {
|
||||
connector: $crate::frontend::dir::enums::Connector::$name,
|
||||
connector: $crate::enums::RoutableConnectors::$name,
|
||||
},
|
||||
))
|
||||
};
|
||||
@ -51,7 +51,7 @@ macro_rules! dirval {
|
||||
(Connector = $name:ident) => {
|
||||
$crate::frontend::dir::DirValue::Connector(Box::new(
|
||||
$crate::frontend::ast::ConnectorChoice {
|
||||
connector: $crate::frontend::dir::enums::Connector::$name,
|
||||
connector: $crate::enums::RoutableConnectors::$name,
|
||||
sub_label: None,
|
||||
},
|
||||
))
|
||||
@ -60,7 +60,7 @@ macro_rules! dirval {
|
||||
(Connector = ($name:ident, $sub_label:literal)) => {
|
||||
$crate::frontend::dir::DirValue::Connector(Box::new(
|
||||
$crate::frontend::ast::ConnectorChoice {
|
||||
connector: $crate::frontend::dir::enums::Connector::$name,
|
||||
connector: $crate::enums::RoutableConnectors::$name,
|
||||
sub_label: Some($sub_label.to_string()),
|
||||
},
|
||||
))
|
||||
@ -464,7 +464,7 @@ impl DirKeyKind {
|
||||
.collect(),
|
||||
),
|
||||
Self::Connector => Some(
|
||||
enums::Connector::iter()
|
||||
common_enums::RoutableConnectors::iter()
|
||||
.map(|connector| {
|
||||
DirValue::Connector(Box::new(ast::ConnectorChoice {
|
||||
connector,
|
||||
|
||||
@ -2,9 +2,9 @@ use strum::VariantNames;
|
||||
|
||||
use crate::enums::collect_variants;
|
||||
pub use crate::enums::{
|
||||
AuthenticationType, CaptureMethod, CardNetwork, Connector, Country, Country as BusinessCountry,
|
||||
AuthenticationType, CaptureMethod, CardNetwork, Country, Country as BusinessCountry,
|
||||
Country as BillingCountry, Currency as PaymentCurrency, MandateAcceptanceType, MandateType,
|
||||
PaymentMethod, PaymentType, SetupFutureUsage,
|
||||
PaymentMethod, PaymentType, RoutableConnectors, SetupFutureUsage,
|
||||
};
|
||||
|
||||
#[derive(
|
||||
|
||||
@ -20,6 +20,7 @@ api_models = { version = "0.1.0", path = "../api_models", package = "api_models"
|
||||
currency_conversion = { version = "0.1.0", path = "../currency_conversion" }
|
||||
euclid = { path = "../euclid", features = [] }
|
||||
kgraph_utils = { version = "0.1.0", path = "../kgraph_utils" }
|
||||
common_enums = { version = "0.1.0", path = "../common_enums" }
|
||||
|
||||
# Third party crates
|
||||
getrandom = { version = "0.2.10", features = ["js"] }
|
||||
|
||||
@ -7,6 +7,7 @@ use std::{
|
||||
};
|
||||
|
||||
use api_models::{admin as admin_api, routing::ConnectorSelection};
|
||||
use common_enums::RoutableConnectors;
|
||||
use currency_conversion::{
|
||||
conversion::convert as convert_currency, types as currency_conversion_types,
|
||||
};
|
||||
@ -17,7 +18,6 @@ use euclid::{
|
||||
graph::{self, Memoization},
|
||||
state_machine, truth,
|
||||
},
|
||||
enums,
|
||||
frontend::{
|
||||
ast,
|
||||
dir::{self, enums as dir_enums},
|
||||
@ -61,8 +61,8 @@ pub fn convert_forex_value(amount: i64, from_currency: JsValue, to_currency: JsV
|
||||
.get()
|
||||
.ok_or("Forex Data not seeded")
|
||||
.err_to_js()?;
|
||||
let from_currency: enums::Currency = serde_wasm_bindgen::from_value(from_currency)?;
|
||||
let to_currency: enums::Currency = serde_wasm_bindgen::from_value(to_currency)?;
|
||||
let from_currency: common_enums::Currency = serde_wasm_bindgen::from_value(from_currency)?;
|
||||
let to_currency: common_enums::Currency = serde_wasm_bindgen::from_value(to_currency)?;
|
||||
let converted_amount = convert_currency(forex_data, from_currency, to_currency, amount)
|
||||
.map_err(|_| "conversion not possible for provided values")
|
||||
.err_to_js()?;
|
||||
@ -80,7 +80,7 @@ pub fn seed_knowledge_graph(mcas: JsValue) -> JsResult {
|
||||
.iter()
|
||||
.map(|mca| {
|
||||
Ok::<_, strum::ParseError>(ast::ConnectorChoice {
|
||||
connector: dir_enums::Connector::from_str(&mca.connector_name)?,
|
||||
connector: RoutableConnectors::from_str(&mca.connector_name)?,
|
||||
#[cfg(not(feature = "connector_choice_mca_id"))]
|
||||
sub_label: mca.business_sub_label.clone(),
|
||||
})
|
||||
@ -183,7 +183,9 @@ pub fn run_program(program: JsValue, input: JsValue) -> JsResult {
|
||||
|
||||
#[wasm_bindgen(js_name = getAllConnectors)]
|
||||
pub fn get_all_connectors() -> JsResult {
|
||||
Ok(serde_wasm_bindgen::to_value(enums::Connector::VARIANTS)?)
|
||||
Ok(serde_wasm_bindgen::to_value(
|
||||
common_enums::RoutableConnectors::VARIANTS,
|
||||
)?)
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = getAllKeys)]
|
||||
|
||||
@ -11,6 +11,7 @@ connector_choice_mca_id = ["api_models/connector_choice_mca_id", "euclid/connect
|
||||
|
||||
[dependencies]
|
||||
api_models = { version = "0.1.0", path = "../api_models", package = "api_models" }
|
||||
common_enums = { version = "0.1.0", path = "../common_enums" }
|
||||
euclid = { version = "0.1.0", path = "../euclid" }
|
||||
masking = { version = "0.1.0", path = "../masking/" }
|
||||
|
||||
|
||||
@ -5,10 +5,7 @@ use api_models::{
|
||||
};
|
||||
use euclid::{
|
||||
dssa::graph::{self, DomainIdentifier},
|
||||
frontend::{
|
||||
ast,
|
||||
dir::{self, enums as dir_enums},
|
||||
},
|
||||
frontend::{ast, dir},
|
||||
types::{NumValue, NumValueRefinement},
|
||||
};
|
||||
|
||||
@ -277,7 +274,7 @@ fn compile_merchant_connector_graph(
|
||||
builder: &mut graph::KnowledgeGraphBuilder<'_>,
|
||||
mca: admin_api::MerchantConnectorResponse,
|
||||
) -> Result<(), KgraphError> {
|
||||
let connector = dir_enums::Connector::from_str(&mca.connector_name)
|
||||
let connector = common_enums::RoutableConnectors::from_str(&mca.connector_name)
|
||||
.map_err(|_| KgraphError::InvalidConnectorName(mca.connector_name.clone()))?;
|
||||
|
||||
let mut agg_nodes: Vec<(graph::NodeId, graph::Relation)> = Vec::new();
|
||||
|
||||
@ -81,7 +81,7 @@ pub async fn payments_operation_core<F, Req, Op, FData, Ctx>(
|
||||
req: Req,
|
||||
call_connector_action: CallConnectorAction,
|
||||
auth_flow: services::AuthFlow,
|
||||
eligible_connectors: Option<Vec<api_models::enums::RoutableConnectors>>,
|
||||
eligible_connectors: Option<Vec<common_enums::RoutableConnectors>>,
|
||||
header_payload: HeaderPayload,
|
||||
) -> RouterResult<(
|
||||
PaymentData<F>,
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
use api_models::{self, enums as api_enums, routing as routing_types};
|
||||
use api_models::{self, routing as routing_types};
|
||||
use diesel_models::enums as storage_enums;
|
||||
use euclid::{enums as dsl_enums, frontend::ast as dsl_ast};
|
||||
|
||||
use crate::types::transformers::{ForeignFrom, ForeignInto};
|
||||
use crate::types::transformers::ForeignFrom;
|
||||
|
||||
impl ForeignFrom<routing_types::RoutableConnectorChoice> for dsl_ast::ConnectorChoice {
|
||||
fn foreign_from(from: routing_types::RoutableConnectorChoice) -> Self {
|
||||
Self {
|
||||
// #[cfg(feature = "backwards_compatibility")]
|
||||
// choice_kind: from.choice_kind.foreign_into(),
|
||||
connector: from.connector.foreign_into(),
|
||||
connector: from.connector,
|
||||
#[cfg(not(feature = "connector_choice_mca_id"))]
|
||||
sub_label: from.sub_label,
|
||||
}
|
||||
@ -52,72 +52,3 @@ impl ForeignFrom<storage_enums::MandateDataType> for dsl_enums::MandateType {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ForeignFrom<api_enums::RoutableConnectors> for dsl_enums::Connector {
|
||||
fn foreign_from(from: api_enums::RoutableConnectors) -> Self {
|
||||
match from {
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::RoutableConnectors::DummyConnector1 => Self::DummyConnector1,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::RoutableConnectors::DummyConnector2 => Self::DummyConnector2,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::RoutableConnectors::DummyConnector3 => Self::DummyConnector3,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::RoutableConnectors::DummyConnector4 => Self::DummyConnector4,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::RoutableConnectors::DummyConnector5 => Self::DummyConnector5,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::RoutableConnectors::DummyConnector6 => Self::DummyConnector6,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
api_enums::RoutableConnectors::DummyConnector7 => Self::DummyConnector7,
|
||||
api_enums::RoutableConnectors::Aci => Self::Aci,
|
||||
api_enums::RoutableConnectors::Adyen => Self::Adyen,
|
||||
api_enums::RoutableConnectors::Airwallex => Self::Airwallex,
|
||||
api_enums::RoutableConnectors::Authorizedotnet => Self::Authorizedotnet,
|
||||
api_enums::RoutableConnectors::Bambora => Self::Bambora,
|
||||
api_enums::RoutableConnectors::Bankofamerica => Self::Bankofamerica,
|
||||
api_enums::RoutableConnectors::Bitpay => Self::Bitpay,
|
||||
api_enums::RoutableConnectors::Bluesnap => Self::Bluesnap,
|
||||
api_enums::RoutableConnectors::Boku => Self::Boku,
|
||||
api_enums::RoutableConnectors::Braintree => Self::Braintree,
|
||||
api_enums::RoutableConnectors::Cashtocode => Self::Cashtocode,
|
||||
api_enums::RoutableConnectors::Checkout => Self::Checkout,
|
||||
api_enums::RoutableConnectors::Coinbase => Self::Coinbase,
|
||||
api_enums::RoutableConnectors::Cryptopay => Self::Cryptopay,
|
||||
api_enums::RoutableConnectors::Cybersource => Self::Cybersource,
|
||||
api_enums::RoutableConnectors::Dlocal => Self::Dlocal,
|
||||
api_enums::RoutableConnectors::Fiserv => Self::Fiserv,
|
||||
api_enums::RoutableConnectors::Forte => Self::Forte,
|
||||
api_enums::RoutableConnectors::Globalpay => Self::Globalpay,
|
||||
api_enums::RoutableConnectors::Globepay => Self::Globepay,
|
||||
api_enums::RoutableConnectors::Gocardless => Self::Gocardless,
|
||||
api_enums::RoutableConnectors::Helcim => Self::Helcim,
|
||||
api_enums::RoutableConnectors::Iatapay => Self::Iatapay,
|
||||
api_enums::RoutableConnectors::Klarna => Self::Klarna,
|
||||
api_enums::RoutableConnectors::Mollie => Self::Mollie,
|
||||
api_enums::RoutableConnectors::Multisafepay => Self::Multisafepay,
|
||||
api_enums::RoutableConnectors::Nexinets => Self::Nexinets,
|
||||
api_enums::RoutableConnectors::Nmi => Self::Nmi,
|
||||
api_enums::RoutableConnectors::Noon => Self::Noon,
|
||||
api_enums::RoutableConnectors::Nuvei => Self::Nuvei,
|
||||
api_enums::RoutableConnectors::Opennode => Self::Opennode,
|
||||
api_enums::RoutableConnectors::Payme => Self::Payme,
|
||||
api_enums::RoutableConnectors::Paypal => Self::Paypal,
|
||||
api_enums::RoutableConnectors::Payu => Self::Payu,
|
||||
api_enums::RoutableConnectors::Powertranz => Self::Powertranz,
|
||||
api_enums::RoutableConnectors::Prophetpay => Self::Prophetpay,
|
||||
api_enums::RoutableConnectors::Rapyd => Self::Rapyd,
|
||||
api_enums::RoutableConnectors::Shift4 => Self::Shift4,
|
||||
api_enums::RoutableConnectors::Square => Self::Square,
|
||||
api_enums::RoutableConnectors::Stax => Self::Stax,
|
||||
api_enums::RoutableConnectors::Stripe => Self::Stripe,
|
||||
api_enums::RoutableConnectors::Trustpay => Self::Trustpay,
|
||||
api_enums::RoutableConnectors::Tsys => Self::Tsys,
|
||||
api_enums::RoutableConnectors::Volt => Self::Volt,
|
||||
api_enums::RoutableConnectors::Wise => Self::Wise,
|
||||
api_enums::RoutableConnectors::Worldline => Self::Worldline,
|
||||
api_enums::RoutableConnectors::Worldpay => Self::Worldpay,
|
||||
api_enums::RoutableConnectors::Zen => Self::Zen,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,7 +9,6 @@ use common_utils::{
|
||||
};
|
||||
use diesel_models::enums as storage_enums;
|
||||
use error_stack::{IntoReport, ResultExt};
|
||||
use euclid::enums as dsl_enums;
|
||||
use masking::{ExposeInterface, PeekInterface};
|
||||
|
||||
use super::domain;
|
||||
@ -174,25 +173,11 @@ impl ForeignFrom<storage_enums::MandateDataType> for api_models::payments::Manda
|
||||
}
|
||||
}
|
||||
|
||||
impl ForeignTryFrom<api_enums::Connector> for api_enums::RoutableConnectors {
|
||||
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 {
|
||||
#[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::Aci => Self::Aci,
|
||||
api_enums::Connector::Adyen => Self::Adyen,
|
||||
api_enums::Connector::Airwallex => Self::Airwallex,
|
||||
@ -253,79 +238,24 @@ impl ForeignTryFrom<api_enums::Connector> for api_enums::RoutableConnectors {
|
||||
api_enums::Connector::Worldline => Self::Worldline,
|
||||
api_enums::Connector::Worldpay => Self::Worldpay,
|
||||
api_enums::Connector::Zen => Self::Zen,
|
||||
#[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,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl ForeignFrom<dsl_enums::Connector> for api_enums::RoutableConnectors {
|
||||
fn foreign_from(from: dsl_enums::Connector) -> Self {
|
||||
match from {
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
dsl_enums::Connector::DummyConnector1 => Self::DummyConnector1,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
dsl_enums::Connector::DummyConnector2 => Self::DummyConnector2,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
dsl_enums::Connector::DummyConnector3 => Self::DummyConnector3,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
dsl_enums::Connector::DummyConnector4 => Self::DummyConnector4,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
dsl_enums::Connector::DummyConnector5 => Self::DummyConnector5,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
dsl_enums::Connector::DummyConnector6 => Self::DummyConnector6,
|
||||
#[cfg(feature = "dummy_connector")]
|
||||
dsl_enums::Connector::DummyConnector7 => Self::DummyConnector7,
|
||||
dsl_enums::Connector::Aci => Self::Aci,
|
||||
dsl_enums::Connector::Adyen => Self::Adyen,
|
||||
dsl_enums::Connector::Airwallex => Self::Airwallex,
|
||||
dsl_enums::Connector::Authorizedotnet => Self::Authorizedotnet,
|
||||
dsl_enums::Connector::Bambora => Self::Bambora,
|
||||
dsl_enums::Connector::Bankofamerica => Self::Bankofamerica,
|
||||
dsl_enums::Connector::Bitpay => Self::Bitpay,
|
||||
dsl_enums::Connector::Bluesnap => Self::Bluesnap,
|
||||
dsl_enums::Connector::Boku => Self::Boku,
|
||||
dsl_enums::Connector::Braintree => Self::Braintree,
|
||||
dsl_enums::Connector::Cashtocode => Self::Cashtocode,
|
||||
dsl_enums::Connector::Checkout => Self::Checkout,
|
||||
dsl_enums::Connector::Coinbase => Self::Coinbase,
|
||||
dsl_enums::Connector::Cryptopay => Self::Cryptopay,
|
||||
dsl_enums::Connector::Cybersource => Self::Cybersource,
|
||||
dsl_enums::Connector::Dlocal => Self::Dlocal,
|
||||
dsl_enums::Connector::Fiserv => Self::Fiserv,
|
||||
dsl_enums::Connector::Forte => Self::Forte,
|
||||
dsl_enums::Connector::Globalpay => Self::Globalpay,
|
||||
dsl_enums::Connector::Globepay => Self::Globepay,
|
||||
dsl_enums::Connector::Gocardless => Self::Gocardless,
|
||||
dsl_enums::Connector::Helcim => Self::Helcim,
|
||||
dsl_enums::Connector::Iatapay => Self::Iatapay,
|
||||
dsl_enums::Connector::Klarna => Self::Klarna,
|
||||
dsl_enums::Connector::Mollie => Self::Mollie,
|
||||
dsl_enums::Connector::Multisafepay => Self::Multisafepay,
|
||||
dsl_enums::Connector::Nexinets => Self::Nexinets,
|
||||
dsl_enums::Connector::Nmi => Self::Nmi,
|
||||
dsl_enums::Connector::Noon => Self::Noon,
|
||||
dsl_enums::Connector::Nuvei => Self::Nuvei,
|
||||
dsl_enums::Connector::Opennode => Self::Opennode,
|
||||
dsl_enums::Connector::Payme => Self::Payme,
|
||||
dsl_enums::Connector::Paypal => Self::Paypal,
|
||||
dsl_enums::Connector::Payu => Self::Payu,
|
||||
dsl_enums::Connector::Powertranz => Self::Powertranz,
|
||||
dsl_enums::Connector::Prophetpay => Self::Prophetpay,
|
||||
dsl_enums::Connector::Rapyd => Self::Rapyd,
|
||||
dsl_enums::Connector::Shift4 => Self::Shift4,
|
||||
dsl_enums::Connector::Square => Self::Square,
|
||||
dsl_enums::Connector::Stax => Self::Stax,
|
||||
dsl_enums::Connector::Stripe => Self::Stripe,
|
||||
dsl_enums::Connector::Trustpay => Self::Trustpay,
|
||||
dsl_enums::Connector::Tsys => Self::Tsys,
|
||||
dsl_enums::Connector::Volt => Self::Volt,
|
||||
dsl_enums::Connector::Wise => Self::Wise,
|
||||
dsl_enums::Connector::Worldline => Self::Worldline,
|
||||
dsl_enums::Connector::Worldpay => Self::Worldpay,
|
||||
dsl_enums::Connector::Zen => Self::Zen,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ForeignFrom<storage_enums::MandateAmountData> for api_models::payments::MandateAmountData {
|
||||
fn foreign_from(from: storage_enums::MandateAmountData) -> Self {
|
||||
Self {
|
||||
|
||||
@ -45,7 +45,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/enums.rs crates/euclid/src/enums.rs crates/api_models/src/routing.rs $src/core/payments/flows.rs $src/core/admin.rs $src/core/payments/routing/transformers.rs $src/types/transformers.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/enums.rs crates/euclid/src/enums.rs crates/api_models/src/routing.rs $src/core/payments/flows.rs crates/common_enums/src/enums.rs $src/types/transformers.rs $src/core/admin.rs
|
||||
|
||||
# Add enum for this connector in required places
|
||||
previous_connector=''
|
||||
@ -61,14 +61,12 @@ sed -r -i'' -e "s/\"$previous_connector\",/\"$previous_connector\",\n \"${pa
|
||||
sed -i '' -e "s/\(pub enum Connector {\)/\1\n\t${payment_gateway_camelcase},/" crates/api_models/src/enums.rs
|
||||
sed -i '' -e "s/\(pub enum Connector {\)/\1\n\t${payment_gateway_camelcase},/" crates/euclid/src/enums.rs
|
||||
sed -i '' -e "s/\(match connector_name {\)/\1\n\t\tapi_enums::Connector::${payment_gateway_camelcase} => {${payment_gateway}::transformers::${payment_gateway_camelcase}AuthType::try_from(val)?;Ok(())}/" $src/core/admin.rs
|
||||
sed -i'' -e "s|$previous_connector_camelcase \(.*\)|$previous_connector_camelcase \1\n\t\t\tapi_enums::RoutableConnectors::${payment_gateway_camelcase} => Self::${payment_gateway_camelcase},|" $src/core/payments/routing/transformers.rs
|
||||
sed -i'' -e "s|dsl_enums::Connector::$previous_connector_camelcase \(.*\)|dsl_enums::Connector::$previous_connector_camelcase \1\n\t\t\tdsl_enums::Connector::${payment_gateway_camelcase} => Self::${payment_gateway_camelcase},|" $src/types/transformers.rs
|
||||
sed -i'' -e "s|api_enums::Connector::$previous_connector_camelcase \(.*\)|api_enums::Connector::$previous_connector_camelcase \1\n\t\t\tapi_enums::Connector::${payment_gateway_camelcase} => Self::${payment_gateway_camelcase},|" $src/types/transformers.rs
|
||||
sed -i'' -e "s/\(pub enum RoutableConnectors {\)/\1\n\t${payment_gateway_camelcase},/" crates/api_models/src/enums.rs
|
||||
sed -i'' -e "s/\(pub enum RoutableConnectors {\)/\1\n\t${payment_gateway_camelcase},/" crates/common_enums/src/enums.rs
|
||||
sed -i'' -e "s|$previous_connector_camelcase \(.*\)|$previous_connector_camelcase \1\n\t\t\tapi_enums::Connector::${payment_gateway_camelcase} => Self::${payment_gateway_camelcase},|" $src/types/transformers.rs
|
||||
sed -i'' -e "s/^default_imp_for_\(.*\)/default_imp_for_\1\n\tconnector::${payment_gateway_camelcase},/" $src/core/payments/flows.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/enums.rs-e crates/euclid/src/enums.rs-e crates/api_models/src/routing.rs-e $src/core/payments/flows.rs-e $src/core/admin.rs-e $src/core/payments/routing/transformers.rs-e $src/types/transformers.rs-e
|
||||
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/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/enums.rs-e $src/types/transformers.rs-e $src/core/admin.rs-e
|
||||
cd $conn/
|
||||
|
||||
# Generate template files for the connector
|
||||
|
||||
Reference in New Issue
Block a user