mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +08:00
feat(nuvei): Googlepay , applepay and partial authorization integration for nuvei (#8985)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
pub mod transformers;
|
||||
use std::{fmt::Debug, sync::LazyLock};
|
||||
use std::sync::LazyLock;
|
||||
|
||||
use api_models::{payments::PaymentIdType, webhooks::IncomingWebhookEvent};
|
||||
use common_enums::{enums, CallConnectorAction, PaymentAction};
|
||||
@ -9,6 +9,7 @@ use common_utils::{
|
||||
ext_traits::{ByteSliceExt, BytesExt, ValueExt},
|
||||
id_type,
|
||||
request::{Method, Request, RequestBuilder, RequestContent},
|
||||
types::{AmountConvertor, StringMajorUnit, StringMajorUnitForConnector},
|
||||
};
|
||||
use error_stack::ResultExt;
|
||||
use hyperswitch_domain_models::{
|
||||
@ -57,8 +58,17 @@ use crate::{
|
||||
utils::{self, is_mandate_supported, PaymentMethodDataType, RouterData as _},
|
||||
};
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Nuvei;
|
||||
#[derive(Clone)]
|
||||
pub struct Nuvei {
|
||||
pub amount_convertor: &'static (dyn AmountConvertor<Output = StringMajorUnit> + Sync),
|
||||
}
|
||||
impl Nuvei {
|
||||
pub fn new() -> &'static Self {
|
||||
&Self {
|
||||
amount_convertor: &StringMajorUnitForConnector,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<Flow, Request, Response> ConnectorCommonExt<Flow, Request, Response> for Nuvei
|
||||
where
|
||||
@ -592,6 +602,7 @@ impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData
|
||||
_connectors: &Connectors,
|
||||
) -> CustomResult<RequestContent, errors::ConnectorError> {
|
||||
let connector_req = nuvei::NuveiPaymentsRequest::try_from((req, req.get_session_token()?))?;
|
||||
|
||||
Ok(RequestContent::Json(Box::new(connector_req)))
|
||||
}
|
||||
|
||||
@ -629,7 +640,6 @@ impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData
|
||||
.switch()?;
|
||||
event_builder.map(|i| i.set_response_body(&response));
|
||||
router_env::logger::info!(connector_response=?response);
|
||||
|
||||
RouterData::try_from(ResponseRouterData {
|
||||
response,
|
||||
data: data.clone(),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -322,7 +322,9 @@ impl ConnectorData {
|
||||
enums::Connector::Novalnet => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Novalnet::new())))
|
||||
}
|
||||
enums::Connector::Nuvei => Ok(ConnectorEnum::Old(Box::new(&connector::Nuvei))),
|
||||
enums::Connector::Nuvei => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Nuvei::new())))
|
||||
}
|
||||
enums::Connector::Opennode => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Opennode::new())))
|
||||
}
|
||||
|
||||
@ -239,7 +239,9 @@ impl FeatureMatrixConnectorData {
|
||||
enums::Connector::Novalnet => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Novalnet::new())))
|
||||
}
|
||||
enums::Connector::Nuvei => Ok(ConnectorEnum::Old(Box::new(&connector::Nuvei))),
|
||||
enums::Connector::Nuvei => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Nuvei::new())))
|
||||
}
|
||||
enums::Connector::Opennode => {
|
||||
Ok(ConnectorEnum::Old(Box::new(connector::Opennode::new())))
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@ impl utils::Connector for NuveiTest {
|
||||
fn get_data(&self) -> types::api::ConnectorData {
|
||||
use router::connector::Nuvei;
|
||||
utils::construct_connector_data_old(
|
||||
Box::new(&Nuvei),
|
||||
Box::new(Nuvei::new()),
|
||||
types::Connector::Nuvei,
|
||||
types::api::GetToken::Connector,
|
||||
None,
|
||||
|
||||
Reference in New Issue
Block a user