feat: use subscription req struct

This commit is contained in:
Zack Fu Zi Xiang 2024-08-16 10:40:26 +08:00
parent 73127fb886
commit fe0667ed20
No known key found for this signature in database
2 changed files with 20 additions and 11 deletions

View File

@ -1,7 +1,7 @@
use crate::Client;
use client_api_entity::billing_dto::{
SetSubscriptionRecurringInterval, SubscriptionCancelRequest, SubscriptionPlanDetail,
WorkspaceUsageAndLimit,
SetSubscriptionRecurringInterval, SubscriptionCancelRequest, SubscriptionLinkRequest,
SubscriptionPlanDetail, WorkspaceUsageAndLimit,
};
use reqwest::Method;
use shared_entity::{
@ -44,6 +44,14 @@ impl Client {
workspace_subscription_plan: SubscriptionPlan,
success_url: &str,
) -> Result<String, AppResponseError> {
let sub_link_req = SubscriptionLinkRequest {
workspace_subscription_plan,
recurring_interval,
workspace_id,
success_url,
with_test_clock: None,
};
let url = format!(
"{}/billing/api/v1/subscription-link",
self.base_billing_url()
@ -51,15 +59,7 @@ impl Client {
let resp = self
.http_client_with_auth(Method::GET, &url)
.await?
.query(&[
("workspace_id", workspace_id),
("recurring_interval", recurring_interval.as_str()),
(
"workspace_subscription_plan",
workspace_subscription_plan.as_ref(),
),
("success_url", success_url),
])
.query(&sub_link_req)
.send()
.await?;

View File

@ -148,3 +148,12 @@ pub enum Currency {
#[default]
USD,
}
#[derive(Serialize, Deserialize)]
pub struct SubscriptionLinkRequest<'a> {
pub workspace_subscription_plan: SubscriptionPlan,
pub recurring_interval: RecurringInterval,
pub workspace_id: &'a str,
pub success_url: &'a str,
pub with_test_clock: Option<bool>,
}