mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 09:07:09 +08:00
feat: store card network for cards (#687)
This commit is contained in:
@ -41,6 +41,10 @@ pub struct CreatePaymentMethod {
|
||||
/// The unique identifier of the customer.
|
||||
#[schema(example = "cus_meowerunwiuwiwqw")]
|
||||
pub customer_id: Option<String>,
|
||||
|
||||
/// The card network
|
||||
#[schema(example = "Visa")]
|
||||
pub card_network: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone, ToSchema)]
|
||||
@ -54,6 +58,10 @@ pub struct UpdatePaymentMethod {
|
||||
"card_holder_name": "John Doe"}))]
|
||||
pub card: Option<CardDetail>,
|
||||
|
||||
/// You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
|
||||
#[schema(value_type = Option<CardNetwork>,example = "Visa")]
|
||||
pub card_network: Option<api_enums::CardNetwork>,
|
||||
|
||||
/// You can specify up to 50 keys, with key names up to 40 characters long and values up to 500 characters long. Metadata is useful for storing additional, structured information on an object.
|
||||
#[schema(value_type = Option<Object>,example = json!({ "city": "NY", "unit": "245" }))]
|
||||
pub metadata: Option<serde_json::Value>,
|
||||
|
||||
@ -48,6 +48,7 @@ pub async fn create_payment_method(
|
||||
payment_method: req.payment_method.foreign_into(),
|
||||
payment_method_type: req.payment_method_type.map(ForeignInto::foreign_into),
|
||||
payment_method_issuer: req.payment_method_issuer.clone(),
|
||||
scheme: req.card_network.clone(),
|
||||
metadata: req.metadata.clone(),
|
||||
..storage::PaymentMethodNew::default()
|
||||
})
|
||||
@ -129,6 +130,10 @@ pub async fn update_customer_payment_method(
|
||||
card: req.card,
|
||||
metadata: req.metadata,
|
||||
customer_id: Some(pm.customer_id),
|
||||
card_network: req
|
||||
.card_network
|
||||
.as_ref()
|
||||
.map(|card_network| card_network.to_string()),
|
||||
};
|
||||
add_payment_method(state, new_pm, &merchant_account).await
|
||||
}
|
||||
|
||||
@ -517,11 +517,15 @@ pub(crate) async fn call_payment_method(
|
||||
let payment_method_request = api::CreatePaymentMethod {
|
||||
payment_method: payment_method_type.foreign_into(),
|
||||
payment_method_type: None,
|
||||
payment_method_issuer: None,
|
||||
payment_method_issuer: card.card_issuer.clone(),
|
||||
payment_method_issuer_code: None,
|
||||
card: Some(card_detail),
|
||||
metadata: None,
|
||||
customer_id: Some(customer_id),
|
||||
card_network: card
|
||||
.card_network
|
||||
.as_ref()
|
||||
.map(|card_network| card_network.to_string()),
|
||||
};
|
||||
let resp = cards::add_payment_method(
|
||||
state,
|
||||
@ -553,6 +557,7 @@ pub(crate) async fn call_payment_method(
|
||||
card: None,
|
||||
metadata: None,
|
||||
customer_id: None,
|
||||
card_network: None,
|
||||
};
|
||||
let resp =
|
||||
cards::add_payment_method(state, payment_method_request, merchant_account)
|
||||
|
||||
Reference in New Issue
Block a user