mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 17:47:54 +08:00
feat(analytics): revamped 3ds auth analytics (#8163)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -231,6 +231,11 @@ impl<'a> FromRow<'a, PgRow> for super::auth_events::metrics::AuthEventMetricRow
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
|
||||
let platform: Option<String> = row.try_get("platform").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let acs_reference_number: Option<String> =
|
||||
row.try_get("acs_reference_number").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
@ -247,6 +252,102 @@ impl<'a> FromRow<'a, PgRow> for super::auth_events::metrics::AuthEventMetricRow
|
||||
let end_bucket: Option<PrimitiveDateTime> = row
|
||||
.try_get::<Option<PrimitiveDateTime>, _>("end_bucket")?
|
||||
.and_then(|dt| dt.replace_millisecond(0).ok());
|
||||
let mcc: Option<String> = row.try_get("mcc").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let currency: Option<DBEnumWrapper<Currency>> =
|
||||
row.try_get("currency").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let merchant_country: Option<String> =
|
||||
row.try_get("merchant_country").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let billing_country: Option<String> =
|
||||
row.try_get("billing_country").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let shipping_country: Option<String> =
|
||||
row.try_get("shipping_country").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let issuer_country: Option<String> =
|
||||
row.try_get("issuer_country").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let earliest_supported_version: Option<String> = row
|
||||
.try_get("earliest_supported_version")
|
||||
.or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let latest_supported_version: Option<String> = row
|
||||
.try_get("latest_supported_version")
|
||||
.or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let whitelist_decision: Option<bool> =
|
||||
row.try_get("whitelist_decision").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_manufacturer: Option<String> =
|
||||
row.try_get("device_manufacturer").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_type: Option<String> = row.try_get("device_type").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_brand: Option<String> = row.try_get("device_brand").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_os: Option<String> = row.try_get("device_os").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_display: Option<String> =
|
||||
row.try_get("device_display").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let browser_name: Option<String> = row.try_get("browser_name").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let browser_version: Option<String> =
|
||||
row.try_get("browser_version").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let issuer_id: Option<String> = row.try_get("issuer_id").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let scheme_name: Option<String> = row.try_get("scheme_name").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let exemption_requested: Option<bool> =
|
||||
row.try_get("exemption_requested").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let exemption_accepted: Option<bool> =
|
||||
row.try_get("exemption_accepted").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
|
||||
Ok(Self {
|
||||
authentication_status,
|
||||
trans_status,
|
||||
@ -255,9 +356,30 @@ impl<'a> FromRow<'a, PgRow> for super::auth_events::metrics::AuthEventMetricRow
|
||||
authentication_connector,
|
||||
message_version,
|
||||
acs_reference_number,
|
||||
platform,
|
||||
count,
|
||||
start_bucket,
|
||||
end_bucket,
|
||||
mcc,
|
||||
currency,
|
||||
merchant_country,
|
||||
billing_country,
|
||||
shipping_country,
|
||||
issuer_country,
|
||||
earliest_supported_version,
|
||||
latest_supported_version,
|
||||
whitelist_decision,
|
||||
device_manufacturer,
|
||||
device_type,
|
||||
device_brand,
|
||||
device_os,
|
||||
device_display,
|
||||
browser_name,
|
||||
browser_version,
|
||||
issuer_id,
|
||||
scheme_name,
|
||||
exemption_requested,
|
||||
exemption_accepted,
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -299,6 +421,106 @@ impl<'a> FromRow<'a, PgRow> for super::auth_events::filters::AuthEventFilterRow
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let platform: Option<String> = row.try_get("platform").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let mcc: Option<String> = row.try_get("mcc").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let currency: Option<DBEnumWrapper<Currency>> =
|
||||
row.try_get("currency").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let merchant_country: Option<String> =
|
||||
row.try_get("merchant_country").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let billing_country: Option<String> =
|
||||
row.try_get("billing_country").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let shipping_country: Option<String> =
|
||||
row.try_get("shipping_country").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let issuer_country: Option<String> =
|
||||
row.try_get("issuer_country").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let earliest_supported_version: Option<String> = row
|
||||
.try_get("earliest_supported_version")
|
||||
.or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let latest_supported_version: Option<String> = row
|
||||
.try_get("latest_supported_version")
|
||||
.or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let whitelist_decision: Option<bool> =
|
||||
row.try_get("whitelist_decision").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_manufacturer: Option<String> =
|
||||
row.try_get("device_manufacturer").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_type: Option<String> = row.try_get("device_type").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_brand: Option<String> = row.try_get("device_brand").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_os: Option<String> = row.try_get("device_os").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let device_display: Option<String> =
|
||||
row.try_get("device_display").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let browser_name: Option<String> = row.try_get("browser_name").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let browser_version: Option<String> =
|
||||
row.try_get("browser_version").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let issuer_id: Option<String> = row.try_get("issuer_id").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let scheme_name: Option<String> = row.try_get("scheme_name").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let exemption_requested: Option<bool> =
|
||||
row.try_get("exemption_requested").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
let exemption_accepted: Option<bool> =
|
||||
row.try_get("exemption_accepted").or_else(|e| match e {
|
||||
ColumnNotFound(_) => Ok(Default::default()),
|
||||
e => Err(e),
|
||||
})?;
|
||||
|
||||
Ok(Self {
|
||||
authentication_status,
|
||||
trans_status,
|
||||
@ -306,7 +528,28 @@ impl<'a> FromRow<'a, PgRow> for super::auth_events::filters::AuthEventFilterRow
|
||||
error_message,
|
||||
authentication_connector,
|
||||
message_version,
|
||||
platform,
|
||||
acs_reference_number,
|
||||
mcc,
|
||||
currency,
|
||||
merchant_country,
|
||||
billing_country,
|
||||
shipping_country,
|
||||
issuer_country,
|
||||
earliest_supported_version,
|
||||
latest_supported_version,
|
||||
whitelist_decision,
|
||||
device_manufacturer,
|
||||
device_type,
|
||||
device_brand,
|
||||
device_os,
|
||||
device_display,
|
||||
browser_name,
|
||||
browser_version,
|
||||
issuer_id,
|
||||
scheme_name,
|
||||
exemption_requested,
|
||||
exemption_accepted,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user