mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-03 05:17:02 +08:00
feat: implement FRM flows (#2968)
Co-authored-by: Kashif <kashif@protonmail.com> Co-authored-by: AkshayaFoiger <131388445+AkshayaFoiger@users.noreply.github.com> Co-authored-by: Kashif <mohammed.kashif@juspay.in>
This commit is contained in:
@ -17,6 +17,8 @@ use once_cell::sync::Lazy;
|
||||
use regex::Regex;
|
||||
use serde::Serializer;
|
||||
|
||||
#[cfg(feature = "frm")]
|
||||
use crate::types::{fraud_check, storage::enums as storage_enums};
|
||||
use crate::{
|
||||
consts,
|
||||
core::{
|
||||
@ -1575,3 +1577,51 @@ pub fn validate_currency(
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(feature = "frm")]
|
||||
pub trait FraudCheckSaleRequest {
|
||||
fn get_order_details(&self) -> Result<Vec<OrderDetailsWithAmount>, Error>;
|
||||
}
|
||||
#[cfg(feature = "frm")]
|
||||
impl FraudCheckSaleRequest for fraud_check::FraudCheckSaleData {
|
||||
fn get_order_details(&self) -> Result<Vec<OrderDetailsWithAmount>, Error> {
|
||||
self.order_details
|
||||
.clone()
|
||||
.ok_or_else(missing_field_err("order_details"))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "frm")]
|
||||
pub trait FraudCheckCheckoutRequest {
|
||||
fn get_order_details(&self) -> Result<Vec<OrderDetailsWithAmount>, Error>;
|
||||
}
|
||||
#[cfg(feature = "frm")]
|
||||
impl FraudCheckCheckoutRequest for fraud_check::FraudCheckCheckoutData {
|
||||
fn get_order_details(&self) -> Result<Vec<OrderDetailsWithAmount>, Error> {
|
||||
self.order_details
|
||||
.clone()
|
||||
.ok_or_else(missing_field_err("order_details"))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "frm")]
|
||||
pub trait FraudCheckTransactionRequest {
|
||||
fn get_currency(&self) -> Result<storage_enums::Currency, Error>;
|
||||
}
|
||||
#[cfg(feature = "frm")]
|
||||
impl FraudCheckTransactionRequest for fraud_check::FraudCheckTransactionData {
|
||||
fn get_currency(&self) -> Result<storage_enums::Currency, Error> {
|
||||
self.currency.ok_or_else(missing_field_err("currency"))
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "frm")]
|
||||
pub trait FraudCheckRecordReturnRequest {
|
||||
fn get_currency(&self) -> Result<storage_enums::Currency, Error>;
|
||||
}
|
||||
#[cfg(feature = "frm")]
|
||||
impl FraudCheckRecordReturnRequest for fraud_check::FraudCheckRecordReturnData {
|
||||
fn get_currency(&self) -> Result<storage_enums::Currency, Error> {
|
||||
self.currency.ok_or_else(missing_field_err("currency"))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user