mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +08:00
59 lines
1.9 KiB
Rust
59 lines
1.9 KiB
Rust
pub use common_utils::newtype;
|
|
|
|
#[macro_export]
|
|
macro_rules! get_payment_link_config_value_based_on_priority {
|
|
($config:expr, $business_config:expr, $field:ident, $default:expr) => {
|
|
$config
|
|
.as_ref()
|
|
.and_then(|pc_config| pc_config.theme_config.$field.clone())
|
|
.or_else(|| {
|
|
$business_config
|
|
.as_ref()
|
|
.and_then(|business_config| business_config.$field.clone())
|
|
})
|
|
.unwrap_or($default)
|
|
};
|
|
}
|
|
|
|
#[macro_export]
|
|
macro_rules! get_payment_link_config_value {
|
|
($config:expr, $business_config:expr, $(($field:ident, $default:expr)),*) => {
|
|
(
|
|
$(get_payment_link_config_value_based_on_priority!($config, $business_config, $field, $default)),*
|
|
)
|
|
};
|
|
($config:expr, $business_config:expr, $(($field:ident)),*) => {
|
|
(
|
|
$(
|
|
$config
|
|
.as_ref()
|
|
.and_then(|pc_config| pc_config.theme_config.$field.clone())
|
|
.or_else(|| {
|
|
$business_config
|
|
.as_ref()
|
|
.and_then(|business_config| business_config.$field.clone())
|
|
})
|
|
),*
|
|
)
|
|
};
|
|
($config:expr, $business_config:expr, $(($field:ident $(, $transform:expr)?)),* $(,)?) => {
|
|
(
|
|
$(
|
|
$config
|
|
.as_ref()
|
|
.and_then(|pc_config| pc_config.theme_config.$field.clone())
|
|
.or_else(|| {
|
|
$business_config
|
|
.as_ref()
|
|
.and_then(|business_config| {
|
|
let value = business_config.$field.clone();
|
|
$(let value = value.map($transform);)?
|
|
value
|
|
})
|
|
})
|
|
),*
|
|
)
|
|
};
|
|
|
|
}
|