meegle/user_group/
api.rs

1use super::types::*;
2use crate::client::{AuthType, Client};
3use crate::error::ApiResult;
4
5pub trait UserGroupApi {
6    /// 获取用户组成员
7    /// 该接口用于获取用户组成员,对应的平台功能介绍可参考用户组管理。
8    fn get_user_group_members(
9        &self,
10        request: GetUserGroupMembersRequest,
11        auth: AuthType,
12    ) -> impl std::future::Future<Output = ApiResult<serde_json::Value>> + Send;
13
14    /// 创建自定义用户组
15    /// 该接口用于创建自定义用户组,对应的平台功能介绍,如创建用户组的平台功能可参考用户组管理。
16    fn create_user_group(
17        &self,
18        request: CreateUserGroupRequest,
19        auth: AuthType,
20    ) -> impl std::future::Future<Output = ApiResult<CreateUserGroupResponse>> + Send;
21
22    /// 更新用户组成员
23    /// 该接口用于更新用户组成员,对应的平台功能介绍可参考用户组管理。
24    fn update_user_group_members(
25        &self,
26        request: UpdateUserGroupMembersRequest,
27        auth: AuthType,
28    ) -> impl std::future::Future<Output = ApiResult<UpdateUserGroupMembersResponse>> + Send;
29}
30
31impl UserGroupApi for Client {
32    async fn get_user_group_members(
33        &self,
34        request: GetUserGroupMembersRequest,
35        auth: AuthType,
36    ) -> ApiResult<serde_json::Value> {
37        Ok(self
38            .post(
39                &format!("{}/user_groups/members/page", request.project_key),
40                request,
41                auth,
42            )
43            .await?)
44    }
45
46    async fn create_user_group(
47        &self,
48        request: CreateUserGroupRequest,
49        auth: AuthType,
50    ) -> ApiResult<CreateUserGroupResponse> {
51        let url = format!("{}/user_group", request.project_key);
52        Ok(self.post(&url, &request, auth).await?)
53    }
54
55    async fn update_user_group_members(
56        &self,
57        request: UpdateUserGroupMembersRequest,
58        auth: AuthType,
59    ) -> ApiResult<UpdateUserGroupMembersResponse> {
60        let url = format!("{}/user_group/members", request.project_key);
61        Ok(self.patch(&url, &request, auth).await?)
62    }
63}