diff --git a/Cargo.lock b/Cargo.lock index ae7afa85d7..222bc02212 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,30 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "actix" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f728064aca1c318585bf4bb04ffcfac9e75e508ab4e8b1bd9ba5dfe04e2cbed5" -dependencies = [ - "actix-rt", - "actix_derive", - "bitflags 1.3.2", - "bytes", - "crossbeam-channel", - "futures-core", - "futures-sink", - "futures-task", - "futures-util", - "log", - "once_cell", - "parking_lot 0.12.1", - "pin-project-lite", - "smallvec", - "tokio", - "tokio-util", -] - [[package]] name = "actix-codec" version = "0.5.1" @@ -282,17 +258,6 @@ dependencies = [ "syn 2.0.38", ] -[[package]] -name = "actix_derive" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d44b8fee1ced9671ba043476deddef739dd0959bf77030b26b738cc591737a7" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "addr2line" version = "0.21.0" @@ -418,7 +383,6 @@ dependencies = [ "serde_json", "serde_with", "strum 0.24.1", - "thiserror", "time", "url", "utoipa", @@ -1561,7 +1525,6 @@ dependencies = [ "serde", "serde_json", "strum 0.25.0", - "time", "utoipa", ] @@ -1924,7 +1887,6 @@ dependencies = [ "masking", "serde", "serde_json", - "strum 0.25.0", "thiserror", "time", ] @@ -2035,13 +1997,10 @@ name = "diesel_models" version = "0.1.0" dependencies = [ "async-bb8-diesel", - "aws-config", - "aws-sdk-s3", "common_enums", "common_utils", "diesel", "error-stack", - "external_services", "frunk", "frunk_core", "masking", @@ -3271,12 +3230,6 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db" -[[package]] -name = "literally" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d2be3f5a0d4d5c983d1f8ecc2a87676a0875a14feb9eebf0675f7c3e2f3c35" - [[package]] name = "local-channel" version = "0.1.4" @@ -4593,7 +4546,6 @@ dependencies = [ name = "router" version = "0.2.0" dependencies = [ - "actix", "actix-cors", "actix-http", "actix-multipart", @@ -4635,7 +4587,6 @@ dependencies = [ "josekit", "jsonwebtoken", "kgraph_utils", - "literally", "masking", "maud", "mimalloc", @@ -4664,18 +4615,14 @@ dependencies = [ "serde_with", "serial_test", "sha-1 0.9.8", - "signal-hook", - "signal-hook-tokio", "sqlx", "storage_impl", "strum 0.24.1", "tera", "test_utils", - "thirtyfour", "thiserror", "time", "tokio", - "toml 0.7.4", "unicode-segmentation", "url", "utoipa", @@ -4962,7 +4909,6 @@ dependencies = [ "router_env", "serde", "serde_json", - "signal-hook-tokio", "storage_impl", "strum 0.24.1", "thiserror", @@ -5496,7 +5442,6 @@ dependencies = [ "diesel_models", "dyn-clone", "error-stack", - "external_services", "futures", "http", "masking", @@ -5730,27 +5675,20 @@ dependencies = [ name = "test_utils" version = "0.1.0" dependencies = [ - "actix-http", - "actix-web", - "api_models", "async-trait", - "awc", "base64 0.21.4", "clap", - "derive_deref", "masking", "rand 0.8.5", "reqwest", "serde", "serde_json", - "serde_path_to_error", "serde_urlencoded", "serial_test", "thirtyfour", "time", "tokio", "toml 0.7.4", - "uuid", ] [[package]] diff --git a/crates/api_models/Cargo.toml b/crates/api_models/Cargo.toml index d15fdeabf3..ac624c899c 100644 --- a/crates/api_models/Cargo.toml +++ b/crates/api_models/Cargo.toml @@ -14,7 +14,7 @@ connector_choice_bcompat = [] errors = ["dep:actix-web", "dep:reqwest"] backwards_compatibility = ["connector_choice_bcompat"] connector_choice_mca_id = ["euclid/connector_choice_mca_id"] -dummy_connector = ["common_enums/dummy_connector", "euclid/dummy_connector"] +dummy_connector = ["euclid/dummy_connector"] detailed_errors = [] payouts = [] @@ -30,7 +30,6 @@ strum = { version = "0.24.1", features = ["derive"] } time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] } url = { version = "2.4.0", features = ["serde"] } utoipa = { version = "3.3.0", features = ["preserve_order"] } -thiserror = "1.0.40" # First party crates cards = { version = "0.1.0", path = "../cards" } diff --git a/crates/common_enums/Cargo.toml b/crates/common_enums/Cargo.toml index db37d27ab0..88628825ca 100644 --- a/crates/common_enums/Cargo.toml +++ b/crates/common_enums/Cargo.toml @@ -7,15 +7,11 @@ rust-version.workspace = true readme = "README.md" license.workspace = true -[features] -dummy_connector = [] - [dependencies] diesel = { version = "2.1.0", features = ["postgres"] } serde = { version = "1.0.160", features = ["derive"] } serde_json = "1.0.96" strum = { version = "0.25", features = ["derive"] } -time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] } utoipa = { version = "3.3.0", features = ["preserve_order"] } # First party crates diff --git a/crates/common_utils/Cargo.toml b/crates/common_utils/Cargo.toml index 62bd747da1..3619c93d77 100644 --- a/crates/common_utils/Cargo.toml +++ b/crates/common_utils/Cargo.toml @@ -23,6 +23,7 @@ http = "0.2.9" md5 = "0.7.0" nanoid = "0.4.0" once_cell = "1.18.0" +phonenumber = "0.3.3" quick-xml = { version = "0.28.2", features = ["serialize"] } rand = "0.8.5" regex = "1.8.4" @@ -37,12 +38,11 @@ strum = { version = "0.24.1", features = ["derive"] } thiserror = "1.0.40" time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] } tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"], optional = true } -phonenumber = "0.3.3" # First party crates +common_enums = { version = "0.1.0", path = "../common_enums" } masking = { version = "0.1.0", path = "../masking" } router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"], optional = true } -common_enums = { version = "0.1.0", path = "../common_enums" } [target.'cfg(not(target_os = "windows"))'.dependencies] signal-hook-tokio = { version = "0.3.1", features = ["futures-v0_3"], optional = true } diff --git a/crates/data_models/Cargo.toml b/crates/data_models/Cargo.toml index c7c8727716..57ae1ec1ec 100644 --- a/crates/data_models/Cargo.toml +++ b/crates/data_models/Cargo.toml @@ -8,16 +8,15 @@ readme = "README.md" license.workspace = true [features] -default = ["olap", "oltp"] -oltp = [] +default = ["olap"] olap = [] [dependencies] # First party deps api_models = { version = "0.1.0", path = "../api_models" } -masking = { version = "0.1.0", path = "../masking" } common_enums = { version = "0.1.0", path = "../common_enums" } common_utils = { version = "0.1.0", path = "../common_utils" } +masking = { version = "0.1.0", path = "../masking" } # Third party deps @@ -25,6 +24,5 @@ async-trait = "0.1.68" error-stack = "0.3.1" serde = { version = "1.0.163", features = ["derive"] } serde_json = "1.0.96" -strum = { version = "0.25", features = [ "derive" ] } thiserror = "1.0.40" time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] } diff --git a/crates/diesel_models/Cargo.toml b/crates/diesel_models/Cargo.toml index 1a0bdfe567..9521c69036 100644 --- a/crates/diesel_models/Cargo.toml +++ b/crates/diesel_models/Cargo.toml @@ -9,15 +9,10 @@ license.workspace = true [features] default = ["kv_store"] -email = ["external_services/email", "dep:aws-config"] -kms = ["external_services/kms", "dep:aws-config"] kv_store = [] -s3 = ["dep:aws-sdk-s3", "dep:aws-config"] [dependencies] async-bb8-diesel = "0.1.0" -aws-config = { version = "0.55.3", optional = true } -aws-sdk-s3 = { version = "0.28.0", optional = true } diesel = { version = "2.1.0", features = ["postgres", "serde_json", "time", "64-column-tables"] } error-stack = "0.3.1" frunk = "0.4.1" @@ -31,7 +26,6 @@ time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] } # First party crates common_enums = { path = "../common_enums" } common_utils = { version = "0.1.0", path = "../common_utils" } -external_services = { version = "0.1.0", path = "../external_services" } masking = { version = "0.1.0", path = "../masking" } router_derive = { version = "0.1.0", path = "../router_derive" } router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"] } diff --git a/crates/drainer/Cargo.toml b/crates/drainer/Cargo.toml index 3bf056a69b..56bebdce6b 100644 --- a/crates/drainer/Cargo.toml +++ b/crates/drainer/Cargo.toml @@ -8,7 +8,7 @@ readme = "README.md" license.workspace = true [features] -release = ["kms","vergen"] +release = ["kms", "vergen"] kms = ["external_services/kms"] vergen = ["router_env/vergen"] @@ -28,11 +28,11 @@ tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"] } # First Party Crates common_utils = { version = "0.1.0", path = "../common_utils", features = ["signals"] } +diesel_models = { version = "0.1.0", path = "../diesel_models", features = ["kv_store"] } external_services = { version = "0.1.0", path = "../external_services" } masking = { version = "0.1.0", path = "../masking" } redis_interface = { version = "0.1.0", path = "../redis_interface" } router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"] } -diesel_models = { version = "0.1.0", path = "../diesel_models", features = ["kv_store"] } [build-dependencies] router_env = { version = "0.1.0", path = "../router_env", default-features = false } diff --git a/crates/euclid/Cargo.toml b/crates/euclid/Cargo.toml index f0e24b1ff6..8597959641 100644 --- a/crates/euclid/Cargo.toml +++ b/crates/euclid/Cargo.toml @@ -6,6 +6,7 @@ edition.workspace = true rust-version.workspace = true [dependencies] +erased-serde = "0.3.28" frunk = "0.4.1" frunk_core = "0.4.1" nom = { version = "7.1.3", features = ["alloc"], optional = true } @@ -13,7 +14,6 @@ once_cell = "1.18.0" rustc-hash = "1.1.0" serde = { version = "1.0.163", features = ["derive", "rc"] } serde_json = "1.0.96" -erased-serde = "0.3.28" strum = { version = "0.25", features = ["derive"] } thiserror = "1.0.43" @@ -24,10 +24,8 @@ euclid_macros = { version = "0.1.0", path = "../euclid_macros" } [features] ast_parser = ["dep:nom"] valued_jit = [] -connector_choice_bcompat = [] connector_choice_mca_id = [] dummy_connector = [] -backwards_compatibility = ["connector_choice_bcompat"] [dev-dependencies] criterion = "0.5" diff --git a/crates/euclid_wasm/Cargo.toml b/crates/euclid_wasm/Cargo.toml index 90489eb78b..4fc8cd970f 100644 --- a/crates/euclid_wasm/Cargo.toml +++ b/crates/euclid_wasm/Cargo.toml @@ -10,28 +10,21 @@ rust-version.workspace = true crate-type = ["cdylib"] [features] -default = ["connector_choice_bcompat", "payouts"] -connector_choice_bcompat = [ - "euclid/connector_choice_bcompat", - "api_models/connector_choice_bcompat", - "kgraph_utils/backwards_compatibility" -] -connector_choice_mca_id = [ - "api_models/connector_choice_mca_id", - "euclid/connector_choice_mca_id", - "kgraph_utils/connector_choice_mca_id" -] +default = ["connector_choice_bcompat"] +connector_choice_bcompat = ["api_models/connector_choice_bcompat"] +connector_choice_mca_id = ["api_models/connector_choice_mca_id", "euclid/connector_choice_mca_id", "kgraph_utils/connector_choice_mca_id"] dummy_connector = ["kgraph_utils/dummy_connector"] -payouts = [] [dependencies] api_models = { version = "0.1.0", path = "../api_models", package = "api_models" } euclid = { path = "../euclid", features = [] } kgraph_utils = { version = "0.1.0", path = "../kgraph_utils" } + +# Third party crates getrandom = { version = "0.2.10", features = ["js"] } once_cell = "1.18.0" +ron-parser = "0.1.4" serde = { version = "1.0", features = [] } serde-wasm-bindgen = "0.5" strum = { version = "0.25", features = ["derive"] } wasm-bindgen = { version = "0.2.86" } -ron-parser = "0.1.4" diff --git a/crates/kgraph_utils/Cargo.toml b/crates/kgraph_utils/Cargo.toml index fa90b3974c..cd0adf0bc8 100644 --- a/crates/kgraph_utils/Cargo.toml +++ b/crates/kgraph_utils/Cargo.toml @@ -7,14 +7,14 @@ rust-version.workspace = true [features] dummy_connector = ["api_models/dummy_connector", "euclid/dummy_connector"] -backwards_compatibility = ["euclid/backwards_compatibility", "euclid/backwards_compatibility"] connector_choice_mca_id = ["api_models/connector_choice_mca_id", "euclid/connector_choice_mca_id"] [dependencies] api_models = { version = "0.1.0", path = "../api_models", package = "api_models" } euclid = { version = "0.1.0", path = "../euclid" } -masking = { version = "0.1.0", path = "../masking/"} +masking = { version = "0.1.0", path = "../masking/" } +# Third party crates serde = "1.0.163" serde_json = "1.0.96" thiserror = "1.0.43" diff --git a/crates/redis_interface/Cargo.toml b/crates/redis_interface/Cargo.toml index 8066787dca..9d3ae724d4 100644 --- a/crates/redis_interface/Cargo.toml +++ b/crates/redis_interface/Cargo.toml @@ -9,7 +9,7 @@ license.workspace = true [dependencies] error-stack = "0.3.1" -fred = { version = "6.3.0", features = ["metrics", "partial-tracing","subscriber-client"] } +fred = { version = "6.3.0", features = ["metrics", "partial-tracing", "subscriber-client"] } futures = "0.3" serde = { version = "1.0.163", features = ["derive"] } thiserror = "1.0.40" diff --git a/crates/router/Cargo.toml b/crates/router/Cargo.toml index 8f6906e068..5e8cb7a729 100644 --- a/crates/router/Cargo.toml +++ b/crates/router/Cargo.toml @@ -17,24 +17,22 @@ basilisk = ["kms"] stripe = ["dep:serde_qs"] release = ["kms", "stripe", "basilisk", "s3", "email", "business_profile_routing", "accounts_cache", "kv_store", "profile_specific_fallback_routing"] olap = ["data_models/olap", "storage_impl/olap", "scheduler/olap"] -oltp = ["data_models/oltp", "storage_impl/oltp"] +oltp = ["storage_impl/oltp"] kv_store = ["scheduler/kv_store"] accounts_cache = [] openapi = ["olap", "oltp", "payouts"] vergen = ["router_env/vergen"] -backwards_compatibility = ["api_models/backwards_compatibility", "euclid/backwards_compatibility", "kgraph_utils/backwards_compatibility"] -business_profile_routing=["api_models/business_profile_routing"] +backwards_compatibility = ["api_models/backwards_compatibility"] +business_profile_routing = ["api_models/business_profile_routing"] profile_specific_fallback_routing = [] dummy_connector = ["api_models/dummy_connector", "euclid/dummy_connector", "kgraph_utils/dummy_connector"] connector_choice_mca_id = ["api_models/connector_choice_mca_id", "euclid/connector_choice_mca_id", "kgraph_utils/connector_choice_mca_id"] external_access_dc = ["dummy_connector"] detailed_errors = ["api_models/detailed_errors", "error-stack/serde"] payouts = [] -api_locking = [] [dependencies] -actix = "0.13.0" actix-cors = "0.6.4" actix-multipart = "0.6.0" actix-rt = "2.8.0" @@ -52,6 +50,7 @@ bytes = "1.4.0" clap = { version = "4.3.2", default-features = false, features = ["std", "derive", "help", "usage"] } config = { version = "0.13.3", features = ["toml"] } diesel = { version = "2.1.0", features = ["postgres"] } +digest = "0.9" dyn-clone = "1.0.11" encoding_rs = "0.8.32" error-stack = "0.3.1" @@ -63,13 +62,13 @@ image = "0.23.14" infer = "0.13.0" josekit = "0.8.3" jsonwebtoken = "8.3.0" -literally = "0.1.3" maud = { version = "0.25", features = ["actix-web"] } mimalloc = { version = "0.1", optional = true } mime = "0.3.17" nanoid = "0.4.0" num_cpus = "1.15.0" once_cell = "1.18.0" +openssl = "0.10.55" qrcode = "0.12.0" rand = "0.8.5" rand_chacha = "0.3.1" @@ -84,44 +83,38 @@ serde_path_to_error = "0.1.11" serde_qs = { version = "0.12.0", optional = true } serde_urlencoded = "0.7.1" serde_with = "3.0.0" -signal-hook = "0.3.15" -strum = { version = "0.24.1", features = ["derive"] } +sha-1 = { version = "0.9" } sqlx = { version = "0.6.3", features = ["postgres", "runtime-actix", "runtime-actix-native-tls", "time", "bigdecimal"] } +strum = { version = "0.24.1", features = ["derive"] } +tera = "1.19.1" thiserror = "1.0.40" time = { version = "0.3.21", features = ["serde", "serde-well-known", "std"] } tokio = { version = "1.28.2", features = ["macros", "rt-multi-thread"] } -tera = "1.19.1" unicode-segmentation = "1.10.1" url = { version = "2.4.0", features = ["serde"] } utoipa = { version = "3.3.0", features = ["preserve_order", "time"] } utoipa-swagger-ui = { version = "3.1.3", features = ["actix-web"] } uuid = { version = "1.3.3", features = ["serde", "v4"] } validator = "0.16.0" -openssl = "0.10.55" x509-parser = "0.15.0" -sha-1 = { version = "0.9"} -digest = "0.9" # First party crates api_models = { version = "0.1.0", path = "../api_models", features = ["errors"] } cards = { version = "0.1.0", path = "../cards" } +common_enums = { version = "0.1.0", path = "../common_enums" } common_utils = { version = "0.1.0", path = "../common_utils", features = ["signals", "async_ext", "logs"] } -common_enums = { version = "0.1.0", path = "../common_enums"} -external_services = { version = "0.1.0", path = "../external_services" } +data_models = { version = "0.1.0", path = "../data_models", default-features = false } +diesel_models = { version = "0.1.0", path = "../diesel_models", features = ["kv_store"] } euclid = { version = "0.1.0", path = "../euclid", features = ["valued_jit"] } +external_services = { version = "0.1.0", path = "../external_services" } +kgraph_utils = { version = "0.1.0", path = "../kgraph_utils" } masking = { version = "0.1.0", path = "../masking" } redis_interface = { version = "0.1.0", path = "../redis_interface" } router_derive = { version = "0.1.0", path = "../router_derive" } router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"] } -diesel_models = { version = "0.1.0", path = "../diesel_models", features = ["kv_store"] } -scheduler = { version = "0.1.0", path = "../scheduler", default-features = false} -data_models = { version = "0.1.0", path = "../data_models", default-features = false } -kgraph_utils = { version = "0.1.0", path = "../kgraph_utils" } +scheduler = { version = "0.1.0", path = "../scheduler", default-features = false } storage_impl = { version = "0.1.0", path = "../storage_impl", default-features = false } -[target.'cfg(not(target_os = "windows"))'.dependencies] -signal-hook-tokio = { version = "0.3.1", features = ["futures-v0_3"] } - [build-dependencies] router_env = { version = "0.1.0", path = "../router_env", default-features = false } @@ -131,10 +124,8 @@ awc = { version = "3.1.1", features = ["rustls"] } derive_deref = "1.1.1" rand = "0.8.5" serial_test = "2.0.0" -thirtyfour = "0.31.0" time = { version = "0.3.21", features = ["macros"] } tokio = "1.28.2" -toml = "0.7.4" wiremock = "0.5" # First party dev-dependencies diff --git a/crates/router/tests/connectors/adyen.rs b/crates/router/tests/connectors/adyen.rs index dca7bbfc9b..4b2cbcb7c4 100644 --- a/crates/router/tests/connectors/adyen.rs +++ b/crates/router/tests/connectors/adyen.rs @@ -23,6 +23,7 @@ impl utils::Connector for AdyenTest { } } + #[cfg(feature = "payouts")] fn get_payout_data(&self) -> Option { use router::connector::Adyen; Some(types::api::PayoutConnectorData { @@ -68,6 +69,7 @@ impl AdyenTest { }) } + #[cfg(feature = "payouts")] fn get_payout_info(payout_type: enums::PayoutType) -> Option { Some(PaymentInfo { country: Some(api_models::enums::CountryAlpha2::NL), diff --git a/crates/router/tests/connectors/bankofamerica.rs b/crates/router/tests/connectors/bankofamerica.rs index ce264cbccc..766078fa19 100644 --- a/crates/router/tests/connectors/bankofamerica.rs +++ b/crates/router/tests/connectors/bankofamerica.rs @@ -12,6 +12,7 @@ impl utils::Connector for BankofamericaTest { use router::connector::Bankofamerica; types::api::ConnectorData { connector: Box::new(&Bankofamerica), + // Remove `dummy_connector` feature gate from module in `main.rs` when updating this to use actual connector variant connector_name: types::Connector::DummyConnector1, get_token: types::api::GetToken::Connector, merchant_connector_id: None, diff --git a/crates/router/tests/connectors/globepay.rs b/crates/router/tests/connectors/globepay.rs index 210f12b23d..fcf61dd6b3 100644 --- a/crates/router/tests/connectors/globepay.rs +++ b/crates/router/tests/connectors/globepay.rs @@ -14,7 +14,7 @@ impl utils::Connector for GlobepayTest { use router::connector::Globepay; types::api::ConnectorData { connector: Box::new(&Globepay), - connector_name: types::Connector::DummyConnector1, + connector_name: types::Connector::Globepay, get_token: types::api::GetToken::Connector, merchant_connector_id: None, } diff --git a/crates/router/tests/connectors/gocardless.rs b/crates/router/tests/connectors/gocardless.rs index 6b6bd6d861..f19e90941b 100644 --- a/crates/router/tests/connectors/gocardless.rs +++ b/crates/router/tests/connectors/gocardless.rs @@ -12,7 +12,7 @@ impl utils::Connector for GocardlessTest { use router::connector::Gocardless; types::api::ConnectorData { connector: Box::new(&Gocardless), - connector_name: types::Connector::DummyConnector1, + connector_name: types::Connector::Gocardless, get_token: types::api::GetToken::Connector, merchant_connector_id: None, } diff --git a/crates/router/tests/connectors/helcim.rs b/crates/router/tests/connectors/helcim.rs index 0bac1e7023..c9a891988f 100644 --- a/crates/router/tests/connectors/helcim.rs +++ b/crates/router/tests/connectors/helcim.rs @@ -12,7 +12,7 @@ impl utils::Connector for HelcimTest { use router::connector::Helcim; types::api::ConnectorData { connector: Box::new(&Helcim), - connector_name: types::Connector::DummyConnector1, + connector_name: types::Connector::Helcim, get_token: types::api::GetToken::Connector, merchant_connector_id: None, } diff --git a/crates/router/tests/connectors/main.rs b/crates/router/tests/connectors/main.rs index 03b6181b8a..fc474818b5 100644 --- a/crates/router/tests/connectors/main.rs +++ b/crates/router/tests/connectors/main.rs @@ -11,6 +11,7 @@ mod adyen; mod airwallex; mod authorizedotnet; mod bambora; +#[cfg(feature = "dummy_connector")] mod bankofamerica; mod bitpay; mod bluesnap; @@ -36,13 +37,16 @@ mod nexinets; mod nmi; mod noon; mod nuvei; +#[cfg(feature = "dummy_connector")] mod opayo; mod opennode; +#[cfg(feature = "dummy_connector")] mod payeezy; mod payme; mod paypal; mod payu; mod powertranz; +#[cfg(feature = "dummy_connector")] mod prophetpay; mod rapyd; mod shift4; diff --git a/crates/router/tests/connectors/opayo.rs b/crates/router/tests/connectors/opayo.rs index 6d76133d34..97d744d1e9 100644 --- a/crates/router/tests/connectors/opayo.rs +++ b/crates/router/tests/connectors/opayo.rs @@ -16,6 +16,7 @@ impl utils::Connector for OpayoTest { use router::connector::Opayo; types::api::ConnectorData { connector: Box::new(&Opayo), + // Remove `dummy_connector` feature gate from module in `main.rs` when updating this to use actual connector variant connector_name: types::Connector::DummyConnector1, get_token: types::api::GetToken::Connector, merchant_connector_id: None, diff --git a/crates/router/tests/connectors/payeezy.rs b/crates/router/tests/connectors/payeezy.rs index 81d69503b4..1176ad7322 100644 --- a/crates/router/tests/connectors/payeezy.rs +++ b/crates/router/tests/connectors/payeezy.rs @@ -22,6 +22,7 @@ impl utils::Connector for PayeezyTest { use router::connector::Payeezy; types::api::ConnectorData { connector: Box::new(&Payeezy), + // Remove `dummy_connector` feature gate from module in `main.rs` when updating this to use actual connector variant connector_name: types::Connector::DummyConnector1, get_token: types::api::GetToken::Connector, merchant_connector_id: None, diff --git a/crates/router/tests/connectors/powertranz.rs b/crates/router/tests/connectors/powertranz.rs index cc0028ef3c..eca3f86b56 100644 --- a/crates/router/tests/connectors/powertranz.rs +++ b/crates/router/tests/connectors/powertranz.rs @@ -14,7 +14,7 @@ impl utils::Connector for PowertranzTest { use router::connector::Powertranz; types::api::ConnectorData { connector: Box::new(&Powertranz), - connector_name: types::Connector::DummyConnector1, + connector_name: types::Connector::Powertranz, get_token: types::api::GetToken::Connector, merchant_connector_id: None, } diff --git a/crates/router/tests/connectors/prophetpay.rs b/crates/router/tests/connectors/prophetpay.rs index 2e4c6d7e38..09e4ea4225 100644 --- a/crates/router/tests/connectors/prophetpay.rs +++ b/crates/router/tests/connectors/prophetpay.rs @@ -12,6 +12,7 @@ impl utils::Connector for ProphetpayTest { use router::connector::Prophetpay; types::api::ConnectorData { connector: Box::new(&Prophetpay), + // Remove `dummy_connector` feature gate from module in `main.rs` when updating this to use actual connector variant connector_name: types::Connector::DummyConnector1, get_token: types::api::GetToken::Connector, merchant_connector_id: None, diff --git a/crates/router/tests/connectors/utils.rs b/crates/router/tests/connectors/utils.rs index 1cb3b48f72..1f450a19e7 100644 --- a/crates/router/tests/connectors/utils.rs +++ b/crates/router/tests/connectors/utils.rs @@ -4,9 +4,11 @@ use async_trait::async_trait; use common_utils::pii::Email; use error_stack::Report; use masking::Secret; +#[cfg(feature = "payouts")] +use router::core::utils as core_utils; use router::{ configs::settings::Settings, - core::{errors, errors::ConnectorError, payments, utils as core_utils}, + core::{errors, errors::ConnectorError, payments}, db::StorageImpl, routes, services, types::{self, api, storage::enums, AccessToken, PaymentAddress, RouterData}, @@ -17,15 +19,21 @@ use wiremock::{Mock, MockServer}; pub trait Connector { fn get_data(&self) -> types::api::ConnectorData; + fn get_auth_token(&self) -> types::ConnectorAuthType; + fn get_name(&self) -> String; + fn get_connector_meta(&self) -> Option { None } + /// interval in seconds to be followed when making the subsequent request whenever needed fn get_request_interval(&self) -> u64 { 5 } + + #[cfg(feature = "payouts")] fn get_payout_data(&self) -> Option { None } @@ -423,6 +431,7 @@ pub trait ConnectorActions: Connector { Err(errors::ConnectorError::ProcessingStepFailed(None).into()) } + #[cfg(feature = "payouts")] fn get_payout_request( &self, connector_payout_id: Option, @@ -534,6 +543,7 @@ pub trait ConnectorActions: Connector { } } + #[cfg(feature = "payouts")] async fn verify_payout_eligibility( &self, payout_type: enums::PayoutType, @@ -572,6 +582,7 @@ pub trait ConnectorActions: Connector { Ok(res.response.unwrap()) } + #[cfg(feature = "payouts")] async fn fulfill_payout( &self, connector_payout_id: Option, @@ -611,6 +622,7 @@ pub trait ConnectorActions: Connector { Ok(res.response.unwrap()) } + #[cfg(feature = "payouts")] async fn create_payout( &self, connector_customer: Option, @@ -651,6 +663,7 @@ pub trait ConnectorActions: Connector { Ok(res.response.unwrap()) } + #[cfg(feature = "payouts")] async fn cancel_payout( &self, connector_payout_id: String, @@ -691,6 +704,7 @@ pub trait ConnectorActions: Connector { Ok(res.response.unwrap()) } + #[cfg(feature = "payouts")] async fn create_and_fulfill_payout( &self, connector_customer: Option, @@ -714,6 +728,7 @@ pub trait ConnectorActions: Connector { Ok(fulfill_res) } + #[cfg(feature = "payouts")] async fn create_and_cancel_payout( &self, connector_customer: Option, @@ -737,6 +752,7 @@ pub trait ConnectorActions: Connector { Ok(cancel_res) } + #[cfg(feature = "payouts")] async fn create_payout_recipient( &self, payout_type: enums::PayoutType, diff --git a/crates/router/tests/connectors/volt.rs b/crates/router/tests/connectors/volt.rs index 1c62c47ee0..0df21640c7 100644 --- a/crates/router/tests/connectors/volt.rs +++ b/crates/router/tests/connectors/volt.rs @@ -12,7 +12,7 @@ impl utils::Connector for VoltTest { use router::connector::Volt; types::api::ConnectorData { connector: Box::new(&Volt), - connector_name: types::Connector::DummyConnector1, + connector_name: types::Connector::Volt, get_token: types::api::GetToken::Connector, merchant_connector_id: None, } diff --git a/crates/router/tests/connectors/wise.rs b/crates/router/tests/connectors/wise.rs index 753ed4f4ed..fb65397e1a 100644 --- a/crates/router/tests/connectors/wise.rs +++ b/crates/router/tests/connectors/wise.rs @@ -1,10 +1,16 @@ +#[cfg(feature = "payouts")] use api_models::payments::{Address, AddressDetails}; +#[cfg(feature = "payouts")] use masking::Secret; -use router::types::{self, api, storage::enums, PaymentAddress}; +use router::types; +#[cfg(feature = "payouts")] +use router::types::{api, storage::enums, PaymentAddress}; +#[cfg(feature = "payouts")] +use crate::utils::PaymentInfo; use crate::{ connector_auth, - utils::{self, ConnectorActions, PaymentInfo}, + utils::{self, ConnectorActions}, }; struct WiseTest; @@ -20,6 +26,7 @@ impl utils::Connector for WiseTest { } } + #[cfg(feature = "payouts")] fn get_payout_data(&self) -> Option { use router::connector::Wise; Some(types::api::PayoutConnectorData { @@ -44,6 +51,7 @@ impl utils::Connector for WiseTest { } impl WiseTest { + #[cfg(feature = "payouts")] fn get_payout_info() -> Option { Some(PaymentInfo { country: Some(api_models::enums::CountryAlpha2::NL), @@ -75,6 +83,7 @@ impl WiseTest { } } +#[cfg(feature = "payouts")] static CONNECTOR: WiseTest = WiseTest {}; /******************** Payouts test cases ********************/ diff --git a/crates/scheduler/Cargo.toml b/crates/scheduler/Cargo.toml index 7ce61d9f59..e0b68c709e 100644 --- a/crates/scheduler/Cargo.toml +++ b/crates/scheduler/Cargo.toml @@ -32,9 +32,6 @@ redis_interface = { version = "0.1.0", path = "../redis_interface" } router_env = { version = "0.1.0", path = "../router_env", features = ["log_extra_implicit_fields", "log_custom_entries_to_extra"] } storage_impl = { version = "0.1.0", path = "../storage_impl", default-features = false } -[target.'cfg(not(target_os = "windows"))'.dependencies] -signal-hook-tokio = { version = "0.3.1", features = ["futures-v0_3"] } - # [[bin]] # name = "scheduler" # path = "src/bin/scheduler.rs" diff --git a/crates/storage_impl/Cargo.toml b/crates/storage_impl/Cargo.toml index 8fb59d2133..31115e9158 100644 --- a/crates/storage_impl/Cargo.toml +++ b/crates/storage_impl/Cargo.toml @@ -9,22 +9,20 @@ license.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] -kms = ["external_services/kms"] default = ["olap", "oltp"] -oltp = ["data_models/oltp"] +oltp = [] olap = ["data_models/olap"] [dependencies] # First Party dependencies -common_utils = { version = "0.1.0", path = "../common_utils" } api_models = { version = "0.1.0", path = "../api_models" } -diesel_models = { version = "0.1.0", path = "../diesel_models" } +common_utils = { version = "0.1.0", path = "../common_utils" } data_models = { version = "0.1.0", path = "../data_models", default-features = false } +diesel_models = { version = "0.1.0", path = "../diesel_models" } masking = { version = "0.1.0", path = "../masking" } redis_interface = { version = "0.1.0", path = "../redis_interface" } -router_env = { version = "0.1.0", path = "../router_env" } -external_services = { version = "0.1.0", path = "../external_services" } router_derive = { version = "0.1.0", path = "../router_derive" } +router_env = { version = "0.1.0", path = "../router_env" } # Third party crates actix-web = "4.3.1" @@ -34,16 +32,16 @@ bb8 = "0.8.1" bytes = "1.4.0" config = { version = "0.13.3", features = ["toml"] } crc32fast = "1.3.2" -futures = "0.3.28" diesel = { version = "2.1.0", default-features = false, features = ["postgres"] } dyn-clone = "1.0.12" error-stack = "0.3.1" +futures = "0.3.28" http = "0.2.9" mime = "0.3.17" moka = { version = "0.11.3", features = ["future"] } once_cell = "1.18.0" ring = "0.16.20" -thiserror = "1.0.40" -tokio = { version = "1.28.2", features = ["rt-multi-thread"] } serde = { version = "1.0.185", features = ["derive"] } serde_json = "1.0.105" +thiserror = "1.0.40" +tokio = { version = "1.28.2", features = ["rt-multi-thread"] } diff --git a/crates/test_utils/Cargo.toml b/crates/test_utils/Cargo.toml index 44c835b216..957a51171d 100644 --- a/crates/test_utils/Cargo.toml +++ b/crates/test_utils/Cargo.toml @@ -9,30 +9,23 @@ license.workspace = true [features] default = ["dummy_connector", "payouts"] -dummy_connector = ["api_models/dummy_connector"] +dummy_connector = [] payouts = [] [dependencies] async-trait = "0.1.68" -actix-web = "4.3.1" base64 = "0.21.2" clap = { version = "4.3.2", default-features = false, features = ["std", "derive", "help", "usage"] } -serde = { version = "1.0.163", features = ["derive"] } -serde_json = "1.0.96" -serde_path_to_error = "0.1.11" -toml = "0.7.4" -serial_test = "2.0.0" -serde_urlencoded = "0.7.1" -actix-http = "3.3.1" -awc = { version = "3.1.1", features = ["rustls"] } -derive_deref = "1.1.1" rand = "0.8.5" reqwest = { version = "0.11.18", features = ["native-tls"] } +serde = { version = "1.0.163", features = ["derive"] } +serde_json = "1.0.96" +serde_urlencoded = "0.7.1" +serial_test = "2.0.0" thirtyfour = "0.31.0" time = { version = "0.3.21", features = ["macros"] } tokio = "1.28.2" -uuid = { version = "1.3.3", features = ["serde", "v4"] } +toml = "0.7.4" # First party crates -api_models = { version = "0.1.0", path = "../api_models", features = ["errors"] } masking = { version = "0.1.0", path = "../masking" }