1use reqwest;
12
13use super::{configuration, Error};
14use crate::apis::ResponseContent;
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum CreateChannelError {
20 Status400(),
21 Status403(),
22 Status409(),
23 UnknownValue(serde_json::Value),
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum EditChannelError {
30 Status400(),
31 Status403(),
32 Status404(),
33 Status409(),
34 UnknownValue(serde_json::Value),
35}
36
37#[derive(Debug, Clone, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum EditChannelSubscribersError {
41 Status400(),
42 Status403(),
43 Status404(),
44 UnknownValue(serde_json::Value),
45}
46
47#[derive(Debug, Clone, Serialize, Deserialize)]
49#[serde(untagged)]
50pub enum EditChannelTopicError {
51 Status400(),
52 Status404(),
53 UnknownValue(serde_json::Value),
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize)]
58#[serde(untagged)]
59pub enum GetChannelError {
60 Status404(),
61 UnknownValue(serde_json::Value),
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize)]
66#[serde(untagged)]
67pub enum GetChannelBotsError {
68 Status404(),
69 UnknownValue(serde_json::Value),
70}
71
72#[derive(Debug, Clone, Serialize, Deserialize)]
74#[serde(untagged)]
75pub enum GetChannelEventsError {
76 Status400(),
77 Status404(),
78 UnknownValue(serde_json::Value),
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum GetChannelPinsError {
85 Status404(),
86 UnknownValue(serde_json::Value),
87}
88
89#[derive(Debug, Clone, Serialize, Deserialize)]
91#[serde(untagged)]
92pub enum GetChannelStatsError {
93 Status404(),
94 UnknownValue(serde_json::Value),
95}
96
97#[derive(Debug, Clone, Serialize, Deserialize)]
99#[serde(untagged)]
100pub enum GetChannelSubscribersError {
101 Status403(),
102 Status404(),
103 UnknownValue(serde_json::Value),
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize)]
108#[serde(untagged)]
109pub enum GetChannelTopicError {
110 Status404(),
111 UnknownValue(serde_json::Value),
112}
113
114#[derive(Debug, Clone, Serialize, Deserialize)]
116#[serde(untagged)]
117pub enum GetChannelViewersError {
118 Status404(),
119 UnknownValue(serde_json::Value),
120}
121
122#[derive(Debug, Clone, Serialize, Deserialize)]
124#[serde(untagged)]
125pub enum GetChannelsError {
126 UnknownValue(serde_json::Value),
127}
128
129#[derive(Debug, Clone, Serialize, Deserialize)]
131#[serde(untagged)]
132pub enum GetMessagesError {
133 Status400(),
134 Status404(),
135 UnknownValue(serde_json::Value),
136}
137
138#[derive(Debug, Clone, Serialize, Deserialize)]
140#[serde(untagged)]
141pub enum GetUserDmChannelError {
142 Status404(),
143 UnknownValue(serde_json::Value),
144}
145
146#[derive(Debug, Clone, Serialize, Deserialize)]
148#[serde(untagged)]
149pub enum PostMessageError {
150 Status400(),
151 Status404(),
152 UnknownValue(serde_json::Value),
153}
154
155#[derive(Debug, Clone, Serialize, Deserialize)]
157#[serde(untagged)]
158pub enum SetChannelSubscribersError {
159 Status400(),
160 Status403(),
161 Status404(),
162 UnknownValue(serde_json::Value),
163}
164
165pub async fn create_channel(
167 configuration: &configuration::Configuration,
168 post_channel_request: Option<crate::models::PostChannelRequest>,
169) -> Result<crate::models::Channel, Error<CreateChannelError>> {
170 let local_var_configuration = configuration;
171
172 let local_var_client = &local_var_configuration.client;
173
174 let local_var_uri_str = format!("{}/channels", local_var_configuration.base_path);
175 let mut local_var_req_builder =
176 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
177
178 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
179 local_var_req_builder =
180 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
181 }
182 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
183 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
184 };
185 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
186 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
187 };
188 local_var_req_builder = local_var_req_builder.json(&post_channel_request);
189
190 let local_var_req = local_var_req_builder.build()?;
191 let local_var_resp = local_var_client.execute(local_var_req).await?;
192
193 let local_var_status = local_var_resp.status();
194 let local_var_content = local_var_resp.text().await?;
195
196 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
197 serde_json::from_str(&local_var_content).map_err(Error::from)
198 } else {
199 let local_var_entity: Option<CreateChannelError> =
200 serde_json::from_str(&local_var_content).ok();
201 let local_var_error = ResponseContent {
202 status: local_var_status,
203 content: local_var_content,
204 entity: local_var_entity,
205 };
206 Err(Error::ResponseError(local_var_error))
207 }
208}
209
210pub async fn edit_channel(
212 configuration: &configuration::Configuration,
213 channel_id: &str,
214 patch_channel_request: Option<crate::models::PatchChannelRequest>,
215) -> Result<(), Error<EditChannelError>> {
216 let local_var_configuration = configuration;
217
218 let local_var_client = &local_var_configuration.client;
219
220 let local_var_uri_str = format!(
221 "{}/channels/{channelId}",
222 local_var_configuration.base_path,
223 channelId = crate::apis::urlencode(channel_id)
224 );
225 let mut local_var_req_builder =
226 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
227
228 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
229 local_var_req_builder =
230 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
231 }
232 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
233 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
234 };
235 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
236 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
237 };
238 local_var_req_builder = local_var_req_builder.json(&patch_channel_request);
239
240 let local_var_req = local_var_req_builder.build()?;
241 let local_var_resp = local_var_client.execute(local_var_req).await?;
242
243 let local_var_status = local_var_resp.status();
244 let local_var_content = local_var_resp.text().await?;
245
246 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
247 Ok(())
248 } else {
249 let local_var_entity: Option<EditChannelError> =
250 serde_json::from_str(&local_var_content).ok();
251 let local_var_error = ResponseContent {
252 status: local_var_status,
253 content: local_var_content,
254 entity: local_var_entity,
255 };
256 Err(Error::ResponseError(local_var_error))
257 }
258}
259
260pub async fn edit_channel_subscribers(
262 configuration: &configuration::Configuration,
263 channel_id: &str,
264 patch_channel_subscribers_request: Option<crate::models::PatchChannelSubscribersRequest>,
265) -> Result<(), Error<EditChannelSubscribersError>> {
266 let local_var_configuration = configuration;
267
268 let local_var_client = &local_var_configuration.client;
269
270 let local_var_uri_str = format!(
271 "{}/channels/{channelId}/subscribers",
272 local_var_configuration.base_path,
273 channelId = crate::apis::urlencode(channel_id)
274 );
275 let mut local_var_req_builder =
276 local_var_client.request(reqwest::Method::PATCH, local_var_uri_str.as_str());
277
278 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
279 local_var_req_builder =
280 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
281 }
282 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
283 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
284 };
285 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
286 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
287 };
288 local_var_req_builder = local_var_req_builder.json(&patch_channel_subscribers_request);
289
290 let local_var_req = local_var_req_builder.build()?;
291 let local_var_resp = local_var_client.execute(local_var_req).await?;
292
293 let local_var_status = local_var_resp.status();
294 let local_var_content = local_var_resp.text().await?;
295
296 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
297 Ok(())
298 } else {
299 let local_var_entity: Option<EditChannelSubscribersError> =
300 serde_json::from_str(&local_var_content).ok();
301 let local_var_error = ResponseContent {
302 status: local_var_status,
303 content: local_var_content,
304 entity: local_var_entity,
305 };
306 Err(Error::ResponseError(local_var_error))
307 }
308}
309
310pub async fn edit_channel_topic(
312 configuration: &configuration::Configuration,
313 channel_id: &str,
314 put_channel_topic_request: Option<crate::models::PutChannelTopicRequest>,
315) -> Result<(), Error<EditChannelTopicError>> {
316 let local_var_configuration = configuration;
317
318 let local_var_client = &local_var_configuration.client;
319
320 let local_var_uri_str = format!(
321 "{}/channels/{channelId}/topic",
322 local_var_configuration.base_path,
323 channelId = crate::apis::urlencode(channel_id)
324 );
325 let mut local_var_req_builder =
326 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
327
328 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
329 local_var_req_builder =
330 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
331 }
332 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
333 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
334 };
335 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
336 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
337 };
338 local_var_req_builder = local_var_req_builder.json(&put_channel_topic_request);
339
340 let local_var_req = local_var_req_builder.build()?;
341 let local_var_resp = local_var_client.execute(local_var_req).await?;
342
343 let local_var_status = local_var_resp.status();
344 let local_var_content = local_var_resp.text().await?;
345
346 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
347 Ok(())
348 } else {
349 let local_var_entity: Option<EditChannelTopicError> =
350 serde_json::from_str(&local_var_content).ok();
351 let local_var_error = ResponseContent {
352 status: local_var_status,
353 content: local_var_content,
354 entity: local_var_entity,
355 };
356 Err(Error::ResponseError(local_var_error))
357 }
358}
359
360pub async fn get_channel(
362 configuration: &configuration::Configuration,
363 channel_id: &str,
364) -> Result<crate::models::Channel, Error<GetChannelError>> {
365 let local_var_configuration = configuration;
366
367 let local_var_client = &local_var_configuration.client;
368
369 let local_var_uri_str = format!(
370 "{}/channels/{channelId}",
371 local_var_configuration.base_path,
372 channelId = crate::apis::urlencode(channel_id)
373 );
374 let mut local_var_req_builder =
375 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
376
377 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
378 local_var_req_builder =
379 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
380 }
381 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
382 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
383 };
384 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
385 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
386 };
387
388 let local_var_req = local_var_req_builder.build()?;
389 let local_var_resp = local_var_client.execute(local_var_req).await?;
390
391 let local_var_status = local_var_resp.status();
392 let local_var_content = local_var_resp.text().await?;
393
394 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
395 serde_json::from_str(&local_var_content).map_err(Error::from)
396 } else {
397 let local_var_entity: Option<GetChannelError> =
398 serde_json::from_str(&local_var_content).ok();
399 let local_var_error = ResponseContent {
400 status: local_var_status,
401 content: local_var_content,
402 entity: local_var_entity,
403 };
404 Err(Error::ResponseError(local_var_error))
405 }
406}
407
408pub async fn get_channel_bots(
410 configuration: &configuration::Configuration,
411 channel_id: &str,
412) -> Result<Vec<crate::models::BotUser>, Error<GetChannelBotsError>> {
413 let local_var_configuration = configuration;
414
415 let local_var_client = &local_var_configuration.client;
416
417 let local_var_uri_str = format!(
418 "{}/channels/{channelId}/bots",
419 local_var_configuration.base_path,
420 channelId = crate::apis::urlencode(channel_id)
421 );
422 let mut local_var_req_builder =
423 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
424
425 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
426 local_var_req_builder =
427 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
428 }
429 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
430 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
431 };
432 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
433 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
434 };
435
436 let local_var_req = local_var_req_builder.build()?;
437 let local_var_resp = local_var_client.execute(local_var_req).await?;
438
439 let local_var_status = local_var_resp.status();
440 let local_var_content = local_var_resp.text().await?;
441
442 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
443 serde_json::from_str(&local_var_content).map_err(Error::from)
444 } else {
445 let local_var_entity: Option<GetChannelBotsError> =
446 serde_json::from_str(&local_var_content).ok();
447 let local_var_error = ResponseContent {
448 status: local_var_status,
449 content: local_var_content,
450 entity: local_var_entity,
451 };
452 Err(Error::ResponseError(local_var_error))
453 }
454}
455
456pub async fn get_channel_events(
458 configuration: &configuration::Configuration,
459 channel_id: &str,
460 limit: Option<i32>,
461 offset: Option<i32>,
462 since: Option<String>,
463 until: Option<String>,
464 inclusive: Option<bool>,
465 order: Option<&str>,
466) -> Result<Vec<crate::models::ChannelEvent>, Error<GetChannelEventsError>> {
467 let local_var_configuration = configuration;
468
469 let local_var_client = &local_var_configuration.client;
470
471 let local_var_uri_str = format!(
472 "{}/channels/{channelId}/events",
473 local_var_configuration.base_path,
474 channelId = crate::apis::urlencode(channel_id)
475 );
476 let mut local_var_req_builder =
477 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
478
479 if let Some(ref local_var_str) = limit {
480 local_var_req_builder =
481 local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
482 }
483 if let Some(ref local_var_str) = offset {
484 local_var_req_builder =
485 local_var_req_builder.query(&[("offset", &local_var_str.to_string())]);
486 }
487 if let Some(ref local_var_str) = since {
488 local_var_req_builder =
489 local_var_req_builder.query(&[("since", &local_var_str.to_string())]);
490 }
491 if let Some(ref local_var_str) = until {
492 local_var_req_builder =
493 local_var_req_builder.query(&[("until", &local_var_str.to_string())]);
494 }
495 if let Some(ref local_var_str) = inclusive {
496 local_var_req_builder =
497 local_var_req_builder.query(&[("inclusive", &local_var_str.to_string())]);
498 }
499 if let Some(ref local_var_str) = order {
500 local_var_req_builder =
501 local_var_req_builder.query(&[("order", &local_var_str.to_string())]);
502 }
503 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
504 local_var_req_builder =
505 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
506 }
507 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
508 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
509 };
510 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
511 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
512 };
513
514 let local_var_req = local_var_req_builder.build()?;
515 let local_var_resp = local_var_client.execute(local_var_req).await?;
516
517 let local_var_status = local_var_resp.status();
518 let local_var_content = local_var_resp.text().await?;
519
520 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
521 serde_json::from_str(&local_var_content).map_err(Error::from)
522 } else {
523 let local_var_entity: Option<GetChannelEventsError> =
524 serde_json::from_str(&local_var_content).ok();
525 let local_var_error = ResponseContent {
526 status: local_var_status,
527 content: local_var_content,
528 entity: local_var_entity,
529 };
530 Err(Error::ResponseError(local_var_error))
531 }
532}
533
534pub async fn get_channel_pins(
536 configuration: &configuration::Configuration,
537 channel_id: &str,
538) -> Result<Vec<crate::models::Pin>, Error<GetChannelPinsError>> {
539 let local_var_configuration = configuration;
540
541 let local_var_client = &local_var_configuration.client;
542
543 let local_var_uri_str = format!(
544 "{}/channels/{channelId}/pins",
545 local_var_configuration.base_path,
546 channelId = crate::apis::urlencode(channel_id)
547 );
548 let mut local_var_req_builder =
549 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
550
551 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
552 local_var_req_builder =
553 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
554 }
555 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
556 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
557 };
558 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
559 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
560 };
561
562 let local_var_req = local_var_req_builder.build()?;
563 let local_var_resp = local_var_client.execute(local_var_req).await?;
564
565 let local_var_status = local_var_resp.status();
566 let local_var_content = local_var_resp.text().await?;
567
568 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
569 serde_json::from_str(&local_var_content).map_err(Error::from)
570 } else {
571 let local_var_entity: Option<GetChannelPinsError> =
572 serde_json::from_str(&local_var_content).ok();
573 let local_var_error = ResponseContent {
574 status: local_var_status,
575 content: local_var_content,
576 entity: local_var_entity,
577 };
578 Err(Error::ResponseError(local_var_error))
579 }
580}
581
582pub async fn get_channel_stats(
584 configuration: &configuration::Configuration,
585 channel_id: &str,
586) -> Result<crate::models::ChannelStats, Error<GetChannelStatsError>> {
587 let local_var_configuration = configuration;
588
589 let local_var_client = &local_var_configuration.client;
590
591 let local_var_uri_str = format!(
592 "{}/channels/{channelId}/stats",
593 local_var_configuration.base_path,
594 channelId = crate::apis::urlencode(channel_id)
595 );
596 let mut local_var_req_builder =
597 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
598
599 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
600 local_var_req_builder =
601 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
602 }
603 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
604 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
605 };
606 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
607 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
608 };
609
610 let local_var_req = local_var_req_builder.build()?;
611 let local_var_resp = local_var_client.execute(local_var_req).await?;
612
613 let local_var_status = local_var_resp.status();
614 let local_var_content = local_var_resp.text().await?;
615
616 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
617 serde_json::from_str(&local_var_content).map_err(Error::from)
618 } else {
619 let local_var_entity: Option<GetChannelStatsError> =
620 serde_json::from_str(&local_var_content).ok();
621 let local_var_error = ResponseContent {
622 status: local_var_status,
623 content: local_var_content,
624 entity: local_var_entity,
625 };
626 Err(Error::ResponseError(local_var_error))
627 }
628}
629
630pub async fn get_channel_subscribers(
632 configuration: &configuration::Configuration,
633 channel_id: &str,
634) -> Result<Vec<uuid::Uuid>, Error<GetChannelSubscribersError>> {
635 let local_var_configuration = configuration;
636
637 let local_var_client = &local_var_configuration.client;
638
639 let local_var_uri_str = format!(
640 "{}/channels/{channelId}/subscribers",
641 local_var_configuration.base_path,
642 channelId = crate::apis::urlencode(channel_id)
643 );
644 let mut local_var_req_builder =
645 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
646
647 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
648 local_var_req_builder =
649 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
650 }
651 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
652 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
653 };
654 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
655 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
656 };
657
658 let local_var_req = local_var_req_builder.build()?;
659 let local_var_resp = local_var_client.execute(local_var_req).await?;
660
661 let local_var_status = local_var_resp.status();
662 let local_var_content = local_var_resp.text().await?;
663
664 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
665 serde_json::from_str(&local_var_content).map_err(Error::from)
666 } else {
667 let local_var_entity: Option<GetChannelSubscribersError> =
668 serde_json::from_str(&local_var_content).ok();
669 let local_var_error = ResponseContent {
670 status: local_var_status,
671 content: local_var_content,
672 entity: local_var_entity,
673 };
674 Err(Error::ResponseError(local_var_error))
675 }
676}
677
678pub async fn get_channel_topic(
680 configuration: &configuration::Configuration,
681 channel_id: &str,
682) -> Result<crate::models::ChannelTopic, Error<GetChannelTopicError>> {
683 let local_var_configuration = configuration;
684
685 let local_var_client = &local_var_configuration.client;
686
687 let local_var_uri_str = format!(
688 "{}/channels/{channelId}/topic",
689 local_var_configuration.base_path,
690 channelId = crate::apis::urlencode(channel_id)
691 );
692 let mut local_var_req_builder =
693 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
694
695 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
696 local_var_req_builder =
697 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
698 }
699 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
700 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
701 };
702 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
703 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
704 };
705
706 let local_var_req = local_var_req_builder.build()?;
707 let local_var_resp = local_var_client.execute(local_var_req).await?;
708
709 let local_var_status = local_var_resp.status();
710 let local_var_content = local_var_resp.text().await?;
711
712 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
713 serde_json::from_str(&local_var_content).map_err(Error::from)
714 } else {
715 let local_var_entity: Option<GetChannelTopicError> =
716 serde_json::from_str(&local_var_content).ok();
717 let local_var_error = ResponseContent {
718 status: local_var_status,
719 content: local_var_content,
720 entity: local_var_entity,
721 };
722 Err(Error::ResponseError(local_var_error))
723 }
724}
725
726pub async fn get_channel_viewers(
728 configuration: &configuration::Configuration,
729 channel_id: &str,
730) -> Result<Vec<crate::models::ChannelViewer>, Error<GetChannelViewersError>> {
731 let local_var_configuration = configuration;
732
733 let local_var_client = &local_var_configuration.client;
734
735 let local_var_uri_str = format!(
736 "{}/channels/{channelId}/viewers",
737 local_var_configuration.base_path,
738 channelId = crate::apis::urlencode(channel_id)
739 );
740 let mut local_var_req_builder =
741 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
742
743 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
744 local_var_req_builder =
745 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
746 }
747 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
748 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
749 };
750 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
751 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
752 };
753
754 let local_var_req = local_var_req_builder.build()?;
755 let local_var_resp = local_var_client.execute(local_var_req).await?;
756
757 let local_var_status = local_var_resp.status();
758 let local_var_content = local_var_resp.text().await?;
759
760 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
761 serde_json::from_str(&local_var_content).map_err(Error::from)
762 } else {
763 let local_var_entity: Option<GetChannelViewersError> =
764 serde_json::from_str(&local_var_content).ok();
765 let local_var_error = ResponseContent {
766 status: local_var_status,
767 content: local_var_content,
768 entity: local_var_entity,
769 };
770 Err(Error::ResponseError(local_var_error))
771 }
772}
773
774pub async fn get_channels(
776 configuration: &configuration::Configuration,
777 include_dm: Option<bool>,
778) -> Result<crate::models::ChannelList, Error<GetChannelsError>> {
779 let local_var_configuration = configuration;
780
781 let local_var_client = &local_var_configuration.client;
782
783 let local_var_uri_str = format!("{}/channels", local_var_configuration.base_path);
784 let mut local_var_req_builder =
785 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
786
787 if let Some(ref local_var_str) = include_dm {
788 local_var_req_builder =
789 local_var_req_builder.query(&[("include-dm", &local_var_str.to_string())]);
790 }
791 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
792 local_var_req_builder =
793 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
794 }
795 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
796 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
797 };
798 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
799 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
800 };
801
802 let local_var_req = local_var_req_builder.build()?;
803 let local_var_resp = local_var_client.execute(local_var_req).await?;
804
805 let local_var_status = local_var_resp.status();
806 let local_var_content = local_var_resp.text().await?;
807
808 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
809 serde_json::from_str(&local_var_content).map_err(Error::from)
810 } else {
811 let local_var_entity: Option<GetChannelsError> =
812 serde_json::from_str(&local_var_content).ok();
813 let local_var_error = ResponseContent {
814 status: local_var_status,
815 content: local_var_content,
816 entity: local_var_entity,
817 };
818 Err(Error::ResponseError(local_var_error))
819 }
820}
821
822pub async fn get_messages(
824 configuration: &configuration::Configuration,
825 channel_id: &str,
826 limit: Option<i32>,
827 offset: Option<i32>,
828 since: Option<String>,
829 until: Option<String>,
830 inclusive: Option<bool>,
831 order: Option<&str>,
832) -> Result<Vec<crate::models::Message>, Error<GetMessagesError>> {
833 let local_var_configuration = configuration;
834
835 let local_var_client = &local_var_configuration.client;
836
837 let local_var_uri_str = format!(
838 "{}/channels/{channelId}/messages",
839 local_var_configuration.base_path,
840 channelId = crate::apis::urlencode(channel_id)
841 );
842 let mut local_var_req_builder =
843 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
844
845 if let Some(ref local_var_str) = limit {
846 local_var_req_builder =
847 local_var_req_builder.query(&[("limit", &local_var_str.to_string())]);
848 }
849 if let Some(ref local_var_str) = offset {
850 local_var_req_builder =
851 local_var_req_builder.query(&[("offset", &local_var_str.to_string())]);
852 }
853 if let Some(ref local_var_str) = since {
854 local_var_req_builder =
855 local_var_req_builder.query(&[("since", &local_var_str.to_string())]);
856 }
857 if let Some(ref local_var_str) = until {
858 local_var_req_builder =
859 local_var_req_builder.query(&[("until", &local_var_str.to_string())]);
860 }
861 if let Some(ref local_var_str) = inclusive {
862 local_var_req_builder =
863 local_var_req_builder.query(&[("inclusive", &local_var_str.to_string())]);
864 }
865 if let Some(ref local_var_str) = order {
866 local_var_req_builder =
867 local_var_req_builder.query(&[("order", &local_var_str.to_string())]);
868 }
869 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
870 local_var_req_builder =
871 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
872 }
873 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
874 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
875 };
876 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
877 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
878 };
879
880 let local_var_req = local_var_req_builder.build()?;
881 let local_var_resp = local_var_client.execute(local_var_req).await?;
882
883 let local_var_status = local_var_resp.status();
884 let local_var_content = local_var_resp.text().await?;
885
886 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
887 serde_json::from_str(&local_var_content).map_err(Error::from)
888 } else {
889 let local_var_entity: Option<GetMessagesError> =
890 serde_json::from_str(&local_var_content).ok();
891 let local_var_error = ResponseContent {
892 status: local_var_status,
893 content: local_var_content,
894 entity: local_var_entity,
895 };
896 Err(Error::ResponseError(local_var_error))
897 }
898}
899
900pub async fn get_user_dm_channel(
902 configuration: &configuration::Configuration,
903 user_id: &str,
904) -> Result<crate::models::DmChannel, Error<GetUserDmChannelError>> {
905 let local_var_configuration = configuration;
906
907 let local_var_client = &local_var_configuration.client;
908
909 let local_var_uri_str = format!(
910 "{}/users/{userId}/dm-channel",
911 local_var_configuration.base_path,
912 userId = crate::apis::urlencode(user_id)
913 );
914 let mut local_var_req_builder =
915 local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
916
917 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
918 local_var_req_builder =
919 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
920 }
921 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
922 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
923 };
924 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
925 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
926 };
927
928 let local_var_req = local_var_req_builder.build()?;
929 let local_var_resp = local_var_client.execute(local_var_req).await?;
930
931 let local_var_status = local_var_resp.status();
932 let local_var_content = local_var_resp.text().await?;
933
934 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
935 serde_json::from_str(&local_var_content).map_err(Error::from)
936 } else {
937 let local_var_entity: Option<GetUserDmChannelError> =
938 serde_json::from_str(&local_var_content).ok();
939 let local_var_error = ResponseContent {
940 status: local_var_status,
941 content: local_var_content,
942 entity: local_var_entity,
943 };
944 Err(Error::ResponseError(local_var_error))
945 }
946}
947
948pub async fn post_message(
950 configuration: &configuration::Configuration,
951 channel_id: &str,
952 post_message_request: Option<crate::models::PostMessageRequest>,
953) -> Result<crate::models::Message, Error<PostMessageError>> {
954 let local_var_configuration = configuration;
955
956 let local_var_client = &local_var_configuration.client;
957
958 let local_var_uri_str = format!(
959 "{}/channels/{channelId}/messages",
960 local_var_configuration.base_path,
961 channelId = crate::apis::urlencode(channel_id)
962 );
963 let mut local_var_req_builder =
964 local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
965
966 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
967 local_var_req_builder =
968 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
969 }
970 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
971 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
972 };
973 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
974 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
975 };
976 local_var_req_builder = local_var_req_builder.json(&post_message_request);
977
978 let local_var_req = local_var_req_builder.build()?;
979 let local_var_resp = local_var_client.execute(local_var_req).await?;
980
981 let local_var_status = local_var_resp.status();
982 let local_var_content = local_var_resp.text().await?;
983
984 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
985 serde_json::from_str(&local_var_content).map_err(Error::from)
986 } else {
987 let local_var_entity: Option<PostMessageError> =
988 serde_json::from_str(&local_var_content).ok();
989 let local_var_error = ResponseContent {
990 status: local_var_status,
991 content: local_var_content,
992 entity: local_var_entity,
993 };
994 Err(Error::ResponseError(local_var_error))
995 }
996}
997
998pub async fn set_channel_subscribers(
1000 configuration: &configuration::Configuration,
1001 channel_id: &str,
1002 put_channel_subscribers_request: Option<crate::models::PutChannelSubscribersRequest>,
1003) -> Result<(), Error<SetChannelSubscribersError>> {
1004 let local_var_configuration = configuration;
1005
1006 let local_var_client = &local_var_configuration.client;
1007
1008 let local_var_uri_str = format!(
1009 "{}/channels/{channelId}/subscribers",
1010 local_var_configuration.base_path,
1011 channelId = crate::apis::urlencode(channel_id)
1012 );
1013 let mut local_var_req_builder =
1014 local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
1015
1016 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
1017 local_var_req_builder =
1018 local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
1019 }
1020 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
1021 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1022 };
1023 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
1024 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
1025 };
1026 local_var_req_builder = local_var_req_builder.json(&put_channel_subscribers_request);
1027
1028 let local_var_req = local_var_req_builder.build()?;
1029 let local_var_resp = local_var_client.execute(local_var_req).await?;
1030
1031 let local_var_status = local_var_resp.status();
1032 let local_var_content = local_var_resp.text().await?;
1033
1034 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
1035 Ok(())
1036 } else {
1037 let local_var_entity: Option<SetChannelSubscribersError> =
1038 serde_json::from_str(&local_var_content).ok();
1039 let local_var_error = ResponseContent {
1040 status: local_var_status,
1041 content: local_var_content,
1042 entity: local_var_entity,
1043 };
1044 Err(Error::ResponseError(local_var_error))
1045 }
1046}