mattermost_rust_client/apis/
insights_api.rs

1/*
2 * Mattermost API Reference
3 *
4 * There is also a work-in-progress [Postman API reference](https://documenter.getpostman.com/view/4508214/RW8FERUn). 
5 *
6 * The version of the OpenAPI document: 4.0.0
7 * Contact: feedback@mattermost.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`get_new_team_members`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum GetNewTeamMembersError {
22    Status400(crate::models::AppError),
23    Status403(crate::models::AppError),
24    UnknownValue(serde_json::Value),
25}
26
27/// struct for typed errors of method [`get_top_channels_for_team`]
28#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum GetTopChannelsForTeamError {
31    Status400(crate::models::AppError),
32    Status403(crate::models::AppError),
33    UnknownValue(serde_json::Value),
34}
35
36/// struct for typed errors of method [`get_top_channels_for_user`]
37#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(untagged)]
39pub enum GetTopChannelsForUserError {
40    Status400(crate::models::AppError),
41    Status403(crate::models::AppError),
42    UnknownValue(serde_json::Value),
43}
44
45/// struct for typed errors of method [`get_top_dms_for_user`]
46#[derive(Debug, Clone, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum GetTopDmsForUserError {
49    Status400(crate::models::AppError),
50    Status403(crate::models::AppError),
51    UnknownValue(serde_json::Value),
52}
53
54/// struct for typed errors of method [`get_top_reactions_for_team`]
55#[derive(Debug, Clone, Serialize, Deserialize)]
56#[serde(untagged)]
57pub enum GetTopReactionsForTeamError {
58    Status400(crate::models::AppError),
59    Status403(crate::models::AppError),
60    UnknownValue(serde_json::Value),
61}
62
63/// struct for typed errors of method [`get_top_reactions_for_user`]
64#[derive(Debug, Clone, Serialize, Deserialize)]
65#[serde(untagged)]
66pub enum GetTopReactionsForUserError {
67    Status400(crate::models::AppError),
68    Status403(crate::models::AppError),
69    UnknownValue(serde_json::Value),
70}
71
72/// struct for typed errors of method [`get_top_threads_for_team`]
73#[derive(Debug, Clone, Serialize, Deserialize)]
74#[serde(untagged)]
75pub enum GetTopThreadsForTeamError {
76    Status400(crate::models::AppError),
77    Status403(crate::models::AppError),
78    UnknownValue(serde_json::Value),
79}
80
81/// struct for typed errors of method [`get_top_threads_for_user`]
82#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum GetTopThreadsForUserError {
85    Status400(crate::models::AppError),
86    Status403(crate::models::AppError),
87    UnknownValue(serde_json::Value),
88}
89
90
91/// Get a list of all of the new team members that have joined the given team during the given time period. ##### Permissions Must have `view_team` permission for the team. 
92pub async fn get_new_team_members(configuration: &configuration::Configuration, team_id: &str, time_range: &str, page: Option<i32>, per_page: Option<i32>) -> Result<crate::models::NewTeamMembersList, Error<GetNewTeamMembersError>> {
93    let local_var_configuration = configuration;
94
95    let local_var_client = &local_var_configuration.client;
96
97    let local_var_uri_str = format!("{}/teams/{team_id}/top/team_members", local_var_configuration.base_path, team_id=crate::apis::urlencode(team_id));
98    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
99
100    local_var_req_builder = local_var_req_builder.query(&[("time_range", &time_range.to_string())]);
101    if let Some(ref local_var_str) = page {
102        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
103    }
104    if let Some(ref local_var_str) = per_page {
105        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
106    }
107    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
108        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
109    }
110    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
111        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
112    };
113
114    let local_var_req = local_var_req_builder.build()?;
115    let local_var_resp = local_var_client.execute(local_var_req).await?;
116
117    let local_var_status = local_var_resp.status();
118    let local_var_content = local_var_resp.text().await?;
119
120    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
121        serde_json::from_str(&local_var_content).map_err(Error::from)
122    } else {
123        let local_var_entity: Option<GetNewTeamMembersError> = serde_json::from_str(&local_var_content).ok();
124        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
125        Err(Error::ResponseError(local_var_error))
126    }
127}
128
129/// Get a list of the top public and private channels (the user is a member of) for a given team. ##### Permissions Must have `view_team` permission for the team. 
130pub async fn get_top_channels_for_team(configuration: &configuration::Configuration, team_id: &str, time_range: &str, page: Option<i32>, per_page: Option<i32>) -> Result<crate::models::TopChannelList, Error<GetTopChannelsForTeamError>> {
131    let local_var_configuration = configuration;
132
133    let local_var_client = &local_var_configuration.client;
134
135    let local_var_uri_str = format!("{}/teams/{team_id}/top/channels", local_var_configuration.base_path, team_id=crate::apis::urlencode(team_id));
136    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
137
138    local_var_req_builder = local_var_req_builder.query(&[("time_range", &time_range.to_string())]);
139    if let Some(ref local_var_str) = page {
140        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
141    }
142    if let Some(ref local_var_str) = per_page {
143        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
144    }
145    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
146        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
147    }
148    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
149        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
150    };
151
152    let local_var_req = local_var_req_builder.build()?;
153    let local_var_resp = local_var_client.execute(local_var_req).await?;
154
155    let local_var_status = local_var_resp.status();
156    let local_var_content = local_var_resp.text().await?;
157
158    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
159        serde_json::from_str(&local_var_content).map_err(Error::from)
160    } else {
161        let local_var_entity: Option<GetTopChannelsForTeamError> = serde_json::from_str(&local_var_content).ok();
162        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
163        Err(Error::ResponseError(local_var_error))
164    }
165}
166
167/// Get a list of the top public and private channels (the user is a member of) for a given user. ##### Permissions Must be logged in as the user. 
168pub async fn get_top_channels_for_user(configuration: &configuration::Configuration, time_range: &str, page: Option<i32>, per_page: Option<i32>, team_id: Option<&str>) -> Result<crate::models::TopChannelList, Error<GetTopChannelsForUserError>> {
169    let local_var_configuration = configuration;
170
171    let local_var_client = &local_var_configuration.client;
172
173    let local_var_uri_str = format!("{}/users/me/top/channels", local_var_configuration.base_path);
174    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
175
176    local_var_req_builder = local_var_req_builder.query(&[("time_range", &time_range.to_string())]);
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_str) = per_page {
181        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
182    }
183    if let Some(ref local_var_str) = team_id {
184        local_var_req_builder = local_var_req_builder.query(&[("team_id", &local_var_str.to_string())]);
185    }
186    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
187        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
188    }
189    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
190        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
191    };
192
193    let local_var_req = local_var_req_builder.build()?;
194    let local_var_resp = local_var_client.execute(local_var_req).await?;
195
196    let local_var_status = local_var_resp.status();
197    let local_var_content = local_var_resp.text().await?;
198
199    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
200        serde_json::from_str(&local_var_content).map_err(Error::from)
201    } else {
202        let local_var_entity: Option<GetTopChannelsForUserError> = serde_json::from_str(&local_var_content).ok();
203        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
204        Err(Error::ResponseError(local_var_error))
205    }
206}
207
208/// Get a list of the top dms for a given user. ##### Permissions Must be logged in as the user. 
209pub async fn get_top_dms_for_user(configuration: &configuration::Configuration, time_range: &str, page: Option<i32>, per_page: Option<i32>) -> Result<crate::models::TopDmList, Error<GetTopDmsForUserError>> {
210    let local_var_configuration = configuration;
211
212    let local_var_client = &local_var_configuration.client;
213
214    let local_var_uri_str = format!("{}/users/me/top/dms", local_var_configuration.base_path);
215    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
216
217    local_var_req_builder = local_var_req_builder.query(&[("time_range", &time_range.to_string())]);
218    if let Some(ref local_var_str) = page {
219        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
220    }
221    if let Some(ref local_var_str) = per_page {
222        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
223    }
224    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
225        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
226    }
227    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
228        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
229    };
230
231    let local_var_req = local_var_req_builder.build()?;
232    let local_var_resp = local_var_client.execute(local_var_req).await?;
233
234    let local_var_status = local_var_resp.status();
235    let local_var_content = local_var_resp.text().await?;
236
237    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
238        serde_json::from_str(&local_var_content).map_err(Error::from)
239    } else {
240        let local_var_entity: Option<GetTopDmsForUserError> = serde_json::from_str(&local_var_content).ok();
241        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
242        Err(Error::ResponseError(local_var_error))
243    }
244}
245
246/// Get a list of the top reactions across all public and private channels (the user is a member of) for a given team. ##### Permissions Must have `view_team` permission for the team. 
247pub async fn get_top_reactions_for_team(configuration: &configuration::Configuration, team_id: &str, time_range: &str, page: Option<i32>, per_page: Option<i32>) -> Result<crate::models::TopReactionList, Error<GetTopReactionsForTeamError>> {
248    let local_var_configuration = configuration;
249
250    let local_var_client = &local_var_configuration.client;
251
252    let local_var_uri_str = format!("{}/teams/{team_id}/top/reactions", local_var_configuration.base_path, team_id=crate::apis::urlencode(team_id));
253    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
254
255    local_var_req_builder = local_var_req_builder.query(&[("time_range", &time_range.to_string())]);
256    if let Some(ref local_var_str) = page {
257        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
258    }
259    if let Some(ref local_var_str) = per_page {
260        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
261    }
262    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
263        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
264    }
265    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
266        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
267    };
268
269    let local_var_req = local_var_req_builder.build()?;
270    let local_var_resp = local_var_client.execute(local_var_req).await?;
271
272    let local_var_status = local_var_resp.status();
273    let local_var_content = local_var_resp.text().await?;
274
275    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
276        serde_json::from_str(&local_var_content).map_err(Error::from)
277    } else {
278        let local_var_entity: Option<GetTopReactionsForTeamError> = serde_json::from_str(&local_var_content).ok();
279        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
280        Err(Error::ResponseError(local_var_error))
281    }
282}
283
284/// Get a list of the top reactions across all public and private channels (the user is a member of) for a given user. If no `team_id` is provided, this will also include reactions posted by the given user in direct and group messages. ##### Permissions Must be logged in as the user. 
285pub async fn get_top_reactions_for_user(configuration: &configuration::Configuration, time_range: &str, page: Option<i32>, per_page: Option<i32>, team_id: Option<&str>) -> Result<crate::models::TopReactionList, Error<GetTopReactionsForUserError>> {
286    let local_var_configuration = configuration;
287
288    let local_var_client = &local_var_configuration.client;
289
290    let local_var_uri_str = format!("{}/users/me/top/reactions", local_var_configuration.base_path);
291    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
292
293    local_var_req_builder = local_var_req_builder.query(&[("time_range", &time_range.to_string())]);
294    if let Some(ref local_var_str) = page {
295        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
296    }
297    if let Some(ref local_var_str) = per_page {
298        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
299    }
300    if let Some(ref local_var_str) = team_id {
301        local_var_req_builder = local_var_req_builder.query(&[("team_id", &local_var_str.to_string())]);
302    }
303    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
304        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
305    }
306    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
307        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
308    };
309
310    let local_var_req = local_var_req_builder.build()?;
311    let local_var_resp = local_var_client.execute(local_var_req).await?;
312
313    let local_var_status = local_var_resp.status();
314    let local_var_content = local_var_resp.text().await?;
315
316    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
317        serde_json::from_str(&local_var_content).map_err(Error::from)
318    } else {
319        let local_var_entity: Option<GetTopReactionsForUserError> = serde_json::from_str(&local_var_content).ok();
320        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
321        Err(Error::ResponseError(local_var_error))
322    }
323}
324
325/// Get a list of the top threads from public and private channels (the user is a member of) for a given team. ##### Permissions Must have `view_team` permission for the team. 
326pub async fn get_top_threads_for_team(configuration: &configuration::Configuration, team_id: &str, time_range: &str, page: Option<i32>, per_page: Option<i32>) -> Result<crate::models::TopThreadList, Error<GetTopThreadsForTeamError>> {
327    let local_var_configuration = configuration;
328
329    let local_var_client = &local_var_configuration.client;
330
331    let local_var_uri_str = format!("{}/teams/{team_id}/top/threads", local_var_configuration.base_path, team_id=crate::apis::urlencode(team_id));
332    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
333
334    local_var_req_builder = local_var_req_builder.query(&[("time_range", &time_range.to_string())]);
335    if let Some(ref local_var_str) = page {
336        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
337    }
338    if let Some(ref local_var_str) = per_page {
339        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
340    }
341    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
342        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
343    }
344    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
345        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
346    };
347
348    let local_var_req = local_var_req_builder.build()?;
349    let local_var_resp = local_var_client.execute(local_var_req).await?;
350
351    let local_var_status = local_var_resp.status();
352    let local_var_content = local_var_resp.text().await?;
353
354    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
355        serde_json::from_str(&local_var_content).map_err(Error::from)
356    } else {
357        let local_var_entity: Option<GetTopThreadsForTeamError> = serde_json::from_str(&local_var_content).ok();
358        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
359        Err(Error::ResponseError(local_var_error))
360    }
361}
362
363/// Get a list of the top threads from public and private channels (the user is a member of and participating in the thread) for a given user. ##### Permissions Must be logged in as the user. 
364pub async fn get_top_threads_for_user(configuration: &configuration::Configuration, time_range: &str, page: Option<i32>, per_page: Option<i32>, team_id: Option<&str>) -> Result<crate::models::TopThreadList, Error<GetTopThreadsForUserError>> {
365    let local_var_configuration = configuration;
366
367    let local_var_client = &local_var_configuration.client;
368
369    let local_var_uri_str = format!("{}/users/me/top/threads", local_var_configuration.base_path);
370    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
371
372    local_var_req_builder = local_var_req_builder.query(&[("time_range", &time_range.to_string())]);
373    if let Some(ref local_var_str) = page {
374        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
375    }
376    if let Some(ref local_var_str) = per_page {
377        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
378    }
379    if let Some(ref local_var_str) = team_id {
380        local_var_req_builder = local_var_req_builder.query(&[("team_id", &local_var_str.to_string())]);
381    }
382    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
383        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
384    }
385    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
386        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
387    };
388
389    let local_var_req = local_var_req_builder.build()?;
390    let local_var_resp = local_var_client.execute(local_var_req).await?;
391
392    let local_var_status = local_var_resp.status();
393    let local_var_content = local_var_resp.text().await?;
394
395    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
396        serde_json::from_str(&local_var_content).map_err(Error::from)
397    } else {
398        let local_var_entity: Option<GetTopThreadsForUserError> = serde_json::from_str(&local_var_content).ok();
399        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
400        Err(Error::ResponseError(local_var_error))
401    }
402}
403