feat(connector): fail payment authorize when capture_method is manual_method (#1893)

Co-authored-by: hrithikeshvm <vmhrithikesh@gmail.com>
Co-authored-by: Sai Harsha Vardhan <56996463+sai-harsha-vardhan@users.noreply.github.com>
This commit is contained in:
Hrithikesh
2023-08-23 18:42:47 +05:30
committed by GitHub
parent f0cc0fba16
commit bca9d5013b
49 changed files with 790 additions and 120 deletions

View File

@ -3,12 +3,13 @@ pub mod transformers;
use std::fmt::Debug;
use common_utils::ext_traits::ByteSliceExt;
use diesel_models::enums;
use error_stack::{IntoReport, ResultExt};
use masking::PeekInterface;
use transformers as stax;
use self::stax::StaxWebhookEventType;
use super::utils::{to_connector_meta, RefundsRequestData};
use super::utils::{self as connector_utils, to_connector_meta, RefundsRequestData};
use crate::{
configs::settings,
consts,
@ -18,7 +19,7 @@ use crate::{
services::{
self,
request::{self, Mask},
ConnectorIntegration,
ConnectorIntegration, ConnectorValidation,
},
types::{
self,
@ -109,6 +110,21 @@ impl ConnectorCommon for Stax {
}
}
impl ConnectorValidation for Stax {
fn validate_capture_method(
&self,
capture_method: Option<enums::CaptureMethod>,
) -> CustomResult<(), errors::ConnectorError> {
let capture_method = capture_method.unwrap_or_default();
match capture_method {
enums::CaptureMethod::Automatic | enums::CaptureMethod::Manual => Ok(()),
enums::CaptureMethod::ManualMultiple | enums::CaptureMethod::Scheduled => Err(
connector_utils::construct_not_supported_error_report(capture_method, self.id()),
),
}
}
}
impl api::ConnectorCustomer for Stax {}
impl
@ -343,6 +359,7 @@ impl ConnectorIntegration<api::Authorize, types::PaymentsAuthorizeData, types::P
req: &types::PaymentsAuthorizeRouterData,
connectors: &settings::Connectors,
) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
self.validate_capture_method(req.request.capture_method)?;
Ok(Some(
services::RequestBuilder::new()
.method(services::Method::Post)