diff --git a/crates/hyperswitch_connectors/src/connectors/rapyd.rs b/crates/hyperswitch_connectors/src/connectors/rapyd.rs index a6775c35ec..2f98a3c788 100644 --- a/crates/hyperswitch_connectors/src/connectors/rapyd.rs +++ b/crates/hyperswitch_connectors/src/connectors/rapyd.rs @@ -11,7 +11,7 @@ use common_utils::{ ext_traits::{ByteSliceExt, BytesExt, Encode, StringExt}, request::{Method, Request, RequestBuilder, RequestContent}, types::{ - AmountConvertor, FloatMajorUnit, FloatMajorUnitForConnector, StringMinorUnit, + AmountConvertor, StringMajorUnit, StringMajorUnitForConnector, StringMinorUnit, StringMinorUnitForConnector, }, }; @@ -62,13 +62,13 @@ use crate::{ #[derive(Clone)] pub struct Rapyd { - amount_converter: &'static (dyn AmountConvertor + Sync), + amount_converter: &'static (dyn AmountConvertor + Sync), amount_converter_webhooks: &'static (dyn AmountConvertor + Sync), } impl Rapyd { pub fn new() -> &'static Self { &Self { - amount_converter: &FloatMajorUnitForConnector, + amount_converter: &StringMajorUnitForConnector, amount_converter_webhooks: &StringMinorUnitForConnector, } } diff --git a/crates/hyperswitch_connectors/src/connectors/rapyd/transformers.rs b/crates/hyperswitch_connectors/src/connectors/rapyd/transformers.rs index 37fce99f78..bf1b992852 100644 --- a/crates/hyperswitch_connectors/src/connectors/rapyd/transformers.rs +++ b/crates/hyperswitch_connectors/src/connectors/rapyd/transformers.rs @@ -2,7 +2,7 @@ use common_enums::enums; use common_utils::{ ext_traits::OptionExt, request::Method, - types::{FloatMajorUnit, MinorUnit}, + types::{FloatMajorUnit, MinorUnit, StringMajorUnit}, }; use error_stack::ResultExt; use hyperswitch_domain_models::{ @@ -26,12 +26,12 @@ use crate::{ #[derive(Debug, Serialize)] pub struct RapydRouterData { - pub amount: FloatMajorUnit, + pub amount: StringMajorUnit, pub router_data: T, } -impl From<(FloatMajorUnit, T)> for RapydRouterData { - fn from((amount, router_data): (FloatMajorUnit, T)) -> Self { +impl From<(StringMajorUnit, T)> for RapydRouterData { + fn from((amount, router_data): (StringMajorUnit, T)) -> Self { Self { amount, router_data, @@ -41,7 +41,7 @@ impl From<(FloatMajorUnit, T)> for RapydRouterData { #[derive(Default, Debug, Serialize)] pub struct RapydPaymentsRequest { - pub amount: FloatMajorUnit, + pub amount: StringMajorUnit, pub currency: enums::Currency, pub payment_method: PaymentMethod, pub payment_method_options: Option, @@ -183,7 +183,7 @@ impl TryFrom<&RapydRouterData<&types::PaymentsAuthorizeRouterData>> for RapydPay ))?; let return_url = item.router_data.request.get_router_return_url()?; Ok(Self { - amount: item.amount, + amount: item.amount.clone(), currency: item.router_data.request.currency, payment_method, capture, @@ -287,11 +287,11 @@ pub enum NextAction { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] pub struct ResponseData { pub id: String, - pub amount: i64, + pub amount: FloatMajorUnit, pub status: RapydPaymentStatus, pub next_action: NextAction, pub redirect_url: Option, - pub original_amount: Option, + pub original_amount: Option, pub is_partial: Option, pub currency_code: Option, pub country_code: Option, @@ -323,7 +323,7 @@ pub struct DisputeResponseData { #[derive(Default, Debug, Serialize)] pub struct RapydRefundRequest { pub payment: String, - pub amount: Option, + pub amount: Option, pub currency: Option, } @@ -336,7 +336,7 @@ impl TryFrom<&RapydRouterData<&types::RefundsRouterData>> for RapydRefundR .request .connector_transaction_id .to_string(), - amount: Some(item.amount), + amount: Some(item.amount.clone()), currency: Some(item.router_data.request.currency), }) } @@ -373,7 +373,7 @@ pub struct RefundResponseData { //Some field related to foreign exchange and split payment can be added as and when implemented pub id: String, pub payment: String, - pub amount: i64, + pub amount: FloatMajorUnit, pub currency: enums::Currency, pub status: RefundStatus, pub created_at: Option, @@ -428,7 +428,7 @@ impl TryFrom> for types::Refund #[derive(Debug, Serialize, Clone)] pub struct CaptureRequest { - amount: Option, + amount: Option, receipt_email: Option>, statement_descriptor: Option, } @@ -439,7 +439,7 @@ impl TryFrom<&RapydRouterData<&types::PaymentsCaptureRouterData>> for CaptureReq item: &RapydRouterData<&types::PaymentsCaptureRouterData>, ) -> Result { Ok(Self { - amount: Some(item.amount), + amount: Some(item.amount.clone()), receipt_email: None, statement_descriptor: None, })