API: Edit role.

This commit is contained in:
Paul
2021-07-14 13:20:57 +01:00
parent 57e8d1711d
commit dd66ad0abf
4 changed files with 27 additions and 3 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "revolt.js",
"version": "4.3.3-alpha.14",
"version": "4.3.3-alpha.15",
"main": "dist/index.js",
"repository": "https://gitlab.insrt.uk/revolt/revolt.js",
"author": "Paul Makles <insrt.uk>",
+2 -2
View File
@@ -28,8 +28,8 @@ export const ServerPermission = {
BanMembers: 0b00000000000000000000000000100000, // 32
ChangeNickname: 0b00000000000000000001000000000000, // 4096
ManageNicknames: 0b00000000000000000010000000000000, // 8192
ChangeAvatar: 0b00000000000000000100000000000000, // 16392
RemoveAvatars: 0b00000000000000001000000000000000, // 32784
ChangeAvatar: 0b00000000000000000100000000000000, // 16382
RemoveAvatars: 0b00000000000000001000000000000000, // 32768
}
const U32_MAX = 2**32 - 1; // 4294967295
+12
View File
@@ -4,6 +4,7 @@ export type RemoveUserField = 'ProfileContent' | 'ProfileBackground' | 'StatusTe
export type RemoveChannelField = 'Icon' | 'Description';
export type RemoveServerField = 'Icon' | 'Banner' | 'Description';
export type RemoveMemberField = 'Nickname' | 'Avatar';
export type RemoveRoleField = 'Colour';
type Id = 'id';
type Routes =
@@ -585,6 +586,17 @@ type Routes =
permissions: Servers.PermissionTuple
}
}
| {
// Edit a role.
method: 'PATCH',
route: `/servers/${Id}/roles/${Id}`,
data: {
name?: string,
colour?: string,
remove?: RemoveRoleField
},
response: undefined
}
| {
// Delete role
method: 'DELETE',
+12
View File
@@ -161,6 +161,18 @@ export default class Servers extends Collection<Server> {
return await this.client.req('POST', `/servers/${id}/roles` as '/servers/id/roles', { name });
}
/**
* Edit a role
* @param id ID of the target server
* @param role_id Role ID
* @param data Role editing route data
*/
async editRole(id: string, role_id: string, data: Route<'PATCH', '/servers/id/roles/id'>["data"]) {
let server = this.getThrow(id);
if (typeof server.roles?.[role_id] === 'undefined') return;
await this.client.req('PATCH', `/servers/${id}/roles/${role_id}` as '/servers/id/roles/id', data);
}
/**
* Delete role
* @param id Server ID