mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-03 21:37:41 +08:00
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:
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user