From 3c5d725cc204b83bca6d916293f6af6cf3648ff1 Mon Sep 17 00:00:00 2001 From: AkshayaFoiger <131388445+AkshayaFoiger@users.noreply.github.com> Date: Fri, 21 Jul 2023 01:04:09 +0530 Subject: [PATCH] feat(connector): [Adyen] implement Atome for Adyen (#1590) Co-authored-by: Sangamesh Kulkarni <59434228+Sangamesh26@users.noreply.github.com> Co-authored-by: Arjun Karthik --- config/config.example.toml | 3 ++- config/development.toml | 1 + config/docker_compose.toml | 3 ++- crates/api_models/src/payments.rs | 1 + crates/common_enums/src/enums.rs | 1 + crates/common_enums/src/transformers.rs | 1 + crates/router/src/connector/adyen/transformers.rs | 9 +++++++++ crates/router/src/types/transformers.rs | 1 + openapi/openapi_spec.json | 12 ++++++++++++ 9 files changed, 30 insertions(+), 2 deletions(-) diff --git a/config/config.example.toml b/config/config.example.toml index c380e87286..ef845c834c 100644 --- a/config/config.example.toml +++ b/config/config.example.toml @@ -321,9 +321,10 @@ payout_eligibility = true # Defaults the eligibility of a payout method to tru online_banking_fpx = {country = "MY", currency = "MYR"} online_banking_thailand = {country = "TH", currency = "THB"} touch_n_go = {country = "MY", currency = "MYR"} +atome = {country = "MY,SG", currency = "MYR,SGD"} [bank_config.online_banking_fpx] adyen.banks = "affin_bank,agro_bank,alliance_bank,am_bank,bank_islam,bank_muamalat,bank_rakyat,bank_simpanan_nasional,cimb_bank,hong_leong_bank,hsbc_bank,kuwait_finance_house,may_bank,ocbc_bank,public_bank,rhb_bank,standard_chartered_bank,uob_bank" [bank_config.online_banking_thailand] -adyen.banks = "bangkok_bank,krungsri_bank,krung_thai_bank,the_siam_commercial_bank,kasikorn_bank" \ No newline at end of file +adyen.banks = "bangkok_bank,krungsri_bank,krung_thai_bank,the_siam_commercial_bank,kasikorn_bank" diff --git a/config/development.toml b/config/development.toml index ad80fd3d31..231699ac81 100644 --- a/config/development.toml +++ b/config/development.toml @@ -259,6 +259,7 @@ gcash = {country = "PH", currency = "PHP"} online_banking_fpx = {country = "MY", currency = "MYR"} online_banking_thailand = {country = "TH", currency = "THB"} touch_n_go = {country = "MY", currency = "MYR"} +atome = {country = "MY,SG", currency = "MYR,SGD"} [pm_filters.braintree] paypal = { currency = "AUD,BRL,CAD,CNY,CZK,DKK,EUR,HKD,HUF,ILS,JPY,MYR,MXN,TWD,NZD,NOK,PHP,PLN,GBP,RUB,SGD,SEK,CHF,THB,USD" } diff --git a/config/docker_compose.toml b/config/docker_compose.toml index fb409a66ce..4851d1034a 100644 --- a/config/docker_compose.toml +++ b/config/docker_compose.toml @@ -204,9 +204,10 @@ payout_eligibility = true online_banking_fpx = {country = "MY", currency = "MYR"} online_banking_thailand = {country = "TH", currency = "THB"} touch_n_go = {country = "MY", currency = "MYR"} +atome = {country = "MY,SG", currency = "MYR,SGD"} [bank_config.online_banking_fpx] adyen.banks = "affin_bank,agro_bank,alliance_bank,am_bank,bank_islam,bank_muamalat,bank_rakyat,bank_simpanan_nasional,cimb_bank,hong_leong_bank,hsbc_bank,kuwait_finance_house,may_bank,ocbc_bank,public_bank,rhb_bank,standard_chartered_bank,uob_bank" [bank_config.online_banking_thailand] -adyen.banks = "bangkok_bank,krungsri_bank,krung_thai_bank,the_siam_commercial_bank,kasikorn_bank" \ No newline at end of file +adyen.banks = "bangkok_bank,krungsri_bank,krung_thai_bank,the_siam_commercial_bank,kasikorn_bank" diff --git a/crates/api_models/src/payments.rs b/crates/api_models/src/payments.rs index dd630b8905..a031691f93 100644 --- a/crates/api_models/src/payments.rs +++ b/crates/api_models/src/payments.rs @@ -650,6 +650,7 @@ pub enum PayLaterData { WalleyRedirect {}, /// For Alma Redirection as PayLater Option AlmaRedirect {}, + AtomeRedirect {}, } #[derive(serde::Deserialize, serde::Serialize, Debug, Clone, ToSchema, Eq, PartialEq)] diff --git a/crates/common_enums/src/enums.rs b/crates/common_enums/src/enums.rs index 19644bba59..01e3859f2d 100644 --- a/crates/common_enums/src/enums.rs +++ b/crates/common_enums/src/enums.rs @@ -559,6 +559,7 @@ pub enum PaymentMethodType { AliPayHk, Alma, ApplePay, + Atome, Bacs, BancontactCard, Becs, diff --git a/crates/common_enums/src/transformers.rs b/crates/common_enums/src/transformers.rs index 94fc602b00..4ca4fadfe4 100644 --- a/crates/common_enums/src/transformers.rs +++ b/crates/common_enums/src/transformers.rs @@ -1586,6 +1586,7 @@ impl From for PaymentMethod { PaymentMethodType::Walley => Self::PayLater, PaymentMethodType::WeChatPay => Self::Wallet, PaymentMethodType::TouchNGo => Self::Wallet, + PaymentMethodType::Atome => Self::PayLater, } } } diff --git a/crates/router/src/connector/adyen/transformers.rs b/crates/router/src/connector/adyen/transformers.rs index 891e1c8f60..462d4d3818 100644 --- a/crates/router/src/connector/adyen/transformers.rs +++ b/crates/router/src/connector/adyen/transformers.rs @@ -303,6 +303,8 @@ pub enum AdyenPaymentMethod<'a> { AliPay(Box), AliPayHk(Box), ApplePay(Box), + #[serde(rename = "atome")] + Atome(Box), BancontactCard(Box), Bizum(Box), Blik(Box), @@ -788,6 +790,9 @@ pub struct VippsWalletData { payment_type: PaymentType, } +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct AtomeData {} + #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AdyenPayLaterData { #[serde(rename = "type")] @@ -832,6 +837,7 @@ pub enum PaymentType { Alma, Applepay, Bizum, + Atome, Blik, ClearPay, Dana, @@ -1506,6 +1512,9 @@ impl<'a> TryFrom<(&api::PayLaterData, Option)> payment_type: PaymentType::Alma, })), ), + api_models::payments::PayLaterData::AtomeRedirect { .. } => { + Ok(AdyenPaymentMethod::Atome(Box::new(AtomeData {}))) + } _ => Err(errors::ConnectorError::NotImplemented("Payment method".to_string()).into()), } } diff --git a/crates/router/src/types/transformers.rs b/crates/router/src/types/transformers.rs index 32e02792a3..6d3fa897af 100644 --- a/crates/router/src/types/transformers.rs +++ b/crates/router/src/types/transformers.rs @@ -188,6 +188,7 @@ impl ForeignFrom for api_enums::PaymentMethod { | api_enums::PaymentMethodType::AfterpayClearpay | api_enums::PaymentMethodType::Klarna | api_enums::PaymentMethodType::PayBright + | api_enums::PaymentMethodType::Atome | api_enums::PaymentMethodType::Walley => Self::PayLater, api_enums::PaymentMethodType::Giropay | api_enums::PaymentMethodType::Ideal diff --git a/openapi/openapi_spec.json b/openapi/openapi_spec.json index bfeccebf67..11ef305ffa 100644 --- a/openapi/openapi_spec.json +++ b/openapi/openapi_spec.json @@ -6545,6 +6545,17 @@ "description": "For Alma Redirection as PayLater Option" } } + }, + { + "type": "object", + "required": [ + "atome_redirect" + ], + "properties": { + "atome_redirect": { + "type": "object" + } + } } ] }, @@ -7188,6 +7199,7 @@ "ali_pay_hk", "alma", "apple_pay", + "atome", "bacs", "bancontact_card", "becs",