From 013653bc6696f61046004654c513aa4bf9c6ead7 Mon Sep 17 00:00:00 2001 From: Zack Fu Zi Xiang Date: Wed, 10 Jul 2024 16:12:26 +0800 Subject: [PATCH] chore: improve billing api --- libs/client-api/src/http_billing.rs | 21 +++++++++++++++++++++ libs/shared-entity/src/dto/billing_dto.rs | 7 ++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/libs/client-api/src/http_billing.rs b/libs/client-api/src/http_billing.rs index 25b76513..3b36fad0 100644 --- a/libs/client-api/src/http_billing.rs +++ b/libs/client-api/src/http_billing.rs @@ -161,4 +161,25 @@ impl Client { .await? .into_data() } + + /// Query all active subscription, minimal information but faster + pub async fn get_active_workspace_subscriptions( + &self, + workspace_id: &str, + ) -> Result, AppResponseError> { + let url = format!( + "{}/billing/api/v1/active-subscription/{}", + self.base_billing_url(), + workspace_id + ); + let resp = self + .http_client_with_auth(Method::GET, &url) + .await? + .send() + .await?; + + AppResponse::>::from_response(resp) + .await? + .into_data() + } } diff --git a/libs/shared-entity/src/dto/billing_dto.rs b/libs/shared-entity/src/dto/billing_dto.rs index bcd7c544..ef059c22 100644 --- a/libs/shared-entity/src/dto/billing_dto.rs +++ b/libs/shared-entity/src/dto/billing_dto.rs @@ -80,17 +80,18 @@ pub enum SubscriptionStatus { Unpaid, } -#[derive(Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug)] pub struct WorkspaceSubscriptionStatus { pub workspace_id: String, pub workspace_plan: SubscriptionPlan, pub recurring_interval: RecurringInterval, pub subscription_status: SubscriptionStatus, pub subscription_quantity: u64, - pub canceled_at: Option, + pub cancel_at: Option, + pub current_end_date: i64, } -#[derive(Deserialize)] +#[derive(Serialize, Deserialize)] pub struct WorkspaceUsageAndLimit { pub member_count: i64, pub member_count_limit: i64,