collab: Return subscription period from GET /billing/subscriptions
(#31987)
This PR updates the `GET /billing/subscriptions` endpoint to return the subscription period on them. Release Notes: - N/A
This commit is contained in:
parent
d108e5f53c
commit
9c2b90fb8f
1 changed files with 16 additions and 0 deletions
|
@ -219,12 +219,19 @@ struct BillingSubscriptionJson {
|
||||||
id: BillingSubscriptionId,
|
id: BillingSubscriptionId,
|
||||||
name: String,
|
name: String,
|
||||||
status: StripeSubscriptionStatus,
|
status: StripeSubscriptionStatus,
|
||||||
|
period: Option<BillingSubscriptionPeriodJson>,
|
||||||
trial_end_at: Option<String>,
|
trial_end_at: Option<String>,
|
||||||
cancel_at: Option<String>,
|
cancel_at: Option<String>,
|
||||||
/// Whether this subscription can be canceled.
|
/// Whether this subscription can be canceled.
|
||||||
is_cancelable: bool,
|
is_cancelable: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Serialize)]
|
||||||
|
struct BillingSubscriptionPeriodJson {
|
||||||
|
start_at: String,
|
||||||
|
end_at: String,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize)]
|
#[derive(Debug, Serialize)]
|
||||||
struct ListBillingSubscriptionsResponse {
|
struct ListBillingSubscriptionsResponse {
|
||||||
subscriptions: Vec<BillingSubscriptionJson>,
|
subscriptions: Vec<BillingSubscriptionJson>,
|
||||||
|
@ -254,6 +261,15 @@ async fn list_billing_subscriptions(
|
||||||
None => "Zed LLM Usage".to_string(),
|
None => "Zed LLM Usage".to_string(),
|
||||||
},
|
},
|
||||||
status: subscription.stripe_subscription_status,
|
status: subscription.stripe_subscription_status,
|
||||||
|
period: maybe!({
|
||||||
|
let start_at = subscription.current_period_start_at()?;
|
||||||
|
let end_at = subscription.current_period_end_at()?;
|
||||||
|
|
||||||
|
Some(BillingSubscriptionPeriodJson {
|
||||||
|
start_at: start_at.to_rfc3339_opts(SecondsFormat::Millis, true),
|
||||||
|
end_at: end_at.to_rfc3339_opts(SecondsFormat::Millis, true),
|
||||||
|
})
|
||||||
|
}),
|
||||||
trial_end_at: if subscription.kind == Some(SubscriptionKind::ZedProTrial) {
|
trial_end_at: if subscription.kind == Some(SubscriptionKind::ZedProTrial) {
|
||||||
maybe!({
|
maybe!({
|
||||||
let end_at = subscription.stripe_current_period_end?;
|
let end_at = subscription.stripe_current_period_end?;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue