feat(analytics): refactor and introduce analytics APIs to accommodate OrgLevel, MerchantLevel and ProfileLevel authentication (#5729)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
Co-authored-by: Sampras Lopes <sampras.lopes@juspay.in>
This commit is contained in:
Sandeep Kumar
2024-09-03 15:53:04 +05:30
committed by GitHub
parent 98cfc13f53
commit 8ed942c6cd
63 changed files with 2884 additions and 1531 deletions

View File

@ -210,6 +210,10 @@ impl<'a> FromRow<'a, PgRow> for super::refunds::metrics::RefundMetricRow {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let profile_id: Option<String> = row.try_get("profile_id").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let total: Option<bigdecimal::BigDecimal> = row.try_get("total").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
@ -230,6 +234,7 @@ impl<'a> FromRow<'a, PgRow> for super::refunds::metrics::RefundMetricRow {
refund_status,
connector,
refund_type,
profile_id,
total,
count,
start_bucket,
@ -321,6 +326,10 @@ impl<'a> FromRow<'a, PgRow> for super::payments::metrics::PaymentMetricRow {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let profile_id: Option<String> = row.try_get("profile_id").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let total: Option<bigdecimal::BigDecimal> = row.try_get("total").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
@ -345,6 +354,7 @@ impl<'a> FromRow<'a, PgRow> for super::payments::metrics::PaymentMetricRow {
payment_method_type,
client_source,
client_version,
profile_id,
total,
count,
start_bucket,
@ -393,6 +403,10 @@ impl<'a> FromRow<'a, PgRow> for super::payments::distribution::PaymentDistributi
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let profile_id: Option<String> = row.try_get("profile_id").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let total: Option<bigdecimal::BigDecimal> = row.try_get("total").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
@ -421,6 +435,7 @@ impl<'a> FromRow<'a, PgRow> for super::payments::distribution::PaymentDistributi
payment_method_type,
client_source,
client_version,
profile_id,
total,
count,
error_message,
@ -430,7 +445,7 @@ impl<'a> FromRow<'a, PgRow> for super::payments::distribution::PaymentDistributi
}
}
impl<'a> FromRow<'a, PgRow> for super::payments::filters::FilterRow {
impl<'a> FromRow<'a, PgRow> for super::payments::filters::PaymentFilterRow {
fn from_row(row: &'a PgRow) -> sqlx::Result<Self> {
let currency: Option<DBEnumWrapper<Currency>> =
row.try_get("currency").or_else(|e| match e {
@ -470,6 +485,10 @@ impl<'a> FromRow<'a, PgRow> for super::payments::filters::FilterRow {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let profile_id: Option<String> = row.try_get("profile_id").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
Ok(Self {
currency,
status,
@ -479,6 +498,7 @@ impl<'a> FromRow<'a, PgRow> for super::payments::filters::FilterRow {
payment_method_type,
client_source,
client_version,
profile_id,
})
}
}
@ -495,6 +515,10 @@ impl<'a> FromRow<'a, PgRow> for super::payment_intents::metrics::PaymentIntentMe
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let profile_id: Option<String> = row.try_get("profile_id").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let total: Option<bigdecimal::BigDecimal> = row.try_get("total").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
@ -513,6 +537,7 @@ impl<'a> FromRow<'a, PgRow> for super::payment_intents::metrics::PaymentIntentMe
Ok(Self {
status,
currency,
profile_id,
total,
count,
start_bucket,
@ -533,7 +558,16 @@ impl<'a> FromRow<'a, PgRow> for super::payment_intents::filters::PaymentIntentFi
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
Ok(Self { status, currency })
let profile_id: Option<String> = row.try_get("profile_id").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
Ok(Self {
status,
currency,
profile_id,
})
}
}
@ -558,11 +592,16 @@ impl<'a> FromRow<'a, PgRow> for super::refunds::filters::RefundFilterRow {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
let profile_id: Option<String> = row.try_get("profile_id").or_else(|e| match e {
ColumnNotFound(_) => Ok(Default::default()),
e => Err(e),
})?;
Ok(Self {
currency,
refund_status,
connector,
refund_type,
profile_id,
})
}
}