fix: throw PreconditionFailed error when routing_algorithm is not configured (#1017)

Co-authored-by: Sanchith Hegde <22217505+SanchithHegde@users.noreply.github.com>
This commit is contained in:
Chethan Rao
2023-05-08 19:18:58 +05:30
committed by GitHub
parent 64721b80ae
commit 8853702f4b
3 changed files with 15 additions and 11 deletions

View File

@ -1203,11 +1203,15 @@ pub fn decide_connector(
return Ok(api::ConnectorCallType::Single(connector_data));
}
let routing_algorithm: api::RoutingAlgorithm = merchant_account
let routing_algorithm = merchant_account
.routing_algorithm
.clone()
.parse_value("RoutingAlgorithm")
.change_context(errors::ApiErrorResponse::InternalServerError)
.get_required_value("RoutingAlgorithm")
.change_context(errors::ApiErrorResponse::PreconditionFailed {
message: "no routing algorithm has been configured".to_string(),
})?
.parse_value::<api::RoutingAlgorithm>("RoutingAlgorithm")
.change_context(errors::ApiErrorResponse::InternalServerError) // Deserialization failed
.attach_printable("Unable to deserialize merchant routing algorithm")?;
let connector_name = match routing_algorithm {