-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor(request_body): Added FRM data in payment request #7615
Conversation
Changed Files
|
d86e69d
to
60127f3
Compare
aa34a43
to
13b21ac
Compare
visits_year: Option<String>, | ||
ship_to_name: Option<String>, | ||
first8charactersof_address_line1_zip: Option<String>, | ||
affiliate_order: Option<String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This value should be bool
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
affiliate_order
is already bool, rest fields should be string only, right?
#[serde(rename = "itemID")] | ||
item_id: Option<String>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#[serde(rename = "itemID")] | |
item_id: Option<String>, | |
item_i_d: Option<String>, |
#[derive(Clone, Default, Debug, Serialize, Deserialize)] | ||
#[serde(rename_all = "camelCase")] | ||
pub struct Basket { | ||
basket: Vec<OrderLines>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn;t the hierarchy here be riskdata.basket.item1.itemID?
Where is item1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
8f88d9c
to
ae05fbf
Compare
ae05fbf
to
a44d2c8
Compare
impl ForeignTryFrom<serde_json::Value> for RiskData { | ||
type Error = error_stack::Report<errors::ConnectorError>; | ||
|
||
fn foreign_try_from(metadata: serde_json::Value) -> Result<Self, Self::Error> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do not use foreign try from here, instead create a function like get_risk_data
Also the return type for that function can be Option
let device_country = risk_data_value | ||
.get("device_country") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let house_numberor_name = risk_data_value | ||
.get("house_numberor_name") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let account_creation_date = risk_data_value | ||
.get("account_creation_date") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let affiliate_channel = risk_data_value | ||
.get("affiliate_channel") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let avg_order_value = risk_data_value | ||
.get("avg_order_value") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let delivery_method = risk_data_value | ||
.get("delivery_method") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let email_name = risk_data_value | ||
.get("email_name") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let email_domain = risk_data_value | ||
.get("email_domain") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let last_order_date = risk_data_value | ||
.get("last_order_date") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let merchant_reference = risk_data_value | ||
.get("merchant_reference") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let payment_method = risk_data_value | ||
.get("payment_method") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let promotion_name = risk_data_value | ||
.get("promotion_name") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let secondary_phone_number = risk_data_value | ||
.get("secondary_phone_number") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let timefrom_loginto_order = risk_data_value | ||
.get("timefrom_loginto_order") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let total_session_time = risk_data_value | ||
.get("total_session_time") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let total_authorized_amount_in_last30_days = risk_data_value | ||
.get("total_authorized_amount_in_last30_days") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let total_order_quantity = risk_data_value | ||
.get("total_order_quantity") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let total_lifetime_value = risk_data_value | ||
.get("total_lifetime_value") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let visits_month = risk_data_value | ||
.get("visits_month") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let visits_week = risk_data_value | ||
.get("visits_week") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let visits_year = risk_data_value | ||
.get("visits_year") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let ship_to_name = risk_data_value | ||
.get("ship_to_name") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let first8charactersof_address_line1_zip = risk_data_value | ||
.get("first8charactersof_address_line1_zip") | ||
.and_then(|v| v.as_str()) | ||
.map(|s| s.to_string()); | ||
let affiliate_order = risk_data_value | ||
.get("affiliate_order") | ||
.and_then(|v| v.as_bool()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let device_country = risk_data_value | |
.get("device_country") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let house_numberor_name = risk_data_value | |
.get("house_numberor_name") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let account_creation_date = risk_data_value | |
.get("account_creation_date") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let affiliate_channel = risk_data_value | |
.get("affiliate_channel") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let avg_order_value = risk_data_value | |
.get("avg_order_value") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let delivery_method = risk_data_value | |
.get("delivery_method") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let email_name = risk_data_value | |
.get("email_name") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let email_domain = risk_data_value | |
.get("email_domain") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let last_order_date = risk_data_value | |
.get("last_order_date") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let merchant_reference = risk_data_value | |
.get("merchant_reference") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let payment_method = risk_data_value | |
.get("payment_method") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let promotion_name = risk_data_value | |
.get("promotion_name") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let secondary_phone_number = risk_data_value | |
.get("secondary_phone_number") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let timefrom_loginto_order = risk_data_value | |
.get("timefrom_loginto_order") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let total_session_time = risk_data_value | |
.get("total_session_time") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let total_authorized_amount_in_last30_days = risk_data_value | |
.get("total_authorized_amount_in_last30_days") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let total_order_quantity = risk_data_value | |
.get("total_order_quantity") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let total_lifetime_value = risk_data_value | |
.get("total_lifetime_value") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let visits_month = risk_data_value | |
.get("visits_month") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let visits_week = risk_data_value | |
.get("visits_week") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let visits_year = risk_data_value | |
.get("visits_year") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let ship_to_name = risk_data_value | |
.get("ship_to_name") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let first8charactersof_address_line1_zip = risk_data_value | |
.get("first8charactersof_address_line1_zip") | |
.and_then(|v| v.as_str()) | |
.map(|s| s.to_string()); | |
let affiliate_order = risk_data_value | |
.get("affiliate_order") | |
.and_then(|v| v.as_bool()); | |
device_country: get_str("device_country"), | |
house_numberor_name: get_str("house_numberor_name"), | |
account_creation_date: get_str("account_creation_date"), | |
affiliate_channel: get_str("affiliate_channel"), | |
avg_order_value: get_str("avg_order_value"), | |
delivery_method: get_str("delivery_method"), | |
email_name: get_str("email_name"), | |
email_domain: get_str("email_domain"), | |
last_order_date: get_str("last_order_date"), | |
merchant_reference: get_str("merchant_reference"), | |
payment_method: get_str("payment_method"), | |
promotion_name: get_str("promotion_name"), | |
secondary_phone_number: get_str("secondary_phone_number"), | |
timefrom_loginto_order: get_str("timefrom_loginto_order"), | |
total_session_time: get_str("total_session_time"), | |
total_authorized_amount_in_last30_days: get_str("total_authorized_amount_in_last30_days"), | |
total_order_quantity: get_str("total_order_quantity"), | |
total_lifetime_value: get_str("total_lifetime_value"), | |
visits_month: get_str("visits_month"), | |
visits_week: get_str("visits_week"), | |
visits_year: get_str("visits_year"), | |
ship_to_name: get_str("ship_to_name"), | |
first8charactersof_address_line1_zip: get_str("first8charactersof_address_line1_zip"), | |
affiliate_order: get_bool("affiliate_order"), |
impl ForeignTryFrom<serde_json::Value> for Option<Secret<String>> { | ||
type Error = error_stack::Report<errors::ConnectorError>; | ||
|
||
fn foreign_try_from(metadata: serde_json::Value) -> Result<Self, Self::Error> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do not use foreign_try_from
fb74022
to
0b093de
Compare
#[serde_with::skip_serializing_none] | ||
#[derive(Clone, Default, Debug, Serialize, Deserialize)] | ||
#[serde(rename_all = "camelCase")] | ||
pub struct ItemData { | ||
item_i_d: Option<String>, | ||
product_title: Option<String>, | ||
amount_per_item: Option<String>, | ||
currency: Option<String>, | ||
upc: Option<String>, | ||
brand: Option<String>, | ||
manufacturer: Option<String>, | ||
category: Option<String>, | ||
quantity: Option<String>, | ||
color: Option<String>, | ||
size: Option<String>, | ||
} | ||
|
||
#[serde_with::skip_serializing_none] | ||
#[derive(Clone, Default, Debug, Serialize, Deserialize)] | ||
#[serde(rename_all = "camelCase")] | ||
pub struct Basket { | ||
basket: Option<Item>, | ||
} | ||
|
||
#[serde_with::skip_serializing_none] | ||
#[derive(Clone, Default, Debug, Serialize, Deserialize)] | ||
#[serde(rename_all = "camelCase")] | ||
pub struct Item { | ||
item1: Option<ItemData>, | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These structs can be removed now.
ba453f0
to
a002041
Compare
a002041
to
3898049
Compare
d01209a
Type of Change
Description
Added
FRM
data in payment request for connectorAdyen
Additional Changes
Motivation and Context
How did you test it?
Response
Checklist
cargo +nightly fmt --all
cargo clippy