discloud_rs/
team_manager.rs

1use crate::Discloud;
2use serde::{Deserialize, Serialize};
3
4pub use perms::*;
5pub use team_member::*;
6
7mod perms;
8mod team_member;
9
10#[derive(Debug, Clone)]
11pub struct TeamManager {
12    pub app_id: String,
13}
14
15#[derive(Debug, Deserialize)]
16pub struct GetTeamManagerResponse {
17    pub status: String,
18    pub team: Vec<APITeamMember>,
19}
20
21#[derive(Debug, Deserialize)]
22pub struct AddTeamMemberResponse {
23    pub status: String,
24    pub app: TeamMember,
25}
26
27#[derive(Debug, Serialize)]
28pub struct TeamMemberBody {
29    #[serde(rename = "modID")]
30    pub mod_id: String,
31    pub perms: Vec<TeamPerms>,
32}
33
34impl TeamManager {
35    pub async fn get_app_team(&self, client: &Discloud) -> Result<Vec<TeamMember>, crate::Error> {
36        client.get_app_team(&self.app_id).await
37    }
38
39    pub async fn add_app_mod(
40        &self,
41        client: &Discloud,
42        mod_id: &str,
43        perms: Vec<TeamPerms>,
44    ) -> Result<TeamMember, crate::Error> {
45        client.add_app_mod(&self.app_id, mod_id, perms).await
46    }
47}