slack_morphism/api/
team.rs

1//!
2//! Support for Slack Team API methods
3//!
4
5use rsb_derive::Builder;
6use serde::{Deserialize, Serialize};
7use serde_with::skip_serializing_none;
8
9use crate::models::*;
10use crate::ratectl::*;
11use crate::SlackClientSession;
12use crate::{ClientResult, SlackClientHttpConnector};
13
14impl<'a, SCHC> SlackClientSession<'a, SCHC>
15where
16    SCHC: SlackClientHttpConnector + Send,
17{
18    ///
19    /// https://api.slack.com/methods/team.info
20    ///
21    pub async fn team_info(
22        &self,
23        req: &SlackApiTeamInfoRequest,
24    ) -> ClientResult<SlackApiTeamInfoResponse> {
25        self.http_session_api
26            .http_get(
27                "team.info",
28                &vec![("team", req.team.as_ref())],
29                Some(&SLACK_TIER3_METHOD_CONFIG),
30            )
31            .await
32    }
33
34    ///
35    /// https://api.slack.com/methods/team.profile.get
36    ///
37    pub async fn team_profile_get(
38        &self,
39        req: &SlackApiTeamProfileGetRequest,
40    ) -> ClientResult<SlackApiTeamProfileGetResponse> {
41        self.http_session_api
42            .http_get(
43                "team.profile.get",
44                &vec![("visibility", req.visibility.as_ref())],
45                Some(&SLACK_TIER3_METHOD_CONFIG),
46            )
47            .await
48    }
49}
50
51#[skip_serializing_none]
52#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
53pub struct SlackApiTeamInfoRequest {
54    pub team: Option<SlackTeamId>,
55}
56
57#[skip_serializing_none]
58#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
59pub struct SlackApiTeamInfoResponse {
60    pub team: SlackTeamInfo,
61}
62
63#[skip_serializing_none]
64#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
65pub struct SlackApiTeamProfileGetRequest {
66    pub visibility: Option<SlackTeamId>,
67}
68
69#[skip_serializing_none]
70#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
71pub struct SlackApiTeamProfileGetResponse {
72    pub profile: SlackTeamProfile,
73}