printnanny_api_client/apis/
shop_api.rs

1/*
2 * printnanny-api-client
3 *
4 * Official API client library for printnanny.ai
5 *
6 * The version of the OpenAPI document: 0.135.1
7 * Contact: leigh@printnanny.ai
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use bytes::Bytes;
15use crate::apis::ResponseContent;
16use super::{Error, configuration};
17
18
19/// struct for typed errors of method [`cloud_plans_retrieve`]
20#[derive(Debug, Clone, Serialize, Deserialize)]
21#[serde(untagged)]
22pub enum CloudPlansRetrieveError {
23    Status404(crate::models::ErrorDetail),
24    Status400(crate::models::ErrorDetail),
25    Status401(crate::models::ErrorDetail),
26    Status403(crate::models::ErrorDetail),
27    Status500(crate::models::ErrorDetail),
28    UnknownValue(serde_json::Value),
29}
30
31/// struct for typed errors of method [`shop_checkout_success_retrieve`]
32#[derive(Debug, Clone, Serialize, Deserialize)]
33#[serde(untagged)]
34pub enum ShopCheckoutSuccessRetrieveError {
35    Status404(crate::models::ErrorDetail),
36    Status400(crate::models::ErrorDetail),
37    Status401(crate::models::ErrorDetail),
38    Status403(crate::models::ErrorDetail),
39    Status500(crate::models::ErrorDetail),
40    UnknownValue(serde_json::Value),
41}
42
43/// struct for typed errors of method [`shop_orders_create`]
44#[derive(Debug, Clone, Serialize, Deserialize)]
45#[serde(untagged)]
46pub enum ShopOrdersCreateError {
47    Status409(crate::models::ErrorDetail),
48    Status400(crate::models::ErrorDetail),
49    Status401(crate::models::ErrorDetail),
50    Status403(crate::models::ErrorDetail),
51    Status500(crate::models::ErrorDetail),
52    UnknownValue(serde_json::Value),
53}
54
55/// struct for typed errors of method [`shop_products_list`]
56#[derive(Debug, Clone, Serialize, Deserialize)]
57#[serde(untagged)]
58pub enum ShopProductsListError {
59    UnknownValue(serde_json::Value),
60}
61
62/// struct for typed errors of method [`shop_products_retrieve`]
63#[derive(Debug, Clone, Serialize, Deserialize)]
64#[serde(untagged)]
65pub enum ShopProductsRetrieveError {
66    Status404(crate::models::ErrorDetail),
67    Status400(crate::models::ErrorDetail),
68    Status401(crate::models::ErrorDetail),
69    Status403(crate::models::ErrorDetail),
70    Status500(crate::models::ErrorDetail),
71    UnknownValue(serde_json::Value),
72}
73
74
75pub async fn cloud_plans_retrieve(configuration: &configuration::Configuration, page: Option<i32>) -> Result<crate::models::PaginatedProductList, Error<CloudPlansRetrieveError>> {
76    let local_var_configuration = configuration;
77
78    let local_var_client = &local_var_configuration.client;
79
80    let local_var_uri_str = format!("{}/api/shop/products/cloud-plans/", local_var_configuration.base_path);
81    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
82
83    if let Some(ref local_var_str) = page {
84        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
85    }
86    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
87        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
88    }
89    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
90        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
91    };
92
93    let local_var_req = local_var_req_builder.build()?;
94    let local_var_resp = local_var_client.execute(local_var_req).await?;
95
96    let local_var_status = local_var_resp.status();
97    let local_var_content = local_var_resp.text().await?;
98
99    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
100        serde_json::from_str(&local_var_content).map_err(Error::from)
101    } else {
102        let local_var_entity: Option<CloudPlansRetrieveError> = serde_json::from_str(&local_var_content).ok();
103        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
104        Err(Error::ResponseError(local_var_error))
105    }
106}
107
108pub async fn shop_checkout_success_retrieve(configuration: &configuration::Configuration, stripe_checkout_session_id: &str) -> Result<crate::models::Order, Error<ShopCheckoutSuccessRetrieveError>> {
109    let local_var_configuration = configuration;
110
111    let local_var_client = &local_var_configuration.client;
112
113    let local_var_uri_str = format!("{}/api/shop/checkout/success/{stripe_checkout_session_id}", local_var_configuration.base_path, stripe_checkout_session_id=crate::apis::urlencode(stripe_checkout_session_id));
114    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
115
116    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
117        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
118    }
119    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
120        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
121    };
122
123    let local_var_req = local_var_req_builder.build()?;
124    let local_var_resp = local_var_client.execute(local_var_req).await?;
125
126    let local_var_status = local_var_resp.status();
127    let local_var_content = local_var_resp.text().await?;
128
129    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
130        serde_json::from_str(&local_var_content).map_err(Error::from)
131    } else {
132        let local_var_entity: Option<ShopCheckoutSuccessRetrieveError> = serde_json::from_str(&local_var_content).ok();
133        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
134        Err(Error::ResponseError(local_var_error))
135    }
136}
137
138pub async fn shop_orders_create(configuration: &configuration::Configuration, order_checkout_request: crate::models::OrderCheckoutRequest) -> Result<crate::models::Order, Error<ShopOrdersCreateError>> {
139    let local_var_configuration = configuration;
140
141    let local_var_client = &local_var_configuration.client;
142
143    let local_var_uri_str = format!("{}/api/shop/orders", local_var_configuration.base_path);
144    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
145
146    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
147        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
148    }
149    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
150        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
151    };
152    local_var_req_builder = local_var_req_builder.json(&order_checkout_request);
153
154    let local_var_req = local_var_req_builder.build()?;
155    let local_var_resp = local_var_client.execute(local_var_req).await?;
156
157    let local_var_status = local_var_resp.status();
158    let local_var_content = local_var_resp.text().await?;
159
160    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
161        serde_json::from_str(&local_var_content).map_err(Error::from)
162    } else {
163        let local_var_entity: Option<ShopOrdersCreateError> = serde_json::from_str(&local_var_content).ok();
164        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
165        Err(Error::ResponseError(local_var_error))
166    }
167}
168
169pub async fn shop_products_list(configuration: &configuration::Configuration, page: Option<i32>) -> Result<crate::models::PaginatedProductList, Error<ShopProductsListError>> {
170    let local_var_configuration = configuration;
171
172    let local_var_client = &local_var_configuration.client;
173
174    let local_var_uri_str = format!("{}/api/shop/products/", local_var_configuration.base_path);
175    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
176
177    if let Some(ref local_var_str) = page {
178        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
179    }
180    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
181        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
182    }
183    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
184        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
185    };
186
187    let local_var_req = local_var_req_builder.build()?;
188    let local_var_resp = local_var_client.execute(local_var_req).await?;
189
190    let local_var_status = local_var_resp.status();
191    let local_var_content = local_var_resp.text().await?;
192
193    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
194        serde_json::from_str(&local_var_content).map_err(Error::from)
195    } else {
196        let local_var_entity: Option<ShopProductsListError> = serde_json::from_str(&local_var_content).ok();
197        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
198        Err(Error::ResponseError(local_var_error))
199    }
200}
201
202pub async fn shop_products_retrieve(configuration: &configuration::Configuration, sku: &str) -> Result<crate::models::Product, Error<ShopProductsRetrieveError>> {
203    let local_var_configuration = configuration;
204
205    let local_var_client = &local_var_configuration.client;
206
207    let local_var_uri_str = format!("{}/api/shop/products/{sku}", local_var_configuration.base_path, sku=crate::apis::urlencode(sku));
208    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
209
210    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
211        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
212    }
213    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
214        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
215    };
216
217    let local_var_req = local_var_req_builder.build()?;
218    let local_var_resp = local_var_client.execute(local_var_req).await?;
219
220    let local_var_status = local_var_resp.status();
221    let local_var_content = local_var_resp.text().await?;
222
223    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
224        serde_json::from_str(&local_var_content).map_err(Error::from)
225    } else {
226        let local_var_entity: Option<ShopProductsRetrieveError> = serde_json::from_str(&local_var_content).ok();
227        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
228        Err(Error::ResponseError(local_var_error))
229    }
230}
231