fix(euclid_wasm): checkout wasm metadata issue (#4198)

Co-authored-by: Arjun Karthik <m.arjunkarthik@gmail.com>
This commit is contained in:
Jeeva Ramachandran
2024-03-27 13:59:10 +05:30
committed by GitHub
parent 9798db4558
commit 246898fbb0
3 changed files with 76 additions and 77 deletions

View File

@ -82,6 +82,11 @@ pub struct ApiModelMetaData {
pub apple_pay: Option<ApplePayData>,
pub apple_pay_combined: Option<ApplePayData>,
pub endpoint_prefix: Option<String>,
pub mcc: Option<String>,
pub merchant_country_code: Option<String>,
pub merchant_name: Option<String>,
pub acquirer_bin: Option<String>,
pub acquirer_merchant_id: Option<String>,
}
#[serde_with::skip_serializing_none]
@ -175,4 +180,9 @@ pub struct DashboardMetaData {
pub apple_pay: Option<ApplePayData>,
pub apple_pay_combined: Option<ApplePayData>,
pub endpoint_prefix: Option<String>,
pub mcc: Option<String>,
pub merchant_country_code: Option<String>,
pub merchant_name: Option<String>,
pub acquirer_bin: Option<String>,
pub acquirer_merchant_id: Option<String>,
}

View File

@ -1,6 +1,7 @@
use crate::common_config::{
CardProvider, ConnectorApiIntegrationPayload, DashboardMetaData, DashboardPaymentMethodPayload,
DashboardRequestPayload, GoogleApiModelData, GooglePayData, GpayDashboardPayLoad, Provider,
ApiModelMetaData, CardProvider, ConnectorApiIntegrationPayload, DashboardMetaData,
DashboardPaymentMethodPayload, DashboardRequestPayload, GoogleApiModelData, GooglePayData,
GpayDashboardPayLoad, Provider,
};
impl ConnectorApiIntegrationPayload {
@ -275,52 +276,7 @@ impl ConnectorApiIntegrationPayload {
card_provider: Some(credit_details),
};
let google_pay = Self::get_google_pay_metadata_response(response.clone());
let account_name = match response.metadata.clone() {
Some(meta_data) => meta_data.account_name,
_ => None,
};
let merchant_account_id = match response.metadata.clone() {
Some(meta_data) => meta_data.merchant_account_id,
_ => None,
};
let merchant_id = match response.metadata.clone() {
Some(meta_data) => meta_data.merchant_id,
_ => None,
};
let terminal_id = match response.metadata.clone() {
Some(meta_data) => meta_data.terminal_id,
_ => None,
};
let endpoint_prefix = match response.metadata.clone() {
Some(meta_data) => meta_data.endpoint_prefix,
_ => None,
};
let apple_pay = match response.metadata.clone() {
Some(meta_data) => meta_data.apple_pay,
_ => None,
};
let apple_pay_combined = match response.metadata.clone() {
Some(meta_data) => meta_data.apple_pay_combined,
_ => None,
};
let merchant_config_currency = match response.metadata.clone() {
Some(meta_data) => meta_data.merchant_config_currency,
_ => None,
};
let meta_data = DashboardMetaData {
merchant_config_currency,
merchant_account_id,
apple_pay,
apple_pay_combined,
google_pay,
account_name,
terminal_id,
merchant_id,
endpoint_prefix,
};
let meta_data = response.metadata.map(DashboardMetaData::from);
DashboardRequestPayload {
connector: response.connector_name,
@ -339,21 +295,42 @@ impl ConnectorApiIntegrationPayload {
credit_details,
gift_card,
]),
metadata: Some(meta_data),
metadata: meta_data,
}
}
}
pub fn get_google_pay_metadata_response(response: Self) -> Option<GooglePayData> {
match response.metadata {
Some(meta_data) => {
match meta_data.google_pay {
impl From<ApiModelMetaData> for DashboardMetaData {
fn from(api_model: ApiModelMetaData) -> Self {
Self {
merchant_config_currency: api_model.merchant_config_currency,
merchant_account_id: api_model.merchant_account_id,
account_name: api_model.account_name,
terminal_id: api_model.terminal_id,
merchant_id: api_model.merchant_id,
google_pay: get_google_pay_metadata_response(api_model.google_pay),
apple_pay: api_model.apple_pay,
apple_pay_combined: api_model.apple_pay_combined,
endpoint_prefix: api_model.endpoint_prefix,
mcc: api_model.mcc,
merchant_country_code: api_model.merchant_country_code,
merchant_name: api_model.merchant_name,
acquirer_bin: api_model.acquirer_bin,
acquirer_merchant_id: api_model.acquirer_merchant_id,
}
}
}
pub fn get_google_pay_metadata_response(
google_pay_data: Option<GoogleApiModelData>,
) -> Option<GooglePayData> {
match google_pay_data {
Some(google_pay) => match google_pay {
GoogleApiModelData::Standard(standard_data) => {
let data = standard_data.allowed_payment_methods.first().map(
|allowed_pm| {
allowed_pm.tokenization_specification.parameters.clone()
},
)?;
let data = standard_data
.allowed_payment_methods
.first()
.map(|allowed_pm| allowed_pm.tokenization_specification.parameters.clone())?;
Some(GooglePayData::Standard(GpayDashboardPayLoad {
gateway_merchant_id: data.gateway_merchant_id,
stripe_version: data.stripe_version,
@ -366,8 +343,4 @@ impl ConnectorApiIntegrationPayload {
},
None => None,
}
}
None => None,
}
}
}

View File

@ -187,6 +187,11 @@ impl DashboardRequestPayload {
merchant_id: None,
merchant_config_currency: None,
endpoint_prefix: None,
mcc: None,
merchant_country_code: None,
merchant_name: None,
acquirer_bin: None,
acquirer_merchant_id: None,
};
let meta_data = match request.metadata {
Some(data) => data,
@ -201,6 +206,12 @@ impl DashboardRequestPayload {
let apple_pay = meta_data.apple_pay;
let apple_pay_combined = meta_data.apple_pay_combined;
let merchant_config_currency = meta_data.merchant_config_currency;
let mcc = meta_data.mcc;
let merchant_country_code = meta_data.merchant_country_code;
let merchant_name = meta_data.merchant_name;
let acquirer_bin = meta_data.acquirer_bin;
let acquirer_merchant_id = meta_data.acquirer_merchant_id;
Some(ApiModelMetaData {
google_pay,
apple_pay,
@ -211,6 +222,11 @@ impl DashboardRequestPayload {
merchant_config_currency,
apple_pay_combined,
endpoint_prefix,
mcc,
merchant_country_code,
merchant_name,
acquirer_bin,
acquirer_merchant_id,
})
}