Skip to content

Commit

Permalink
collab: Return free tier usage from GET /billing/monthly_spend (#19578
Browse files Browse the repository at this point in the history
)

This PR updates the `GET /billing/monthly_spend` endpoint to also return
information about the free tier usage.

Release Notes:

- N/A
  • Loading branch information
maxdeviant authored Oct 22, 2024
1 parent a9f48bd commit dcb0da0
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions crates/collab/src/api/billing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -714,7 +714,9 @@ struct GetMonthlySpendParams {

#[derive(Debug, Serialize)]
struct GetMonthlySpendResponse {
monthly_spend_in_cents: i32,
monthly_free_tier_spend_in_cents: u32,
monthly_free_tier_allowance_in_cents: u32,
monthly_spend_in_cents: u32,
}

async fn get_monthly_spend(
Expand All @@ -739,13 +741,17 @@ async fn get_monthly_spend(
.map(|allowance| Cents(allowance as u32))
.unwrap_or(FREE_TIER_MONTHLY_SPENDING_LIMIT);

let monthly_spend = llm_db
let spending_for_month = llm_db
.get_user_spending_for_month(user.id, Utc::now())
.await?
.saturating_sub(free_tier);
.await?;

let free_tier_spend = Cents::min(spending_for_month, free_tier);
let monthly_spend = spending_for_month.saturating_sub(free_tier);

Ok(Json(GetMonthlySpendResponse {
monthly_spend_in_cents: monthly_spend.0 as i32,
monthly_free_tier_spend_in_cents: free_tier_spend.0,
monthly_free_tier_allowance_in_cents: free_tier.0,
monthly_spend_in_cents: monthly_spend.0,
}))
}

Expand Down

0 comments on commit dcb0da0

Please sign in to comment.