maybe working gateway
This commit is contained in:
parent
332084b105
commit
4f972771bc
8 changed files with 470 additions and 47 deletions
283
Cargo.lock
generated
283
Cargo.lock
generated
|
@ -71,6 +71,17 @@ dependencies = [
|
||||||
"opaque-debug",
|
"opaque-debug",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ahash"
|
||||||
|
version = "0.7.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
|
||||||
|
dependencies = [
|
||||||
|
"getrandom 0.2.12",
|
||||||
|
"once_cell",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aho-corasick"
|
name = "aho-corasick"
|
||||||
version = "1.1.2"
|
version = "1.1.2"
|
||||||
|
@ -113,6 +124,12 @@ version = "1.6.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
|
checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "arrayvec"
|
||||||
|
version = "0.7.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ascii"
|
name = "ascii"
|
||||||
version = "0.9.3"
|
version = "0.9.3"
|
||||||
|
@ -386,6 +403,18 @@ version = "2.4.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
|
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bitvec"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
|
||||||
|
dependencies = [
|
||||||
|
"funty",
|
||||||
|
"radium",
|
||||||
|
"tap",
|
||||||
|
"wyz",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "block-buffer"
|
name = "block-buffer"
|
||||||
version = "0.9.0"
|
version = "0.9.0"
|
||||||
|
@ -420,6 +449,30 @@ dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "borsh"
|
||||||
|
version = "1.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f58b559fd6448c6e2fd0adb5720cd98a2506594cafa4737ff98c396f3e82f667"
|
||||||
|
dependencies = [
|
||||||
|
"borsh-derive",
|
||||||
|
"cfg_aliases",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "borsh-derive"
|
||||||
|
version = "1.3.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7aadb5b6ccbd078890f6d7003694e33816e6b784358f18e15e7e6d9f065a57cd"
|
||||||
|
dependencies = [
|
||||||
|
"once_cell",
|
||||||
|
"proc-macro-crate",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 2.0.48",
|
||||||
|
"syn_derive",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bstr"
|
name = "bstr"
|
||||||
version = "1.9.1"
|
version = "1.9.1"
|
||||||
|
@ -436,6 +489,28 @@ version = "3.15.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
|
checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytecheck"
|
||||||
|
version = "0.6.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
|
||||||
|
dependencies = [
|
||||||
|
"bytecheck_derive",
|
||||||
|
"ptr_meta",
|
||||||
|
"simdutf8",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bytecheck_derive"
|
||||||
|
version = "0.6.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 1.0.109",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "byteorder"
|
name = "byteorder"
|
||||||
version = "1.5.0"
|
version = "1.5.0"
|
||||||
|
@ -469,6 +544,12 @@ version = "1.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cfg_aliases"
|
||||||
|
version = "0.1.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "chrono"
|
name = "chrono"
|
||||||
version = "0.4.34"
|
version = "0.4.34"
|
||||||
|
@ -1011,6 +1092,12 @@ dependencies = [
|
||||||
"percent-encoding",
|
"percent-encoding",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "funty"
|
||||||
|
version = "2.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures"
|
name = "futures"
|
||||||
version = "0.3.30"
|
version = "0.3.30"
|
||||||
|
@ -1268,6 +1355,15 @@ version = "1.8.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403"
|
checksum = "1b43ede17f21864e81be2fa654110bf1e793774238d86ef8555c37e6519c0403"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hashbrown"
|
||||||
|
version = "0.12.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
||||||
|
dependencies = [
|
||||||
|
"ahash",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hashbrown"
|
name = "hashbrown"
|
||||||
version = "0.14.3"
|
version = "0.14.3"
|
||||||
|
@ -1550,7 +1646,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
|
checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"equivalent",
|
"equivalent",
|
||||||
"hashbrown",
|
"hashbrown 0.14.3",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2139,6 +2235,38 @@ version = "0.2.17"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro-crate"
|
||||||
|
version = "3.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
|
||||||
|
dependencies = [
|
||||||
|
"toml_edit",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro-error"
|
||||||
|
version = "1.0.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro-error-attr",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "proc-macro-error-attr"
|
||||||
|
version = "1.0.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"version_check",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "proc-macro-hack"
|
name = "proc-macro-hack"
|
||||||
version = "0.5.20+deprecated"
|
version = "0.5.20+deprecated"
|
||||||
|
@ -2167,6 +2295,26 @@ dependencies = [
|
||||||
"yansi",
|
"yansi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ptr_meta"
|
||||||
|
version = "0.1.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
|
||||||
|
dependencies = [
|
||||||
|
"ptr_meta_derive",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ptr_meta_derive"
|
||||||
|
version = "0.1.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 1.0.109",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quick-xml"
|
name = "quick-xml"
|
||||||
version = "0.31.0"
|
version = "0.31.0"
|
||||||
|
@ -2186,6 +2334,12 @@ dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "radium"
|
||||||
|
version = "0.7.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand"
|
name = "rand"
|
||||||
version = "0.7.3"
|
version = "0.7.3"
|
||||||
|
@ -2354,6 +2508,15 @@ version = "0.8.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rend"
|
||||||
|
version = "0.4.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
|
||||||
|
dependencies = [
|
||||||
|
"bytecheck",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reqwest"
|
name = "reqwest"
|
||||||
version = "0.11.24"
|
version = "0.11.24"
|
||||||
|
@ -2409,6 +2572,51 @@ dependencies = [
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.52.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rkyv"
|
||||||
|
version = "0.7.44"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
|
||||||
|
dependencies = [
|
||||||
|
"bitvec",
|
||||||
|
"bytecheck",
|
||||||
|
"bytes 1.5.0",
|
||||||
|
"hashbrown 0.12.3",
|
||||||
|
"ptr_meta",
|
||||||
|
"rend",
|
||||||
|
"rkyv_derive",
|
||||||
|
"seahash",
|
||||||
|
"tinyvec",
|
||||||
|
"uuid",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rkyv_derive"
|
||||||
|
version = "0.7.44"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 1.0.109",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rust_decimal"
|
||||||
|
version = "1.34.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b39449a79f45e8da28c57c341891b69a183044b29518bb8f86dbac9df60bb7df"
|
||||||
|
dependencies = [
|
||||||
|
"arrayvec",
|
||||||
|
"borsh",
|
||||||
|
"bytes 1.5.0",
|
||||||
|
"num-traits",
|
||||||
|
"rand 0.8.5",
|
||||||
|
"rkyv",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc-demangle"
|
name = "rustc-demangle"
|
||||||
version = "0.1.23"
|
version = "0.1.23"
|
||||||
|
@ -2485,6 +2693,7 @@ dependencies = [
|
||||||
"jsonwebtoken",
|
"jsonwebtoken",
|
||||||
"redis",
|
"redis",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
|
"rust_decimal",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"strum",
|
"strum",
|
||||||
|
@ -2542,6 +2751,12 @@ version = "1.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "seahash"
|
||||||
|
version = "4.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "security-framework"
|
name = "security-framework"
|
||||||
version = "2.9.2"
|
version = "2.9.2"
|
||||||
|
@ -2711,6 +2926,12 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "simdutf8"
|
||||||
|
version = "0.1.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "simple-payment-gateway"
|
name = "simple-payment-gateway"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
@ -2724,6 +2945,7 @@ dependencies = [
|
||||||
"enum-iterator",
|
"enum-iterator",
|
||||||
"envy",
|
"envy",
|
||||||
"redis",
|
"redis",
|
||||||
|
"rust_decimal",
|
||||||
"saleor-app-sdk",
|
"saleor-app-sdk",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
@ -2990,6 +3212,18 @@ dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "syn_derive"
|
||||||
|
version = "0.1.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro-error",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn 2.0.48",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sync_wrapper"
|
name = "sync_wrapper"
|
||||||
version = "0.1.2"
|
version = "0.1.2"
|
||||||
|
@ -3017,6 +3251,12 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tap"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tempfile"
|
name = "tempfile"
|
||||||
version = "3.10.1"
|
version = "3.10.1"
|
||||||
|
@ -3234,6 +3474,23 @@ dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "toml_datetime"
|
||||||
|
version = "0.6.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "toml_edit"
|
||||||
|
version = "0.21.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
|
||||||
|
dependencies = [
|
||||||
|
"indexmap",
|
||||||
|
"toml_datetime",
|
||||||
|
"winnow",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tower"
|
name = "tower"
|
||||||
version = "0.4.13"
|
version = "0.4.13"
|
||||||
|
@ -3510,6 +3767,12 @@ dependencies = [
|
||||||
"serde",
|
"serde",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "uuid"
|
||||||
|
version = "1.7.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "valuable"
|
name = "valuable"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
@ -3825,6 +4088,15 @@ version = "0.52.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
|
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winnow"
|
||||||
|
version = "0.5.40"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
|
||||||
|
dependencies = [
|
||||||
|
"memchr",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "winreg"
|
name = "winreg"
|
||||||
version = "0.50.0"
|
version = "0.50.0"
|
||||||
|
@ -3835,6 +4107,15 @@ dependencies = [
|
||||||
"windows-sys 0.48.0",
|
"windows-sys 0.48.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wyz"
|
||||||
|
version = "0.5.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
|
||||||
|
dependencies = [
|
||||||
|
"tap",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "xml-builder"
|
name = "xml-builder"
|
||||||
version = "0.5.2"
|
version = "0.5.2"
|
||||||
|
|
|
@ -24,3 +24,4 @@ saleor-app-sdk = { path = "sdk" }
|
||||||
tower = { version = "0.4.13", features = ["util"] }
|
tower = { version = "0.4.13", features = ["util"] }
|
||||||
tower-http = { version = "0.5.2", features = ["fs", "trace"] }
|
tower-http = { version = "0.5.2", features = ["fs", "trace"] }
|
||||||
cynic-codegen = "3.4.3"
|
cynic-codegen = "3.4.3"
|
||||||
|
rust_decimal = { version = "1.34.3", features = ["serde-float"] }
|
||||||
|
|
|
@ -26,6 +26,7 @@ serde_json.workspace = true
|
||||||
envy.workspace = true
|
envy.workspace = true
|
||||||
dotenvy.workspace = true
|
dotenvy.workspace = true
|
||||||
tower = { workspace = true }
|
tower = { workspace = true }
|
||||||
|
rust_decimal = { workspace = true, features = ["serde-float"] }
|
||||||
reqwest = { version = "0.11.24", features = ["json"] }
|
reqwest = { version = "0.11.24", features = ["json"] }
|
||||||
jsonwebtoken = "9.2.0"
|
jsonwebtoken = "9.2.0"
|
||||||
async-trait = "0.1.77"
|
async-trait = "0.1.77"
|
||||||
|
|
|
@ -1,19 +1,26 @@
|
||||||
|
use rust_decimal::Decimal;
|
||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
|
|
||||||
//Why are these few in snake_case but rest is camelCase?
|
//Why are these few in snake_case but rest is camelCase?
|
||||||
#[derive(Serialize, Debug, Clone)]
|
#[derive(Serialize, Debug, Clone)]
|
||||||
pub struct CheckoutCalculateTaxesResponse {
|
pub struct CheckoutCalculateTaxesResponse {
|
||||||
pub shipping_price_gross_amount: f32,
|
#[serde(with = "rust_decimal::serde::float")]
|
||||||
pub shipping_price_net_amount: f32,
|
pub shipping_price_gross_amount: Decimal,
|
||||||
pub shipping_tax_rate: f32,
|
#[serde(with = "rust_decimal::serde::float")]
|
||||||
|
pub shipping_price_net_amount: Decimal,
|
||||||
|
#[serde(with = "rust_decimal::serde::float")]
|
||||||
|
pub shipping_tax_rate: Decimal,
|
||||||
pub lines: Vec<LinesResponse>,
|
pub lines: Vec<LinesResponse>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Debug, Clone)]
|
#[derive(Serialize, Debug, Clone)]
|
||||||
pub struct LinesResponse {
|
pub struct LinesResponse {
|
||||||
pub total_gross_amount: f32,
|
#[serde(with = "rust_decimal::serde::float")]
|
||||||
pub total_net_amount: f32,
|
pub total_gross_amount: Decimal,
|
||||||
pub tax_rate: f32,
|
#[serde(with = "rust_decimal::serde::float")]
|
||||||
|
pub total_net_amount: Decimal,
|
||||||
|
#[serde(with = "rust_decimal::serde::float")]
|
||||||
|
pub tax_rate: Decimal,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Debug, Clone)]
|
#[derive(Serialize, Debug, Clone)]
|
||||||
|
@ -40,7 +47,8 @@ pub struct ShippingListMethodsForCheckout(Vec<ShippingListMethodsForCheckoutVec>
|
||||||
struct ShippingListMethodsForCheckoutVec {
|
struct ShippingListMethodsForCheckoutVec {
|
||||||
pub id: String,
|
pub id: String,
|
||||||
pub name: Option<String>,
|
pub name: Option<String>,
|
||||||
pub amount: f32,
|
#[serde(with = "rust_decimal::serde::float")]
|
||||||
|
pub amount: Decimal,
|
||||||
pub currency: String,
|
pub currency: String,
|
||||||
pub maximum_delivery_days: Option<i32>,
|
pub maximum_delivery_days: Option<i32>,
|
||||||
}
|
}
|
||||||
|
@ -56,7 +64,8 @@ pub enum ChargeRequestedResult {
|
||||||
pub struct TransactionChargeRequestedResponse {
|
pub struct TransactionChargeRequestedResponse {
|
||||||
pub psp_reference: String,
|
pub psp_reference: String,
|
||||||
pub result: Option<ChargeRequestedResult>,
|
pub result: Option<ChargeRequestedResult>,
|
||||||
pub amount: Option<f32>,
|
#[serde(with = "rust_decimal::serde::float_option")]
|
||||||
|
pub amount: Option<Decimal>,
|
||||||
pub time: Option<String>,
|
pub time: Option<String>,
|
||||||
pub external_url: Option<String>,
|
pub external_url: Option<String>,
|
||||||
pub message: Option<String>,
|
pub message: Option<String>,
|
||||||
|
@ -74,7 +83,8 @@ pub enum RefundRequestedResult {
|
||||||
pub struct TransactionRefundRequestedResponse {
|
pub struct TransactionRefundRequestedResponse {
|
||||||
pub psp_reference: String,
|
pub psp_reference: String,
|
||||||
pub result: Option<RefundRequestedResult>,
|
pub result: Option<RefundRequestedResult>,
|
||||||
pub amount: Option<f32>,
|
#[serde(with = "rust_decimal::serde::float_option")]
|
||||||
|
pub amount: Option<Decimal>,
|
||||||
pub time: Option<String>,
|
pub time: Option<String>,
|
||||||
pub external_url: Option<String>,
|
pub external_url: Option<String>,
|
||||||
pub message: Option<String>,
|
pub message: Option<String>,
|
||||||
|
@ -92,7 +102,8 @@ pub enum CancelationRequestedResult {
|
||||||
pub struct TransactionCancelationRequestedResponse {
|
pub struct TransactionCancelationRequestedResponse {
|
||||||
pub psp_reference: String,
|
pub psp_reference: String,
|
||||||
pub result: Option<CancelationRequestedResult>,
|
pub result: Option<CancelationRequestedResult>,
|
||||||
pub amount: Option<f32>,
|
#[serde(with = "rust_decimal::serde::float_option")]
|
||||||
|
pub amount: Option<Decimal>,
|
||||||
pub time: Option<String>,
|
pub time: Option<String>,
|
||||||
pub external_url: Option<String>,
|
pub external_url: Option<String>,
|
||||||
pub message: Option<String>,
|
pub message: Option<String>,
|
||||||
|
@ -100,7 +111,7 @@ pub struct TransactionCancelationRequestedResponse {
|
||||||
|
|
||||||
#[derive(Serialize, Debug, Clone)]
|
#[derive(Serialize, Debug, Clone)]
|
||||||
pub struct PaymentGatewayInitializeSessionResponse<T: Serialize> {
|
pub struct PaymentGatewayInitializeSessionResponse<T: Serialize> {
|
||||||
pub data: T,
|
pub data: Option<T>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Debug, Clone)]
|
#[derive(Serialize, Debug, Clone)]
|
||||||
|
@ -122,7 +133,8 @@ pub struct TransactionInitializeSessionResponse<T: Serialize> {
|
||||||
pub psp_reference: Option<String>,
|
pub psp_reference: Option<String>,
|
||||||
pub data: Option<T>,
|
pub data: Option<T>,
|
||||||
pub result: TransactionSessionResult,
|
pub result: TransactionSessionResult,
|
||||||
pub amount: f32,
|
#[serde(with = "rust_decimal::serde::float")]
|
||||||
|
pub amount: Decimal,
|
||||||
pub time: Option<String>,
|
pub time: Option<String>,
|
||||||
pub external_url: Option<String>,
|
pub external_url: Option<String>,
|
||||||
pub message: Option<String>,
|
pub message: Option<String>,
|
||||||
|
@ -134,7 +146,8 @@ pub struct TransactionProcessSessionResponse<T: Serialize> {
|
||||||
pub psp_reference: Option<String>,
|
pub psp_reference: Option<String>,
|
||||||
pub data: Option<T>,
|
pub data: Option<T>,
|
||||||
pub result: TransactionSessionResult,
|
pub result: TransactionSessionResult,
|
||||||
pub amount: f32,
|
#[serde(with = "rust_decimal::serde::float")]
|
||||||
|
pub amount: Decimal,
|
||||||
pub time: Option<String>,
|
pub time: Option<String>,
|
||||||
pub external_url: Option<String>,
|
pub external_url: Option<String>,
|
||||||
pub message: Option<String>,
|
pub message: Option<String>,
|
||||||
|
|
|
@ -33,6 +33,7 @@ tower-http = { workspace = true, features = ["fs", "trace"] }
|
||||||
surf.workspace = true
|
surf.workspace = true
|
||||||
cynic = { workspace = true, features = ["http-surf"] }
|
cynic = { workspace = true, features = ["http-surf"] }
|
||||||
cynic-codegen.workspace = true
|
cynic-codegen.workspace = true
|
||||||
|
rust_decimal = { workspace = true, features = ["serde-float"] }
|
||||||
const_format = "0.2.32"
|
const_format = "0.2.32"
|
||||||
enum-iterator = "2.0.0"
|
enum-iterator = "2.0.0"
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ pub fn trace_to_std(config: &Config) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Sequence, Serialize)]
|
#[derive(Debug, Clone, Sequence, Serialize)]
|
||||||
|
#[serde(rename_all = "lowercase")]
|
||||||
pub enum GatewayType {
|
pub enum GatewayType {
|
||||||
Accreditation,
|
Accreditation,
|
||||||
Cash,
|
Cash,
|
||||||
|
@ -82,10 +83,30 @@ pub fn get_active_gateways_from_env() -> anyhow::Result<Vec<ActiveGateway>> {
|
||||||
true => Some(g),
|
true => Some(g),
|
||||||
false => None,
|
false => None,
|
||||||
})
|
})
|
||||||
.map(|g| )
|
.map(|g| ActiveGateway {
|
||||||
|
gateway_type: g.clone(),
|
||||||
|
currencies: vec!["EUR".to_owned()],
|
||||||
|
id: format!("{:?}", &g).to_lowercase(),
|
||||||
|
config: [],
|
||||||
|
name: match (g, &locale) {
|
||||||
|
(GatewayType::COD, LocaleCode::Sk) => "Dobierka".to_owned(),
|
||||||
|
(GatewayType::Cash, LocaleCode::Sk) => "Hotovosť".to_owned(),
|
||||||
|
(GatewayType::Transfer, LocaleCode::Sk) => "Bankový prevod".to_owned(),
|
||||||
|
(GatewayType::Inkaso, LocaleCode::Sk) => "Inkaso".to_owned(),
|
||||||
|
(GatewayType::Accreditation, LocaleCode::Sk) => "Vzajomný zápočet".to_owned(),
|
||||||
|
(GatewayType::Other, LocaleCode::Sk) => "Iné".to_owned(),
|
||||||
|
(GatewayType::COD, LocaleCode::En) => "Cash on delivery".to_owned(),
|
||||||
|
(GatewayType::Cash, LocaleCode::En) => "Cash".to_owned(),
|
||||||
|
(GatewayType::Transfer, LocaleCode::En) => "Bank transfer".to_owned(),
|
||||||
|
(GatewayType::Inkaso, LocaleCode::En) => "Encashment".to_owned(),
|
||||||
|
(GatewayType::Accreditation, LocaleCode::En) => "Mutual credit".to_owned(),
|
||||||
|
(GatewayType::Other, LocaleCode::En) => "Other".to_owned(),
|
||||||
|
(g, l) => unimplemented!("Gateway {:?} in locale {:?} not implemented", g, l),
|
||||||
|
},
|
||||||
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
todo!()
|
Ok(gateway_types)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Serialize)]
|
#[derive(Debug, Clone, Serialize)]
|
||||||
|
@ -97,11 +118,3 @@ pub struct ActiveGateway {
|
||||||
//don't need this one yet
|
//don't need this one yet
|
||||||
pub config: [(); 0],
|
pub config: [(); 0],
|
||||||
}
|
}
|
||||||
impl ActiveGateway{
|
|
||||||
fn from_gateway_type(ty: &GatewayType) -> Self {
|
|
||||||
all_currencies =
|
|
||||||
match type {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ pub enum TransactionUpdateErrorCode {
|
||||||
Unique,
|
Unique,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(cynic::InputObject, Debug)]
|
#[derive(cynic::InputObject, Debug, Default)]
|
||||||
pub struct TransactionUpdateInput<'a> {
|
pub struct TransactionUpdateInput<'a> {
|
||||||
pub name: Option<&'a str>,
|
pub name: Option<&'a str>,
|
||||||
pub message: Option<&'a str>,
|
pub message: Option<&'a str>,
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
use std::str::FromStr;
|
|
||||||
|
|
||||||
use anyhow::Context;
|
use anyhow::Context;
|
||||||
use axum::{
|
use axum::{
|
||||||
body::Body,
|
body::Body,
|
||||||
|
@ -8,20 +6,38 @@ use axum::{
|
||||||
response::Response,
|
response::Response,
|
||||||
Json,
|
Json,
|
||||||
};
|
};
|
||||||
|
use cynic::{http::SurfExt, MutationBuilder};
|
||||||
|
use rust_decimal::Decimal;
|
||||||
use saleor_app_sdk::{
|
use saleor_app_sdk::{
|
||||||
headers::SALEOR_API_URL_HEADER,
|
headers::SALEOR_API_URL_HEADER,
|
||||||
webhooks::{
|
webhooks::{
|
||||||
|
sync_response::{
|
||||||
|
ChargeRequestedResult, PaymentGatewayInitializeSessionResponse, RefundRequestedResult,
|
||||||
|
TransactionChargeRequestedResponse, TransactionInitializeSessionResponse,
|
||||||
|
TransactionProcessSessionResponse, TransactionRefundRequestedResponse,
|
||||||
|
TransactionSessionResult,
|
||||||
|
},
|
||||||
utils::{get_webhook_event_type, EitherWebhookType},
|
utils::{get_webhook_event_type, EitherWebhookType},
|
||||||
SyncWebhookEventType,
|
SyncWebhookEventType,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
|
use std::str::FromStr;
|
||||||
use tracing::{debug, error, info};
|
use tracing::{debug, error, info};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
app::{ActiveGateway, AppError, AppState},
|
app::{ActiveGateway, AppError, AppState, GatewayType},
|
||||||
queries::event_transactions::PaymentGatewayInitializeSession,
|
queries::{
|
||||||
|
event_transactions::{
|
||||||
|
PaymentGatewayInitializeSession, TransactionActionEnum, TransactionChargeRequested2,
|
||||||
|
TransactionFlowStrategyEnum, TransactionInitializeSession2, TransactionProcessSession,
|
||||||
|
TransactionProcessSession2, TransactionRefundRequested2,
|
||||||
|
},
|
||||||
|
mutation_transaction_update::{
|
||||||
|
TransactionUpdate, TransactionUpdateInput, TransactionUpdateVariables,
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub async fn webhooks(
|
pub async fn webhooks(
|
||||||
|
@ -33,7 +49,7 @@ pub async fn webhooks(
|
||||||
debug!("req: {:?}", body);
|
debug!("req: {:?}", body);
|
||||||
debug!("headers: {:?}", headers);
|
debug!("headers: {:?}", headers);
|
||||||
|
|
||||||
let url = headers
|
let saleor_api_url = headers
|
||||||
.get(SALEOR_API_URL_HEADER)
|
.get(SALEOR_API_URL_HEADER)
|
||||||
.context("missing saleor api url header")?
|
.context("missing saleor api url header")?
|
||||||
.to_str()?
|
.to_str()?
|
||||||
|
@ -41,19 +57,117 @@ pub async fn webhooks(
|
||||||
let event_type = get_webhook_event_type(&headers)?;
|
let event_type = get_webhook_event_type(&headers)?;
|
||||||
let res: Json<Value> = match event_type {
|
let res: Json<Value> = match event_type {
|
||||||
EitherWebhookType::Sync(a) => match a {
|
EitherWebhookType::Sync(a) => match a {
|
||||||
SyncWebhookEventType::PaymentGatewayInitializeSession => {
|
SyncWebhookEventType::PaymentGatewayInitializeSession => Json::from(
|
||||||
Json::from(serde_json::to_value(JsonResponse {
|
serde_json::to_value(PaymentGatewayInitializeSessionResponse::<u8> { data: None })?,
|
||||||
data: JsonResponseData {
|
),
|
||||||
current_gateway: ActiveGateway::COD,
|
SyncWebhookEventType::TransactionProcessSession => {
|
||||||
|
let data = serde_json::from_str::<TransactionProcessSession2>(&body)?;
|
||||||
|
Json::from(serde_json::to_value(TransactionProcessSessionResponse::<
|
||||||
|
u8,
|
||||||
|
> {
|
||||||
|
data: None,
|
||||||
|
time: None,
|
||||||
|
psp_reference: None,
|
||||||
|
external_url: None,
|
||||||
|
message: None,
|
||||||
|
amount: Decimal::from_str(&data.action.amount.0)?,
|
||||||
|
result: match data.action.action_type {
|
||||||
|
TransactionFlowStrategyEnum::Charge => {
|
||||||
|
TransactionSessionResult::ChargeSuccess
|
||||||
|
}
|
||||||
|
TransactionFlowStrategyEnum::Authorization => {
|
||||||
|
TransactionSessionResult::AuthorizationSuccess
|
||||||
|
}
|
||||||
},
|
},
|
||||||
})?)
|
})?)
|
||||||
}
|
}
|
||||||
SyncWebhookEventType::TransactionProcessSession
|
SyncWebhookEventType::TransactionChargeRequested => {
|
||||||
| SyncWebhookEventType::TransactionChargeRequested
|
let data = serde_json::from_str::<TransactionChargeRequested2>(&body)?;
|
||||||
| SyncWebhookEventType::TransactionRefundRequested
|
Json::from(serde_json::to_value(TransactionChargeRequestedResponse {
|
||||||
| SyncWebhookEventType::TransactionInitializeSession => {
|
time: None,
|
||||||
update_transaction_response(&state, &url).await?;
|
psp_reference: "".to_owned(),
|
||||||
todo!()
|
external_url: None,
|
||||||
|
message: None,
|
||||||
|
amount: data
|
||||||
|
.action
|
||||||
|
.amount
|
||||||
|
.and_then(|a| Decimal::from_str(&a.0).ok()),
|
||||||
|
result: Some(ChargeRequestedResult::ChargeSuccess),
|
||||||
|
})?)
|
||||||
|
}
|
||||||
|
SyncWebhookEventType::TransactionRefundRequested => {
|
||||||
|
let data = serde_json::from_str::<TransactionRefundRequested2>(&body)?;
|
||||||
|
Json::from(serde_json::to_value(TransactionRefundRequestedResponse {
|
||||||
|
time: None,
|
||||||
|
psp_reference: "".to_owned(),
|
||||||
|
external_url: None,
|
||||||
|
message: None,
|
||||||
|
amount: data
|
||||||
|
.action
|
||||||
|
.amount
|
||||||
|
.and_then(|a| Decimal::from_str(&a.0).ok()),
|
||||||
|
result: Some(RefundRequestedResult::RefundSuccess),
|
||||||
|
})?)
|
||||||
|
}
|
||||||
|
SyncWebhookEventType::TransactionInitializeSession => {
|
||||||
|
let data = serde_json::from_str::<TransactionInitializeSession2>(&body)?;
|
||||||
|
let app = state.saleor_app.lock().await;
|
||||||
|
let auth_data = app.apl.get(&saleor_api_url).await?;
|
||||||
|
let operation = TransactionUpdate::build(TransactionUpdateVariables {
|
||||||
|
id: &data.transaction.id,
|
||||||
|
transaction: Some(TransactionUpdateInput {
|
||||||
|
message: Some(""),
|
||||||
|
..Default::default()
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
let mut res = surf::post(&saleor_api_url).run_graphql(operation).await;
|
||||||
|
|
||||||
|
let mut webhook_result = WebhookResult::Failiure;
|
||||||
|
if let Ok(r) = &mut res
|
||||||
|
&& let Some(data) = &mut r.data
|
||||||
|
&& let Some(q_res) = &mut data.transaction_update
|
||||||
|
{
|
||||||
|
if !q_res.errors.is_empty() {
|
||||||
|
q_res
|
||||||
|
.errors
|
||||||
|
.iter()
|
||||||
|
.for_each(|e| error!("failed update transaction, {:?}", e));
|
||||||
|
} else {
|
||||||
|
if let Some(tr) = &mut q_res.transaction {
|
||||||
|
tr.message = serde_json::to_string(&PaymentMethod {
|
||||||
|
payment_method: GatewayType::COD,
|
||||||
|
})?;
|
||||||
|
webhook_result = WebhookResult::Success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Json::from(serde_json::to_value(
|
||||||
|
TransactionInitializeSessionResponse::<u8> {
|
||||||
|
data: None,
|
||||||
|
time: None,
|
||||||
|
psp_reference: None,
|
||||||
|
external_url: None,
|
||||||
|
message: None,
|
||||||
|
amount: Decimal::from_str(&data.action.amount.0)?,
|
||||||
|
result: match (data.action.action_type, webhook_result) {
|
||||||
|
(TransactionFlowStrategyEnum::Charge, WebhookResult::Success) => {
|
||||||
|
TransactionSessionResult::ChargeSuccess
|
||||||
|
}
|
||||||
|
(
|
||||||
|
TransactionFlowStrategyEnum::Authorization,
|
||||||
|
WebhookResult::Success,
|
||||||
|
) => TransactionSessionResult::AuthorizationSuccess,
|
||||||
|
(TransactionFlowStrategyEnum::Charge, WebhookResult::Failiure) => {
|
||||||
|
TransactionSessionResult::ChargeFailiure
|
||||||
|
}
|
||||||
|
(
|
||||||
|
TransactionFlowStrategyEnum::Authorization,
|
||||||
|
WebhookResult::Failiure,
|
||||||
|
) => TransactionSessionResult::AuthorizationFailure,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
)?)
|
||||||
}
|
}
|
||||||
_ => Json::from(Value::from_str("")?),
|
_ => Json::from(Value::from_str("")?),
|
||||||
},
|
},
|
||||||
|
@ -73,13 +187,12 @@ pub struct JsonResponse {
|
||||||
pub struct JsonResponseData {
|
pub struct JsonResponseData {
|
||||||
current_gateway: ActiveGateway,
|
current_gateway: ActiveGateway,
|
||||||
}
|
}
|
||||||
|
enum WebhookResult {
|
||||||
async fn update_transaction_response(state: &AppState, saleor_api_url: &str) -> anyhow::Result<()> {
|
Success,
|
||||||
todo!()
|
Failiure,
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn new_transaction_response(state: &AppState, saleor_api_url: &str) -> anyhow::Result<()> {
|
#[derive(Serialize, Clone, Debug)]
|
||||||
debug!("Creating new transaction");
|
struct PaymentMethod {
|
||||||
|
payment_method: GatewayType,
|
||||||
todo!()
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue