uptrakit_openapi_client/
users.rs1use crate::Result;
2use crate::UptrakitClient;
3use crate::types_impl::users::{
4 ApplyPresetRequest, UpdateUserActiveRequest, UpdateUserRolesRequest, UserWithRolesResponse,
5};
6use uuid::Uuid;
7
8impl UptrakitClient {
9 pub async fn list_users(&self) -> Result<Vec<UserWithRolesResponse>> {
11 self.get(crate::paths::users::BASE).await
12 }
13
14 pub async fn get_user(&self, id: &Uuid) -> Result<UserWithRolesResponse> {
16 self.get(&crate::paths::users::by_id(id)).await
17 }
18
19 pub async fn update_user_roles(
21 &self,
22 id: &Uuid,
23 req: &UpdateUserRolesRequest,
24 ) -> Result<UserWithRolesResponse> {
25 self.put_json(&crate::paths::users::roles(id), req).await
26 }
27
28 pub async fn update_user_active(
30 &self,
31 id: &Uuid,
32 req: &UpdateUserActiveRequest,
33 ) -> Result<UserWithRolesResponse> {
34 self.put_json(&crate::paths::users::active(id), req).await
35 }
36
37 pub async fn apply_preset(
39 &self,
40 id: &Uuid,
41 req: &ApplyPresetRequest,
42 ) -> Result<UserWithRolesResponse> {
43 self.post_json(&crate::paths::users::apply_preset(id), req)
44 .await
45 }
46}
47
48#[cfg(test)]
49mod tests {
50 use crate::types_impl::users::{
51 ApplyPresetRequest, UpdateUserActiveRequest, UpdateUserRolesRequest,
52 };
53
54 #[test]
55 fn update_user_roles_request_serialization() {
56 let id: uuid::Uuid = "550e8400-e29b-41d4-a716-446655440000".parse().unwrap();
57 let req = UpdateUserRolesRequest { role_ids: vec![id] };
58 let json = serde_json::to_value(&req).expect("serialize");
59 assert_eq!(json["role_ids"][0], "550e8400-e29b-41d4-a716-446655440000");
60 }
61
62 #[test]
63 fn update_user_active_request_serialization() {
64 let req = UpdateUserActiveRequest { is_active: false };
65 let json = serde_json::to_value(&req).expect("serialize");
66 assert_eq!(json["is_active"], false);
67 }
68
69 #[test]
70 fn apply_preset_request_serialization() {
71 let req = ApplyPresetRequest {
72 preset: "admin".to_string(),
73 };
74 let json = serde_json::to_value(&req).expect("serialize");
75 assert_eq!(json["preset"], "admin");
76 }
77}