discloud_rs/
team_manager.rs1use 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}