feat: add subscription free trial

This commit is contained in:
Zack Fu Zi Xiang 2024-08-16 10:51:59 +08:00
parent fe0667ed20
commit 87083d503a
No known key found for this signature in database
2 changed files with 26 additions and 1 deletions

View File

@ -1,7 +1,7 @@
use crate::Client;
use client_api_entity::billing_dto::{
SetSubscriptionRecurringInterval, SubscriptionCancelRequest, SubscriptionLinkRequest,
SubscriptionPlanDetail, WorkspaceUsageAndLimit,
SubscriptionPlanDetail, SubscriptionTrialRequest, WorkspaceUsageAndLimit,
};
use reqwest::Method;
use shared_entity::{
@ -215,4 +215,24 @@ impl Client {
.await?
.into_data()
}
/// request a free trial for plan
pub async fn post_subscription_free_trial(
&self,
workspace_id: &str,
plan: SubscriptionPlan,
) -> Result<(), AppResponseError> {
let url = format!(
"{}/billing/api/v1/subscription-trial/{}",
self.base_billing_url(),
workspace_id
);
let resp = self
.cloud_client
.post(&url)
.query(&SubscriptionTrialRequest { plan })
.send()
.await?;
AppResponse::<()>::from_response(resp).await?.into_error()
}
}

View File

@ -157,3 +157,8 @@ pub struct SubscriptionLinkRequest<'a> {
pub success_url: &'a str,
pub with_test_clock: Option<bool>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct SubscriptionTrialRequest {
pub plan: SubscriptionPlan,
}