fix(router): better positioning for mandatory customer id conditions (#364)

This commit is contained in:
ItsMeShashank
2023-01-13 01:20:19 +05:30
committed by GitHub
parent 5bb9e745d8
commit ba5c3efc86
4 changed files with 40 additions and 51 deletions

View File

@ -306,33 +306,19 @@ fn validate_new_mandate_request(req: api::MandateValidationFields) -> RouterResu
Ok(())
}
pub fn validate_customer_id_mandatory_cases_api(
shipping: &Option<api::Address>,
billing: &Option<api::Address>,
setup_future_usage: &Option<api_enums::FutureUsage>,
pub fn validate_customer_id_mandatory_cases(
has_shipping: bool,
has_billing: bool,
has_setup_future_usage: bool,
customer_id: &Option<String>,
) -> RouterResult<()> {
match (shipping, billing, setup_future_usage, customer_id) {
(Some(_), _, _, None) | (_, Some(_), _, None) | (_, _, Some(_), None) => {
Err(errors::ApiErrorResponse::PreconditionFailed {
message: "customer_id is mandatory when shipping or billing \
address is given or when setup_future_usage is given"
.to_string(),
})
.into_report()
}
_ => Ok(()),
}
}
pub fn validate_customer_id_mandatory_cases_storage(
shipping: &Option<storage::Address>,
billing: &Option<storage::Address>,
setup_future_usage: &Option<storage_enums::FutureUsage>,
customer_id: &Option<String>,
) -> RouterResult<()> {
match (shipping, billing, setup_future_usage, customer_id) {
(Some(_), _, _, None) | (_, Some(_), _, None) | (_, _, Some(_), None) => {
match (
has_shipping,
has_billing,
has_setup_future_usage,
customer_id,
) {
(true, _, _, None) | (_, true, _, None) | (_, _, true, None) => {
Err(errors::ApiErrorResponse::PreconditionFailed {
message: "customer_id is mandatory when shipping or billing \
address is given or when setup_future_usage is given"