Skip to content

Commit bc2f457

Browse files
committed
refactor: resolve comment
1 parent 952336a commit bc2f457

File tree

10 files changed

+55
-36
lines changed

10 files changed

+55
-36
lines changed

crates/api_models/src/events/payment.rs

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,25 @@ use super::{
66
PaymentsCreateIntentRequest, PaymentsGetIntentRequest, PaymentsIntentResponse, PaymentsRequest,
77
};
88
#[cfg(feature = "v2")]
9-
use crate::payment_methods::PaymentMethodListResponseForSession;
9+
use crate::payment_methods::{
10+
ListMethodsForPaymentMethodsRequest, PaymentMethodListResponseForSession,
11+
};
12+
use crate::{
13+
payment_methods::{
14+
self, ListCountriesCurrenciesRequest, ListCountriesCurrenciesResponse,
15+
PaymentMethodCollectLinkRenderRequest, PaymentMethodCollectLinkRequest,
16+
PaymentMethodCollectLinkResponse, PaymentMethodMigrateResponse, PaymentMethodResponse,
17+
PaymentMethodUpdate,
18+
},
19+
payments::{
20+
self, PaymentListConstraints, PaymentListFilters, PaymentListFiltersV2,
21+
PaymentListResponse, PaymentsAggregateResponse, PaymentsSessionResponse,
22+
RedirectionResponse,
23+
},
24+
};
1025
#[cfg(feature = "v1")]
1126
use crate::{
12-
payment_methods::PaymentMethodListResponse,
27+
payment_methods::{PaymentMethodListRequest, PaymentMethodListResponse},
1328
payments::{
1429
ExtendedCardInfoResponse, PaymentIdType, PaymentListFilterConstraints,
1530
PaymentListResponseV2, PaymentsApproveRequest, PaymentsCancelRequest,
@@ -22,19 +37,6 @@ use crate::{
2237
PaymentsStartRequest, PaymentsUpdateMetadataRequest, PaymentsUpdateMetadataResponse,
2338
},
2439
};
25-
use crate::{
26-
payment_methods::{
27-
self, ListCountriesCurrenciesRequest, ListCountriesCurrenciesResponse,
28-
PaymentMethodCollectLinkRenderRequest, PaymentMethodCollectLinkRequest,
29-
PaymentMethodCollectLinkResponse, PaymentMethodListRequest, PaymentMethodMigrateResponse,
30-
PaymentMethodResponse, PaymentMethodUpdate,
31-
},
32-
payments::{
33-
self, PaymentListConstraints, PaymentListFilters, PaymentListFiltersV2,
34-
PaymentListResponse, PaymentsAggregateResponse, PaymentsSessionResponse,
35-
RedirectionResponse,
36-
},
37-
};
3840

3941
#[cfg(feature = "v1")]
4042
impl ApiEventMetric for PaymentsRetrieveRequest {
@@ -305,6 +307,7 @@ impl ApiEventMetric for payment_methods::PaymentMethodDeleteResponse {
305307

306308
impl ApiEventMetric for payment_methods::CustomerPaymentMethodsListResponse {}
307309

310+
#[cfg(feature = "v1")]
308311
impl ApiEventMetric for PaymentMethodListRequest {
309312
fn get_api_event_type(&self) -> Option<ApiEventsType> {
310313
Some(ApiEventsType::PaymentMethodList {
@@ -317,6 +320,19 @@ impl ApiEventMetric for PaymentMethodListRequest {
317320
}
318321
}
319322

323+
#[cfg(feature = "v2")]
324+
impl ApiEventMetric for ListMethodsForPaymentMethodsRequest {
325+
fn get_api_event_type(&self) -> Option<ApiEventsType> {
326+
Some(ApiEventsType::PaymentMethodList {
327+
payment_id: self
328+
.client_secret
329+
.as_ref()
330+
.and_then(|cs| cs.rsplit_once("_secret_"))
331+
.map(|(pid, _)| pid.to_string()),
332+
})
333+
}
334+
}
335+
320336
impl ApiEventMetric for ListCountriesCurrenciesRequest {}
321337

322338
impl ApiEventMetric for ListCountriesCurrenciesResponse {}

crates/api_models/src/payment_methods.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1778,7 +1778,7 @@ impl<'de> serde::Deserialize<'de> for PaymentMethodListRequest {
17781778
//List Payment Method
17791779
#[derive(Debug, Clone, serde::Serialize, Default, ToSchema)]
17801780
#[serde(deny_unknown_fields)]
1781-
pub struct PaymentMethodListRequest {
1781+
pub struct ListMethodsForPaymentMethodsRequest {
17821782
/// This is a 15 minute expiry token which shall be used from the client to authenticate and perform sessions from the SDK
17831783
#[schema(max_length = 30, min_length = 30, example = "secret_k2uj3he2893eiu2d")]
17841784
pub client_secret: Option<String>,
@@ -1809,15 +1809,15 @@ pub struct PaymentMethodListRequest {
18091809
}
18101810

18111811
#[cfg(feature = "v2")]
1812-
impl<'de> serde::Deserialize<'de> for PaymentMethodListRequest {
1812+
impl<'de> serde::Deserialize<'de> for ListMethodsForPaymentMethodsRequest {
18131813
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
18141814
where
18151815
D: serde::Deserializer<'de>,
18161816
{
18171817
struct FieldVisitor;
18181818

18191819
impl<'de> de::Visitor<'de> for FieldVisitor {
1820-
type Value = PaymentMethodListRequest;
1820+
type Value = ListMethodsForPaymentMethodsRequest;
18211821

18221822
fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18231823
formatter.write_str("Failed while deserializing as map")
@@ -1827,7 +1827,7 @@ impl<'de> serde::Deserialize<'de> for PaymentMethodListRequest {
18271827
where
18281828
A: de::MapAccess<'de>,
18291829
{
1830-
let mut output = PaymentMethodListRequest::default();
1830+
let mut output = ListMethodsForPaymentMethodsRequest::default();
18311831

18321832
while let Some(key) = map.next_key()? {
18331833
match key {

crates/api_models/src/payments.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7703,7 +7703,7 @@ pub enum SdkType {
77037703

77047704
#[cfg(feature = "v2")]
77057705
#[derive(Debug, serde::Serialize, serde::Deserialize, Clone, ToSchema)]
7706-
pub struct PaymentMethodsListRequest {
7706+
pub struct ListMethodsForPaymentsRequest {
77077707
/// This is a 15 minute expiry token which shall be used from the client to authenticate and perform sessions from the SDK
77087708
#[schema(max_length = 30, min_length = 30, example = "secret_k2uj3he2893eiu2d")]
77097709
pub client_secret: Option<String>,

crates/openapi/src/openapi_v2.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ Never share your secret api keys. Keep them guarded and secure.
239239
api_models::payment_methods::PaymentMethodResponseData,
240240
api_models::payment_methods::CustomerPaymentMethodResponseItem,
241241
api_models::payment_methods::PaymentMethodResponseItem,
242-
api_models::payment_methods::PaymentMethodListRequest,
242+
api_models::payment_methods::ListMethodsForPaymentMethodsRequest,
243243
api_models::payment_methods::PaymentMethodListResponseForSession,
244244
api_models::payment_methods::CustomerPaymentMethodsListResponse,
245245
api_models::payment_methods::ResponsePaymentMethodsEnabled,

crates/router/src/core/payments/payment_methods.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub async fn list_payment_methods(
2828
merchant_context: domain::MerchantContext,
2929
profile: domain::Profile,
3030
payment_id: id_type::GlobalPaymentId,
31-
req: api_models::payments::PaymentMethodsListRequest,
31+
req: api_models::payments::ListMethodsForPaymentsRequest,
3232
header_payload: &hyperswitch_domain_models::payments::HeaderPayload,
3333
) -> errors::RouterResponse<api_models::payments::PaymentMethodListResponseForPayments> {
3434
let db = &*state.store;
@@ -450,7 +450,7 @@ impl FlattenedPaymentMethodsEnabled {
450450
state: &routes::SessionState,
451451
merchant_context: &domain::MerchantContext,
452452
profile_id: &id_type::ProfileId,
453-
req: &api_models::payments::PaymentMethodsListRequest,
453+
req: &api_models::payments::ListMethodsForPaymentsRequest,
454454
payment_intent: &hyperswitch_domain_models::payments::PaymentIntent,
455455
) -> errors::RouterResult<FilteredPaymentMethodsEnabled> {
456456
let billing_address = payment_intent
@@ -476,12 +476,12 @@ impl FlattenedPaymentMethodsEnabled {
476476
}
477477
}
478478

479-
// note: v2 type for PaymentMethodListRequest will not have the installment_payment_enabled field,
479+
// note: v2 type for ListMethodsForPaymentMethodsRequest will not have the installment_payment_enabled field,
480480
#[cfg(feature = "v2")]
481481
#[allow(clippy::too_many_arguments)]
482482
pub async fn filter_payment_methods(
483483
payment_method_type_details: hyperswitch_domain_models::merchant_connector_account::PaymentMethodsEnabledForConnector,
484-
req: &api_models::payments::PaymentMethodsListRequest,
484+
req: &api_models::payments::ListMethodsForPaymentsRequest,
485485
resp: &mut Vec<
486486
hyperswitch_domain_models::merchant_connector_account::PaymentMethodsEnabledForConnector,
487487
>,

crates/router/src/routes/payment_methods.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ pub async fn list_customer_payment_method_api(
612612
state: web::Data<AppState>,
613613
customer_id: web::Path<id_type::GlobalCustomerId>,
614614
req: HttpRequest,
615-
query_payload: web::Query<api_models::payment_methods::PaymentMethodListRequest>,
615+
query_payload: web::Query<api_models::payment_methods::ListMethodsForPaymentMethodsRequest>,
616616
) -> HttpResponse {
617617
let flow = Flow::CustomerPaymentMethodsList;
618618
let payload = query_payload.into_inner();
@@ -956,6 +956,7 @@ pub async fn default_payment_method_set_api(
956956
.await
957957
}
958958

959+
#[cfg(feature = "v1")]
959960
#[cfg(test)]
960961
mod tests {
961962
#![allow(clippy::unwrap_used)]

crates/router/src/routes/payments.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3302,7 +3302,7 @@ pub async fn list_payment_methods(
33023302
state: web::Data<app::AppState>,
33033303
req: actix_web::HttpRequest,
33043304
path: web::Path<common_utils::id_type::GlobalPaymentId>,
3305-
query_payload: web::Query<api_models::payments::PaymentMethodsListRequest>,
3305+
query_payload: web::Query<api_models::payments::ListMethodsForPaymentsRequest>,
33063306
) -> impl Responder {
33073307
use crate::db::domain::merchant_context;
33083308

crates/router/src/services/api.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,6 +1103,7 @@ impl Authenticate for api_models::payments::PaymentsRequest {
11031103
}
11041104
}
11051105

1106+
#[cfg(feature = "v1")]
11061107
impl Authenticate for api_models::payment_methods::PaymentMethodListRequest {
11071108
fn get_client_secret(&self) -> Option<&String> {
11081109
self.client_secret.as_ref()

crates/router/src/services/authentication.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
use std::str::FromStr;
22

33
use actix_web::http::header::HeaderMap;
4-
#[cfg(feature = "v1")]
5-
use api_models::payment_methods::PaymentMethodCreate;
64
#[cfg(feature = "v2")]
75
use api_models::payment_methods::PaymentMethodIntentConfirm;
6+
#[cfg(feature = "v1")]
7+
use api_models::payment_methods::{PaymentMethodCreate, PaymentMethodListRequest};
8+
use api_models::payments;
89
#[cfg(feature = "payouts")]
910
use api_models::payouts;
10-
use api_models::{payment_methods::PaymentMethodListRequest, payments};
1111
use async_trait::async_trait;
1212
use common_enums::TokenPurpose;
1313
use common_utils::{date_time, fp_utils, id_type};
@@ -4168,6 +4168,7 @@ impl ClientSecretFetch for payments::PaymentsRetrieveRequest {
41684168
}
41694169
}
41704170

4171+
#[cfg(feature = "v1")]
41714172
impl ClientSecretFetch for PaymentMethodListRequest {
41724173
fn get_client_secret(&self) -> Option<&String> {
41734174
self.client_secret.as_ref()

crates/router/src/types/api/payment_methods.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ pub use api_models::payment_methods::{
77
NetworkTokenDetailsResponse, NetworkTokenResponse, PaymentMethodCollectLinkRenderRequest,
88
PaymentMethodCollectLinkRequest, PaymentMethodCreate, PaymentMethodCreateData,
99
PaymentMethodDeleteResponse, PaymentMethodId, PaymentMethodIntentConfirm,
10-
PaymentMethodIntentCreate, PaymentMethodListData, PaymentMethodListRequest,
11-
PaymentMethodListResponseForSession, PaymentMethodMigrate, PaymentMethodMigrateResponse,
12-
PaymentMethodResponse, PaymentMethodResponseData, PaymentMethodUpdate, PaymentMethodUpdateData,
13-
PaymentMethodsData, RequestPaymentMethodTypes, TokenDataResponse, TokenDetailsResponse,
14-
TokenizePayloadEncrypted, TokenizePayloadRequest, TokenizedCardValue1, TokenizedCardValue2,
15-
TokenizedWalletValue1, TokenizedWalletValue2, TotalPaymentMethodCountResponse,
10+
PaymentMethodIntentCreate, PaymentMethodListData, PaymentMethodListResponseForSession,
11+
PaymentMethodMigrate, PaymentMethodMigrateResponse, PaymentMethodResponse,
12+
PaymentMethodResponseData, PaymentMethodUpdate, PaymentMethodUpdateData, PaymentMethodsData,
13+
RequestPaymentMethodTypes, TokenDataResponse, TokenDetailsResponse, TokenizePayloadEncrypted,
14+
TokenizePayloadRequest, TokenizedCardValue1, TokenizedCardValue2, TokenizedWalletValue1,
15+
TokenizedWalletValue2, TotalPaymentMethodCountResponse,
1616
};
1717
#[cfg(feature = "v1")]
1818
pub use api_models::payment_methods::{

0 commit comments

Comments
 (0)