From 0f4af98a2177f0291d09c910f936d124f68132a0 Mon Sep 17 00:00:00 2001 From: Jai A Date: Fri, 17 Jan 2025 17:01:35 -0800 Subject: [PATCH] Fix integer overflow on charges --- apps/labrinth/src/models/v3/billing.rs | 5 ++++- apps/labrinth/src/routes/internal/billing.rs | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/labrinth/src/models/v3/billing.rs b/apps/labrinth/src/models/v3/billing.rs index 058c9731..4e5214f7 100644 --- a/apps/labrinth/src/models/v3/billing.rs +++ b/apps/labrinth/src/models/v3/billing.rs @@ -161,7 +161,7 @@ pub struct Charge { pub id: ChargeId, pub user_id: UserId, pub price_id: ProductPriceId, - pub amount: u64, + pub amount: i64, pub currency_code: String, pub status: ChargeStatus, pub due: DateTime, @@ -171,6 +171,9 @@ pub struct Charge { pub subscription_id: Option, pub subscription_interval: Option, pub platform: PaymentPlatform, + + pub parent_charge_id: Option, + pub net: Option, } #[derive(Serialize, Deserialize, Debug)] diff --git a/apps/labrinth/src/routes/internal/billing.rs b/apps/labrinth/src/routes/internal/billing.rs index 87a224eb..4cb27cf1 100644 --- a/apps/labrinth/src/routes/internal/billing.rs +++ b/apps/labrinth/src/routes/internal/billing.rs @@ -638,7 +638,7 @@ pub async fn charges( id: x.id.into(), user_id: x.user_id.into(), price_id: x.price_id.into(), - amount: x.amount as u64, + amount: x.amount, currency_code: x.currency_code, status: x.status, due: x.due, @@ -647,6 +647,8 @@ pub async fn charges( subscription_id: x.subscription_id.map(|x| x.into()), subscription_interval: x.subscription_interval, platform: x.payment_platform, + parent_charge_id: x.parent_charge_id.map(|x| x.into()), + net: if user.role.is_admin() { x.net } else { None }, }) .collect::>(), ))