Skip to main content

slack_api/sync/mods/
users.rs

1//=============================================================================
2//
3//                    WARNING: This file is AUTO-GENERATED
4//
5// Do not make changes directly to this file.
6//
7// If you would like to make a change to the library, please update the schema
8// definitions at https://github.com/slack-rs/slack-api-schemas
9//
10// If you would like to make a change how the library was generated,
11// please edit https://github.com/slack-rs/slack-rs-api/tree/master/codegen
12//
13//=============================================================================
14
15//! Get info on members of your Slack team.
16
17pub use crate::mod_types::users_types::*;
18use crate::sync::requests::SlackWebRequestSender;
19
20/// Delete the user profile photo
21///
22/// Wraps https://api.slack.com/methods/users.deletePhoto
23
24pub fn delete_photo<R>(
25    client: &R,
26    token: &str,
27) -> Result<DeletePhotoResponse, DeletePhotoError<R::Error>>
28where
29    R: SlackWebRequestSender,
30{
31    let params = &[("token", token)];
32    let url = crate::get_slack_url_for_method("users.deletePhoto");
33    client
34        .send(&url, &params[..])
35        .map_err(DeletePhotoError::Client)
36        .and_then(|result| {
37            serde_json::from_str::<DeletePhotoResponse>(&result)
38                .map_err(|e| DeletePhotoError::MalformedResponse(result, e))
39        })
40        .and_then(|o| o.into())
41}
42
43/// Gets user presence information.
44///
45/// Wraps https://api.slack.com/methods/users.getPresence
46
47pub fn get_presence<R>(
48    client: &R,
49    token: &str,
50    request: &GetPresenceRequest<'_>,
51) -> Result<GetPresenceResponse, GetPresenceError<R::Error>>
52where
53    R: SlackWebRequestSender,
54{
55    let params = vec![Some(("token", token)), Some(("user", request.user))];
56    let params = params.into_iter().filter_map(|x| x).collect::<Vec<_>>();
57    let url = crate::get_slack_url_for_method("users.getPresence");
58    client
59        .send(&url, &params[..])
60        .map_err(GetPresenceError::Client)
61        .and_then(|result| {
62            serde_json::from_str::<GetPresenceResponse>(&result)
63                .map_err(|e| GetPresenceError::MalformedResponse(result, e))
64        })
65        .and_then(|o| o.into())
66}
67
68/// Get a user's identity.
69///
70/// Wraps https://api.slack.com/methods/users.identity
71
72pub fn identity<R>(client: &R, token: &str) -> Result<IdentityResponse, IdentityError<R::Error>>
73where
74    R: SlackWebRequestSender,
75{
76    let params = &[("token", token)];
77    let url = crate::get_slack_url_for_method("users.identity");
78    client
79        .send(&url, &params[..])
80        .map_err(IdentityError::Client)
81        .and_then(|result| {
82            serde_json::from_str::<IdentityResponse>(&result)
83                .map_err(|e| IdentityError::MalformedResponse(result, e))
84        })
85        .and_then(|o| o.into())
86}
87
88/// Gets information about a user.
89///
90/// Wraps https://api.slack.com/methods/users.info
91
92pub fn info<R>(
93    client: &R,
94    token: &str,
95    request: &InfoRequest<'_>,
96) -> Result<InfoResponse, InfoError<R::Error>>
97where
98    R: SlackWebRequestSender,
99{
100    let params = vec![Some(("token", token)), Some(("user", request.user))];
101    let params = params.into_iter().filter_map(|x| x).collect::<Vec<_>>();
102    let url = crate::get_slack_url_for_method("users.info");
103    client
104        .send(&url, &params[..])
105        .map_err(InfoError::Client)
106        .and_then(|result| {
107            serde_json::from_str::<InfoResponse>(&result)
108                .map_err(|e| InfoError::MalformedResponse(result, e))
109        })
110        .and_then(|o| o.into())
111}
112
113/// Lists all users in a Slack team.
114///
115/// Wraps https://api.slack.com/methods/users.list
116
117pub fn list<R>(
118    client: &R,
119    token: &str,
120    request: &ListRequest,
121) -> Result<ListResponse, ListError<R::Error>>
122where
123    R: SlackWebRequestSender,
124{
125    let params = vec![
126        Some(("token", token)),
127        request
128            .presence
129            .map(|presence| ("presence", if presence { "1" } else { "0" })),
130    ];
131    let params = params.into_iter().filter_map(|x| x).collect::<Vec<_>>();
132    let url = crate::get_slack_url_for_method("users.list");
133    client
134        .send(&url, &params[..])
135        .map_err(ListError::Client)
136        .and_then(|result| {
137            serde_json::from_str::<ListResponse>(&result)
138                .map_err(|e| ListError::MalformedResponse(result, e))
139        })
140        .and_then(|o| o.into())
141}
142
143/// Marks a user as active.
144///
145/// Wraps https://api.slack.com/methods/users.setActive
146
147pub fn set_active<R>(client: &R, token: &str) -> Result<SetActiveResponse, SetActiveError<R::Error>>
148where
149    R: SlackWebRequestSender,
150{
151    let params = &[("token", token)];
152    let url = crate::get_slack_url_for_method("users.setActive");
153    client
154        .send(&url, &params[..])
155        .map_err(SetActiveError::Client)
156        .and_then(|result| {
157            serde_json::from_str::<SetActiveResponse>(&result)
158                .map_err(|e| SetActiveError::MalformedResponse(result, e))
159        })
160        .and_then(|o| o.into())
161}
162
163/// Manually sets user presence.
164///
165/// Wraps https://api.slack.com/methods/users.setPresence
166
167pub fn set_presence<R>(
168    client: &R,
169    token: &str,
170    request: &SetPresenceRequest<'_>,
171) -> Result<SetPresenceResponse, SetPresenceError<R::Error>>
172where
173    R: SlackWebRequestSender,
174{
175    let params = vec![Some(("token", token)), Some(("presence", request.presence))];
176    let params = params.into_iter().filter_map(|x| x).collect::<Vec<_>>();
177    let url = crate::get_slack_url_for_method("users.setPresence");
178    client
179        .send(&url, &params[..])
180        .map_err(SetPresenceError::Client)
181        .and_then(|result| {
182            serde_json::from_str::<SetPresenceResponse>(&result)
183                .map_err(|e| SetPresenceError::MalformedResponse(result, e))
184        })
185        .and_then(|o| o.into())
186}