slack_api/sync/mods/
users.rs1pub use crate::mod_types::users_types::*;
18use crate::sync::requests::SlackWebRequestSender;
19
20pub 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, ¶ms[..])
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
43pub 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, ¶ms[..])
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
68pub 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, ¶ms[..])
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
88pub 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, ¶ms[..])
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
113pub 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, ¶ms[..])
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
143pub 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, ¶ms[..])
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
163pub 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, ¶ms[..])
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}