mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-27 11:24:45 +08:00
refactor(customers_v2): include minor fixes for customer v2 flows (#6876)
This commit is contained in:
@ -14585,6 +14585,7 @@
|
||||
"id",
|
||||
"status",
|
||||
"amount",
|
||||
"customer_id",
|
||||
"connector",
|
||||
"client_secret",
|
||||
"created",
|
||||
@ -14606,6 +14607,13 @@
|
||||
"amount": {
|
||||
"$ref": "#/components/schemas/ConfirmIntentAmountDetailsResponse"
|
||||
},
|
||||
"customer_id": {
|
||||
"type": "string",
|
||||
"description": "The identifier for the customer",
|
||||
"example": "12345_cus_01926c58bc6e77c09e809964e72af8c8",
|
||||
"maxLength": 64,
|
||||
"minLength": 32
|
||||
},
|
||||
"connector": {
|
||||
"type": "string",
|
||||
"description": "The connector used for the payment",
|
||||
@ -16330,6 +16338,7 @@
|
||||
"id",
|
||||
"status",
|
||||
"amount",
|
||||
"customer_id",
|
||||
"client_secret",
|
||||
"created"
|
||||
],
|
||||
@ -16347,6 +16356,13 @@
|
||||
"amount": {
|
||||
"$ref": "#/components/schemas/ConfirmIntentAmountDetailsResponse"
|
||||
},
|
||||
"customer_id": {
|
||||
"type": "string",
|
||||
"description": "The identifier for the customer",
|
||||
"example": "12345_cus_01926c58bc6e77c09e809964e72af8c8",
|
||||
"maxLength": 64,
|
||||
"minLength": 32
|
||||
},
|
||||
"connector": {
|
||||
"type": "string",
|
||||
"description": "The connector used for the payment",
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
use common_utils::events::{ApiEventMetric, ApiEventsType};
|
||||
|
||||
use crate::customers::{CustomerDeleteResponse, CustomerRequest, CustomerResponse};
|
||||
use crate::customers::{
|
||||
CustomerDeleteResponse, CustomerRequest, CustomerResponse, CustomerUpdateRequestInternal,
|
||||
};
|
||||
|
||||
#[cfg(all(any(feature = "v1", feature = "v2"), not(feature = "customer_v2")))]
|
||||
impl ApiEventMetric for CustomerDeleteResponse {
|
||||
@ -55,7 +57,7 @@ impl ApiEventMetric for CustomerResponse {
|
||||
}
|
||||
|
||||
#[cfg(all(any(feature = "v1", feature = "v2"), not(feature = "customer_v2")))]
|
||||
impl ApiEventMetric for crate::customers::CustomerUpdateRequestInternal {
|
||||
impl ApiEventMetric for CustomerUpdateRequestInternal {
|
||||
fn get_api_event_type(&self) -> Option<ApiEventsType> {
|
||||
Some(ApiEventsType::Customer {
|
||||
customer_id: self.customer_id.clone(),
|
||||
@ -64,7 +66,7 @@ impl ApiEventMetric for crate::customers::CustomerUpdateRequestInternal {
|
||||
}
|
||||
|
||||
#[cfg(all(feature = "v2", feature = "customer_v2"))]
|
||||
impl ApiEventMetric for crate::customers::CustomerUpdateRequestInternal {
|
||||
impl ApiEventMetric for CustomerUpdateRequestInternal {
|
||||
fn get_api_event_type(&self) -> Option<ApiEventsType> {
|
||||
Some(ApiEventsType::Customer {
|
||||
customer_id: Some(self.id.clone()),
|
||||
|
||||
@ -4803,6 +4803,15 @@ pub struct PaymentsConfirmIntentResponse {
|
||||
/// Amount related information for this payment and attempt
|
||||
pub amount: ConfirmIntentAmountDetailsResponse,
|
||||
|
||||
/// The identifier for the customer
|
||||
#[schema(
|
||||
min_length = 32,
|
||||
max_length = 64,
|
||||
example = "12345_cus_01926c58bc6e77c09e809964e72af8c8",
|
||||
value_type = String
|
||||
)]
|
||||
pub customer_id: Option<id_type::GlobalCustomerId>,
|
||||
|
||||
/// The connector used for the payment
|
||||
#[schema(example = "stripe")]
|
||||
pub connector: String,
|
||||
@ -4872,6 +4881,15 @@ pub struct PaymentsRetrieveResponse {
|
||||
/// Amount related information for this payment and attempt
|
||||
pub amount: ConfirmIntentAmountDetailsResponse,
|
||||
|
||||
/// The identifier for the customer
|
||||
#[schema(
|
||||
min_length = 32,
|
||||
max_length = 64,
|
||||
example = "12345_cus_01926c58bc6e77c09e809964e72af8c8",
|
||||
value_type = String
|
||||
)]
|
||||
pub customer_id: Option<id_type::GlobalCustomerId>,
|
||||
|
||||
/// The connector used for the payment
|
||||
#[schema(example = "stripe")]
|
||||
pub connector: Option<String>,
|
||||
|
||||
@ -568,7 +568,7 @@ pub async fn delete_customer(
|
||||
) -> errors::CustomerResponse<customers::CustomerDeleteResponse> {
|
||||
let db = &*state.store;
|
||||
let key_manager_state = &(&state).into();
|
||||
id.fetch_domain_model_and_update_and_generate_delete_customer_response(
|
||||
id.redact_customer_details_and_generate_response(
|
||||
db,
|
||||
&key_store,
|
||||
&merchant_account,
|
||||
@ -585,7 +585,7 @@ pub async fn delete_customer(
|
||||
))]
|
||||
#[async_trait::async_trait]
|
||||
impl CustomerDeleteBridge for id_type::GlobalCustomerId {
|
||||
async fn fetch_domain_model_and_update_and_generate_delete_customer_response<'a>(
|
||||
async fn redact_customer_details_and_generate_response<'a>(
|
||||
&'a self,
|
||||
db: &'a dyn StorageInterface,
|
||||
key_store: &'a domain::MerchantKeyStore,
|
||||
@ -717,7 +717,7 @@ impl CustomerDeleteBridge for id_type::GlobalCustomerId {
|
||||
|
||||
#[async_trait::async_trait]
|
||||
trait CustomerDeleteBridge {
|
||||
async fn fetch_domain_model_and_update_and_generate_delete_customer_response<'a>(
|
||||
async fn redact_customer_details_and_generate_response<'a>(
|
||||
&'a self,
|
||||
db: &'a dyn StorageInterface,
|
||||
key_store: &'a domain::MerchantKeyStore,
|
||||
@ -742,7 +742,7 @@ pub async fn delete_customer(
|
||||
let db = &*state.store;
|
||||
let key_manager_state = &(&state).into();
|
||||
customer_id
|
||||
.fetch_domain_model_and_update_and_generate_delete_customer_response(
|
||||
.redact_customer_details_and_generate_response(
|
||||
db,
|
||||
&key_store,
|
||||
&merchant_account,
|
||||
@ -759,7 +759,7 @@ pub async fn delete_customer(
|
||||
))]
|
||||
#[async_trait::async_trait]
|
||||
impl CustomerDeleteBridge for id_type::CustomerId {
|
||||
async fn fetch_domain_model_and_update_and_generate_delete_customer_response<'a>(
|
||||
async fn redact_customer_details_and_generate_response<'a>(
|
||||
&'a self,
|
||||
db: &'a dyn StorageInterface,
|
||||
key_store: &'a domain::MerchantKeyStore,
|
||||
|
||||
@ -1238,6 +1238,7 @@ where
|
||||
id: payment_intent.id.clone(),
|
||||
status: payment_intent.status,
|
||||
amount,
|
||||
customer_id: payment_intent.customer_id.clone(),
|
||||
connector,
|
||||
client_secret: payment_intent.client_secret.clone(),
|
||||
created: payment_intent.created_at,
|
||||
@ -1311,6 +1312,7 @@ where
|
||||
id: payment_intent.id.clone(),
|
||||
status: payment_intent.status,
|
||||
amount,
|
||||
customer_id: payment_intent.customer_id.clone(),
|
||||
connector,
|
||||
billing: payment_address
|
||||
.get_payment_billing()
|
||||
|
||||
Reference in New Issue
Block a user