feat(verify): add new types for validate API (#45)

This commit is contained in:
Nishant Joshi
2022-12-06 11:49:16 +05:30
committed by GitHub
parent 7b5783e2da
commit 65e91ea858
3 changed files with 53 additions and 4 deletions

View File

@ -209,16 +209,16 @@ where
} }
#[instrument(skip_all)] #[instrument(skip_all)]
async fn make_pm_data<'a>( async fn make_pm_data<'b>(
&'a self, &'b self,
_state: &'a AppState, _state: &'b AppState,
_payment_method: Option<enums::PaymentMethodType>, _payment_method: Option<enums::PaymentMethodType>,
_txn_id: &str, _txn_id: &str,
_payment_attempt: &storage::PaymentAttempt, _payment_attempt: &storage::PaymentAttempt,
_request: &Option<api::PaymentMethod>, _request: &Option<api::PaymentMethod>,
_token: &Option<String>, _token: &Option<String>,
) -> RouterResult<( ) -> RouterResult<(
BoxedOperation<'a, F, api::PaymentsSessionRequest>, BoxedOperation<'b, F, api::PaymentsSessionRequest>,
Option<api::PaymentMethod>, Option<api::PaymentMethod>,
)> { )> {
//No payment method data for this operation //No payment method data for this operation

View File

@ -110,6 +110,17 @@ pub struct PaymentsCancelData {
pub connector_transaction_id: String, pub connector_transaction_id: String,
pub cancellation_reason: Option<String>, pub cancellation_reason: Option<String>,
} }
#[derive(Debug, Clone)]
pub struct VerifyRequestData {
pub payment_method_data: payments::PaymentMethod,
pub confirm: bool,
pub statement_descriptor_suffix: Option<String>,
pub mandate_id: Option<String>,
pub setup_future_usage: Option<enums::FutureUsage>,
pub off_session: Option<bool>,
pub setup_mandate_details: Option<payments::MandateData>,
}
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct PaymentsResponseData { pub struct PaymentsResponseData {
pub resource_id: ResponseId, pub resource_id: ResponseId,

View File

@ -78,6 +78,24 @@ pub struct PaymentsRedirectRequest {
pub param: String, pub param: String,
} }
#[derive(Default, Debug, serde::Deserialize, Clone)]
#[serde(deny_unknown_fields)]
pub struct VerifyRequest {
pub merchant_id: Option<String>,
pub customer_id: Option<String>,
pub email: Option<Secret<String, pii::Email>>,
pub name: Option<Secret<String>>,
pub phone: Option<Secret<String>>,
pub phone_country_code: Option<String>,
pub payment_method: Option<enums::PaymentMethodType>,
pub payment_method_data: Option<PaymentMethod>,
pub payment_token: Option<i32>,
pub mandate_data: Option<MandateData>,
pub setup_future_usage: Option<super::FutureUsage>,
pub off_session: Option<bool>,
pub client_secret: Option<String>,
}
pub enum MandateTxnType { pub enum MandateTxnType {
NewMandateTxn, NewMandateTxn,
RecurringMandateTxn, RecurringMandateTxn,
@ -376,6 +394,26 @@ pub struct PaymentListResponse {
pub data: Vec<PaymentsResponse>, pub data: Vec<PaymentsResponse>,
} }
#[derive(Setter, Clone, Default, Debug, Eq, PartialEq, serde::Serialize)]
pub struct VerifyResponse {
pub verify_id: Option<String>,
pub merchant_id: Option<String>,
// pub status: enums::VerifyStatus,
pub client_secret: Option<Secret<String>>,
pub customer_id: Option<String>,
pub email: Option<Secret<String, pii::Email>>,
pub name: Option<Secret<String>>,
pub phone: Option<Secret<String>>,
pub mandate_id: Option<String>,
#[auth_based]
pub payment_method: Option<enums::PaymentMethodType>,
#[auth_based]
pub payment_method_data: Option<PaymentMethodDataResponse>,
pub payment_token: Option<i32>,
pub error_code: Option<String>,
pub error_message: Option<String>,
}
fn default_limit() -> i64 { fn default_limit() -> i64 {
10 10
} }