mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-11-03 05:17:02 +08:00
refactor(mca): use separate struct for connector metadata (#1465)
This commit is contained in:
@ -1762,8 +1762,12 @@ pub struct ApplepaySessionRequest {
|
|||||||
|
|
||||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||||
pub struct ConnectorMetadata {
|
pub struct ConnectorMetadata {
|
||||||
pub apple_pay: Option<ApplePayMetadata>,
|
pub apple_pay: Option<ApplepayConnectorMetadataRequest>,
|
||||||
pub google_pay: Option<GpayMetaData>,
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||||
|
pub struct ApplepayConnectorMetadataRequest {
|
||||||
|
pub session_token_data: Option<SessionTokenInfo>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
|
||||||
|
|||||||
@ -384,7 +384,7 @@ fn validate_certificate_in_mca_metadata(
|
|||||||
connector_metadata: Secret<serde_json::Value>,
|
connector_metadata: Secret<serde_json::Value>,
|
||||||
) -> RouterResult<()> {
|
) -> RouterResult<()> {
|
||||||
let parsed_connector_metadata = connector_metadata
|
let parsed_connector_metadata = connector_metadata
|
||||||
.parse_value::<api_models::payments::ConnectorMetadata>("ApplepaySessionTokenData")
|
.parse_value::<api_models::payments::ConnectorMetadata>("ConnectorMetadata")
|
||||||
.change_context(errors::ParsingError::StructParseFailure("Metadata"))
|
.change_context(errors::ParsingError::StructParseFailure("Metadata"))
|
||||||
.change_context(errors::ApiErrorResponse::InvalidDataFormat {
|
.change_context(errors::ApiErrorResponse::InvalidDataFormat {
|
||||||
field_name: "metadata".to_string(),
|
field_name: "metadata".to_string(),
|
||||||
@ -393,17 +393,22 @@ fn validate_certificate_in_mca_metadata(
|
|||||||
|
|
||||||
parsed_connector_metadata
|
parsed_connector_metadata
|
||||||
.apple_pay
|
.apple_pay
|
||||||
.map(|applepay_metadata| {
|
.and_then(|applepay_metadata| {
|
||||||
let api_models::payments::SessionTokenInfo {
|
applepay_metadata
|
||||||
certificate,
|
.session_token_data
|
||||||
certificate_keys,
|
.map(|session_token_data| {
|
||||||
..
|
let api_models::payments::SessionTokenInfo {
|
||||||
} = applepay_metadata.session_token_data;
|
certificate,
|
||||||
helpers::create_identity_from_certificate_and_key(certificate, certificate_keys)
|
certificate_keys,
|
||||||
.change_context(errors::ApiErrorResponse::InvalidDataValue {
|
..
|
||||||
field_name: "certificate/certificate key",
|
} = session_token_data;
|
||||||
|
|
||||||
|
helpers::create_identity_from_certificate_and_key(certificate, certificate_keys)
|
||||||
|
.change_context(errors::ApiErrorResponse::InvalidDataValue {
|
||||||
|
field_name: "certificate/certificate key",
|
||||||
|
})
|
||||||
|
.map(|_identity_result| ())
|
||||||
})
|
})
|
||||||
.map(|_identity_result| ())
|
|
||||||
})
|
})
|
||||||
.transpose()?;
|
.transpose()?;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user