rive_http/servers/
server_permissions.rs1use crate::prelude::*;
2use rive_models::{
3 data::{
4 CreateRoleData, EditRoleData, SetDefaultRolePermissionData, SetServerRolePermissionData,
5 },
6 server::{NewRole, Role, Server},
7};
8
9impl Client {
10 pub async fn create_role(
12 &self,
13 server_id: impl Into<String>,
14 data: CreateRoleData,
15 ) -> Result<NewRole> {
16 Ok(self
17 .client
18 .post(ep!(self, "/servers/{}/roles", server_id.into()))
19 .json(&data)
20 .auth(&self.authentication)
21 .send()
22 .await?
23 .process_error()
24 .await?
25 .json()
26 .await?)
27 }
28
29 pub async fn delete_role(
31 &self,
32 server_id: impl Into<String>,
33 role_id: impl Into<String>,
34 ) -> Result<()> {
35 self.client
36 .delete(ep!(
37 self,
38 "/servers/{}/roles/{}",
39 server_id.into(),
40 role_id.into()
41 ))
42 .auth(&self.authentication)
43 .send()
44 .await?
45 .process_error()
46 .await?;
47 Ok(())
48 }
49
50 pub async fn edit_role(
52 &self,
53 server_id: impl Into<String>,
54 role_id: impl Into<String>,
55 data: EditRoleData,
56 ) -> Result<Role> {
57 Ok(self
58 .client
59 .patch(ep!(
60 self,
61 "/servers/{}/roles/{}",
62 server_id.into(),
63 role_id.into()
64 ))
65 .json(&data)
66 .auth(&self.authentication)
67 .send()
68 .await?
69 .process_error()
70 .await?
71 .json()
72 .await?)
73 }
74
75 pub async fn set_role_permission(
77 &self,
78 server_id: impl Into<String>,
79 role_id: impl Into<String>,
80 data: SetServerRolePermissionData,
81 ) -> Result<Server> {
82 Ok(self
83 .client
84 .put(ep!(
85 self,
86 "/servers/{}/permissions/{}",
87 server_id.into(),
88 role_id.into()
89 ))
90 .json(&data)
91 .auth(&self.authentication)
92 .send()
93 .await?
94 .process_error()
95 .await?
96 .json()
97 .await?)
98 }
99
100 pub async fn set_default_permission(
102 &self,
103 server_id: impl Into<String>,
104 data: SetDefaultRolePermissionData,
105 ) -> Result<Server> {
106 Ok(self
107 .client
108 .put(ep!(
109 self,
110 "/servers/{}/permissions/default",
111 server_id.into(),
112 ))
113 .json(&data)
114 .auth(&self.authentication)
115 .send()
116 .await?
117 .process_error()
118 .await?
119 .json()
120 .await?)
121 }
122}