bitwarden_api_api/apis/
preview_invoice_api.rs1use std::sync::Arc;
12
13use async_trait::async_trait;
14#[cfg(feature = "mockall")]
15use mockall::automock;
16use reqwest;
17use serde::{Deserialize, Serialize, de::Error as _};
18
19use super::{Error, configuration};
20use crate::{
21 apis::{AuthRequired, ContentType, ResponseContent},
22 models,
23};
24
25#[cfg_attr(feature = "mockall", automock)]
26#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
27#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
28pub trait PreviewInvoiceApi: Send + Sync {
29 async fn preview_organization_subscription_plan_change_tax<'a>(
31 &self,
32 organization_id: &'a str,
33 preview_organization_subscription_plan_change_tax_request: Option<
34 models::PreviewOrganizationSubscriptionPlanChangeTaxRequest,
35 >,
36 ) -> Result<(), Error>;
37
38 async fn preview_organization_subscription_purchase_tax<'a>(
40 &self,
41 preview_organization_subscription_purchase_tax_request: Option<
42 models::PreviewOrganizationSubscriptionPurchaseTaxRequest,
43 >,
44 ) -> Result<(), Error>;
45
46 async fn preview_organization_subscription_update_tax<'a>(
48 &self,
49 organization_id: &'a str,
50 preview_organization_subscription_update_tax_request: Option<
51 models::PreviewOrganizationSubscriptionUpdateTaxRequest,
52 >,
53 ) -> Result<(), Error>;
54
55 async fn preview_premium_subscription_purchase_tax<'a>(
57 &self,
58 preview_premium_subscription_purchase_tax_request: Option<
59 models::PreviewPremiumSubscriptionPurchaseTaxRequest,
60 >,
61 ) -> Result<(), Error>;
62
63 async fn preview_premium_upgrade_proration<'a>(
65 &self,
66 preview_premium_upgrade_proration_request: Option<
67 models::PreviewPremiumUpgradeProrationRequest,
68 >,
69 ) -> Result<(), Error>;
70}
71
72pub struct PreviewInvoiceApiClient {
73 configuration: Arc<configuration::Configuration>,
74}
75
76impl PreviewInvoiceApiClient {
77 pub fn new(configuration: Arc<configuration::Configuration>) -> Self {
78 Self { configuration }
79 }
80}
81
82#[cfg_attr(target_arch = "wasm32", async_trait(?Send))]
83#[cfg_attr(not(target_arch = "wasm32"), async_trait)]
84impl PreviewInvoiceApi for PreviewInvoiceApiClient {
85 async fn preview_organization_subscription_plan_change_tax<'a>(
86 &self,
87 organization_id: &'a str,
88 preview_organization_subscription_plan_change_tax_request: Option<
89 models::PreviewOrganizationSubscriptionPlanChangeTaxRequest,
90 >,
91 ) -> Result<(), Error> {
92 let local_var_configuration = &self.configuration;
93
94 let local_var_client = &local_var_configuration.client;
95
96 let local_var_uri_str = format!(
97 "{}/billing/preview-invoice/organizations/{organizationId}/subscription/plan-change",
98 local_var_configuration.base_path,
99 organizationId = crate::apis::urlencode(organization_id)
100 );
101 let mut local_var_req_builder =
102 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
103
104 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
105 local_var_req_builder =
106 local_var_req_builder.json(&preview_organization_subscription_plan_change_tax_request);
107
108 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
109 }
110
111 async fn preview_organization_subscription_purchase_tax<'a>(
112 &self,
113 preview_organization_subscription_purchase_tax_request: Option<
114 models::PreviewOrganizationSubscriptionPurchaseTaxRequest,
115 >,
116 ) -> Result<(), Error> {
117 let local_var_configuration = &self.configuration;
118
119 let local_var_client = &local_var_configuration.client;
120
121 let local_var_uri_str = format!(
122 "{}/billing/preview-invoice/organizations/subscriptions/purchase",
123 local_var_configuration.base_path
124 );
125 let mut local_var_req_builder =
126 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
127
128 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
129 local_var_req_builder =
130 local_var_req_builder.json(&preview_organization_subscription_purchase_tax_request);
131
132 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
133 }
134
135 async fn preview_organization_subscription_update_tax<'a>(
136 &self,
137 organization_id: &'a str,
138 preview_organization_subscription_update_tax_request: Option<
139 models::PreviewOrganizationSubscriptionUpdateTaxRequest,
140 >,
141 ) -> Result<(), Error> {
142 let local_var_configuration = &self.configuration;
143
144 let local_var_client = &local_var_configuration.client;
145
146 let local_var_uri_str = format!(
147 "{}/billing/preview-invoice/organizations/{organizationId}/subscription/update",
148 local_var_configuration.base_path,
149 organizationId = crate::apis::urlencode(organization_id)
150 );
151 let mut local_var_req_builder =
152 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
153
154 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
155 local_var_req_builder =
156 local_var_req_builder.json(&preview_organization_subscription_update_tax_request);
157
158 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
159 }
160
161 async fn preview_premium_subscription_purchase_tax<'a>(
162 &self,
163 preview_premium_subscription_purchase_tax_request: Option<
164 models::PreviewPremiumSubscriptionPurchaseTaxRequest,
165 >,
166 ) -> Result<(), Error> {
167 let local_var_configuration = &self.configuration;
168
169 let local_var_client = &local_var_configuration.client;
170
171 let local_var_uri_str = format!(
172 "{}/billing/preview-invoice/premium/subscriptions/purchase",
173 local_var_configuration.base_path
174 );
175 let mut local_var_req_builder =
176 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
177
178 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
179 local_var_req_builder =
180 local_var_req_builder.json(&preview_premium_subscription_purchase_tax_request);
181
182 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
183 }
184
185 async fn preview_premium_upgrade_proration<'a>(
186 &self,
187 preview_premium_upgrade_proration_request: Option<
188 models::PreviewPremiumUpgradeProrationRequest,
189 >,
190 ) -> Result<(), Error> {
191 let local_var_configuration = &self.configuration;
192
193 let local_var_client = &local_var_configuration.client;
194
195 let local_var_uri_str = format!(
196 "{}/billing/preview-invoice/premium/subscriptions/upgrade",
197 local_var_configuration.base_path
198 );
199 let mut local_var_req_builder =
200 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
201
202 local_var_req_builder = local_var_req_builder.with_extension(AuthRequired::Bearer);
203 local_var_req_builder =
204 local_var_req_builder.json(&preview_premium_upgrade_proration_request);
205
206 bitwarden_api_base::process_with_empty_response(local_var_req_builder).await
207 }
208}