1use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum GetDraftForUserError {
22 Status404(),
23 UnknownValue(serde_json::Value),
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum GetOwnDraftError {
30 UnknownValue(serde_json::Value),
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
35#[serde(untagged)]
36pub enum ListDraftsError {
37 UnknownValue(serde_json::Value),
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(untagged)]
43pub enum MigrateLegacyDraftError {
44 UnknownValue(serde_json::Value),
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
49#[serde(untagged)]
50pub enum MoveDraftError {
51 UnknownValue(serde_json::Value),
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
56#[serde(untagged)]
57pub enum UpdateDraftError {
58 UnknownValue(serde_json::Value),
59}
60
61
62pub async fn get_draft_for_user(configuration: &configuration::Configuration, workspace: &str, kind: models::UserDraftItemKind, path: &str, username: Option<&str>) -> Result<models::GetDraftForUser200Response, Error<GetDraftForUserError>> {
63 let local_var_configuration = configuration;
64
65 let local_var_client = &local_var_configuration.client;
66
67 let local_var_uri_str = format!("{}/w/{workspace}/drafts/get/{kind}/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), kind=kind.to_string(), path=crate::apis::urlencode(path));
68 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
69
70 if let Some(ref local_var_str) = username {
71 local_var_req_builder = local_var_req_builder.query(&[("username", &local_var_str.to_string())]);
72 }
73 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
74 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
75 }
76 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
77 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
78 };
79
80 let local_var_req = local_var_req_builder.build()?;
81 let local_var_resp = local_var_client.execute(local_var_req).await?;
82
83 let local_var_status = local_var_resp.status();
84 let local_var_content = local_var_resp.text().await?;
85
86 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
87 crate::from_str_patched(&local_var_content).map_err(Error::from)
88 } else {
89 let local_var_entity: Option<GetDraftForUserError> = crate::from_str_patched(&local_var_content).ok();
90 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
91 Err(Error::ResponseError(local_var_error))
92 }
93}
94
95pub async fn get_own_draft(configuration: &configuration::Configuration, workspace: &str, kind: models::UserDraftItemKind, path: &str) -> Result<models::GetOwnDraft200Response, Error<GetOwnDraftError>> {
96 let local_var_configuration = configuration;
97
98 let local_var_client = &local_var_configuration.client;
99
100 let local_var_uri_str = format!("{}/w/{workspace}/drafts/get_own/{kind}/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), kind=kind.to_string(), path=crate::apis::urlencode(path));
101 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
102
103 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
104 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
105 }
106 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
107 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
108 };
109
110 let local_var_req = local_var_req_builder.build()?;
111 let local_var_resp = local_var_client.execute(local_var_req).await?;
112
113 let local_var_status = local_var_resp.status();
114 let local_var_content = local_var_resp.text().await?;
115
116 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
117 crate::from_str_patched(&local_var_content).map_err(Error::from)
118 } else {
119 let local_var_entity: Option<GetOwnDraftError> = crate::from_str_patched(&local_var_content).ok();
120 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
121 Err(Error::ResponseError(local_var_error))
122 }
123}
124
125pub async fn list_drafts(configuration: &configuration::Configuration, workspace: &str, all_users: Option<bool>, compare_to_workspace: Option<&str>) -> Result<Vec<models::ListDrafts200ResponseInner>, Error<ListDraftsError>> {
126 let local_var_configuration = configuration;
127
128 let local_var_client = &local_var_configuration.client;
129
130 let local_var_uri_str = format!("{}/w/{workspace}/drafts/list", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
131 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
132
133 if let Some(ref local_var_str) = all_users {
134 local_var_req_builder = local_var_req_builder.query(&[("all_users", &local_var_str.to_string())]);
135 }
136 if let Some(ref local_var_str) = compare_to_workspace {
137 local_var_req_builder = local_var_req_builder.query(&[("compare_to_workspace", &local_var_str.to_string())]);
138 }
139 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
140 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
141 }
142 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
143 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
144 };
145
146 let local_var_req = local_var_req_builder.build()?;
147 let local_var_resp = local_var_client.execute(local_var_req).await?;
148
149 let local_var_status = local_var_resp.status();
150 let local_var_content = local_var_resp.text().await?;
151
152 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
153 crate::from_str_patched(&local_var_content).map_err(Error::from)
154 } else {
155 let local_var_entity: Option<ListDraftsError> = crate::from_str_patched(&local_var_content).ok();
156 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
157 Err(Error::ResponseError(local_var_error))
158 }
159}
160
161pub async fn migrate_legacy_draft(configuration: &configuration::Configuration, workspace: &str, kind: models::UserDraftItemKind, path: &str, migrate_legacy_draft_request: models::MigrateLegacyDraftRequest) -> Result<String, Error<MigrateLegacyDraftError>> {
163 let local_var_configuration = configuration;
164
165 let local_var_client = &local_var_configuration.client;
166
167 let local_var_uri_str = format!("{}/w/{workspace}/drafts/migrate_legacy/{kind}/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), kind=kind.to_string(), path=crate::apis::urlencode(path));
168 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
169
170 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
171 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
172 }
173 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
174 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
175 };
176 local_var_req_builder = local_var_req_builder.json(&migrate_legacy_draft_request);
177
178 let local_var_req = local_var_req_builder.build()?;
179 let local_var_resp = local_var_client.execute(local_var_req).await?;
180
181 let local_var_status = local_var_resp.status();
182 let local_var_content = local_var_resp.text().await?;
183
184 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
185 crate::from_str_patched(&local_var_content).map_err(Error::from)
186 } else {
187 let local_var_entity: Option<MigrateLegacyDraftError> = crate::from_str_patched(&local_var_content).ok();
188 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
189 Err(Error::ResponseError(local_var_error))
190 }
191}
192
193pub async fn move_draft(configuration: &configuration::Configuration, workspace: &str, kind: &str, path: &str, move_draft_request: models::MoveDraftRequest) -> Result<String, Error<MoveDraftError>> {
195 let local_var_configuration = configuration;
196
197 let local_var_client = &local_var_configuration.client;
198
199 let local_var_uri_str = format!("{}/w/{workspace}/drafts/move/{kind}/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), kind=crate::apis::urlencode(kind), path=crate::apis::urlencode(path));
200 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
201
202 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
203 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
204 }
205 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
206 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
207 };
208 local_var_req_builder = local_var_req_builder.json(&move_draft_request);
209
210 let local_var_req = local_var_req_builder.build()?;
211 let local_var_resp = local_var_client.execute(local_var_req).await?;
212
213 let local_var_status = local_var_resp.status();
214 let local_var_content = local_var_resp.text().await?;
215
216 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
217 crate::from_str_patched(&local_var_content).map_err(Error::from)
218 } else {
219 let local_var_entity: Option<MoveDraftError> = crate::from_str_patched(&local_var_content).ok();
220 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
221 Err(Error::ResponseError(local_var_error))
222 }
223}
224
225pub async fn update_draft(configuration: &configuration::Configuration, workspace: &str, kind: models::UserDraftItemKind, path: &str, update_draft_request: models::UpdateDraftRequest) -> Result<models::UpdateDraft200Response, Error<UpdateDraftError>> {
226 let local_var_configuration = configuration;
227
228 let local_var_client = &local_var_configuration.client;
229
230 let local_var_uri_str = format!("{}/w/{workspace}/drafts/update/{kind}/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), kind=kind.to_string(), path=crate::apis::urlencode(path));
231 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
232
233 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
234 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
235 }
236 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
237 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
238 };
239 local_var_req_builder = local_var_req_builder.json(&update_draft_request);
240
241 let local_var_req = local_var_req_builder.build()?;
242 let local_var_resp = local_var_client.execute(local_var_req).await?;
243
244 let local_var_status = local_var_resp.status();
245 let local_var_content = local_var_resp.text().await?;
246
247 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
248 crate::from_str_patched(&local_var_content).map_err(Error::from)
249 } else {
250 let local_var_entity: Option<UpdateDraftError> = crate::from_str_patched(&local_var_content).ok();
251 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
252 Err(Error::ResponseError(local_var_error))
253 }
254}
255