Compare commits

...

3 commits

Author SHA1 Message Date
aecbcaefba
feat: add hasPermission util to check if a member has a specific permission
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
2025-08-07 06:32:04 +02:00
695bdbc777
feat: update GuildResponse and GuildMemberResponse interfaces to match backend 2025-08-07 06:31:44 +02:00
4dbe548efc
feat: create enums.ts file and add Permission enum 2025-08-07 06:31:15 +02:00
3 changed files with 26 additions and 3 deletions

11
types/enums.ts Normal file
View file

@ -0,0 +1,11 @@
export const enum Permission {
SendMessage = 1,
ManageChannel = 2,
ManageRole = 4,
CreateInvite = 8,
ManageInvite = 16,
ManageGuild = 32,
ManageMember = 64,
BanMember = 128,
KickMember = 256
}

View file

@ -19,16 +19,17 @@ export interface GuildResponse {
description: string | null,
icon: string | null,
owner_uuid: string,
roles: [],
roles: RoleResponse[],
member_count: number
}
export interface GuildMemberResponse {
uuid: string,
nickname: string,
user_uuid: string,
guild_uuid: string,
user: UserResponse
is_owner: boolean,
user: UserResponse,
roles: RoleResponse[]
}
export interface ChannelResponse {

11
utils/hasPermission.ts Normal file
View file

@ -0,0 +1,11 @@
import type { Permission } from "~/types/enums";
import type { GuildMemberResponse } from "~/types/interfaces";
export default (member: GuildMemberResponse, permission: Permission) => {
for (const role of member.roles) {
if (role.permissions & permission) {
return true;
}
}
return false;
}