🐛 add MessageType enum

This commit is contained in:
Flam3rboy 2021-05-14 22:36:03 +02:00
commit 9fb7bf9491
5 changed files with 34 additions and 6 deletions

BIN
package-lock.json generated

Binary file not shown.

View File

@ -1,6 +1,6 @@
{ {
"name": "@fosscord/server-util", "name": "@fosscord/server-util",
"version": "1.1.5", "version": "1.1.6",
"description": "Utility functions for the all server repositories", "description": "Utility functions for the all server repositories",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",

View File

@ -1,3 +1,28 @@
import { VerifyOptions } from "jsonwebtoken"; import { VerifyOptions } from "jsonwebtoken";
export const JWTOptions: VerifyOptions = { algorithms: ["HS256"] }; export const JWTOptions: VerifyOptions = { algorithms: ["HS256"] };
export enum MessageType {
DEFAULT,
RECIPIENT_ADD,
RECIPIENT_REMOVE,
CALL,
CHANNEL_NAME_CHANGE,
CHANNEL_ICON_CHANGE,
CHANNEL_PINNED_MESSAGE,
GUILD_MEMBER_JOIN,
USER_PREMIUM_GUILD_SUBSCRIPTION,
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1,
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2,
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3,
CHANNEL_FOLLOW_ADD,
GUILD_DISCOVERY_DISQUALIFIED,
GUILD_DISCOVERY_REQUALIFIED,
GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING,
GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING,
THREAD_CREATED,
REPLY,
APPLICATION_COMMAND,
THREAD_STARTER_MESSAGE,
GUILD_INVITE_REMINDER,
}

View File

@ -6,6 +6,7 @@ import { ChannelPermissionOverwrite } from "../models/Channel";
import { Role, RoleModel } from "../models/Role"; import { Role, RoleModel } from "../models/Role";
import { BitField } from "./BitField"; import { BitField } from "./BitField";
import { GuildDocument, GuildModel } from "../models/Guild"; import { GuildDocument, GuildModel } from "../models/Guild";
// TODO: check role hierarchy permission
var HTTPError: any; var HTTPError: any;
@ -186,7 +187,7 @@ export class Permissions extends BitField {
} }
export async function getPermission( export async function getPermission(
user_id: string, user_id?: string,
guild_id?: string, guild_id?: string,
channel_id?: string, channel_id?: string,
cache?: { channel?: ChannelDocument | null; member?: MemberDocument | null; guild?: GuildDocument | null } cache?: { channel?: ChannelDocument | null; member?: MemberDocument | null; guild?: GuildDocument | null }
@ -194,6 +195,8 @@ export async function getPermission(
var { channel, member, guild } = cache || {}; var { channel, member, guild } = cache || {};
var roles; var roles;
if (!user_id) throw new HTTPError("User not found");
if (channel_id && !channel) { if (channel_id && !channel) {
channel = await ChannelModel.findOne( channel = await ChannelModel.findOne(
{ id: channel_id }, { id: channel_id },
@ -205,11 +208,11 @@ export async function getPermission(
if (guild_id) { if (guild_id) {
if (!guild) guild = await GuildModel.findOne({ id: guild_id }, { owner_id: true }).exec(); if (!guild) guild = await GuildModel.findOne({ id: guild_id }, { owner_id: true }).exec();
if (!guild) throw new Error("Guild not found"); if (!guild) throw new HTTPError("Guild not found");
if (guild.owner_id === user_id) return new Permissions(Permissions.FLAGS.ADMINISTRATOR); if (guild.owner_id === user_id) return new Permissions(Permissions.FLAGS.ADMINISTRATOR);
if (!member) member = await MemberModel.findOne({ guild_id, id: user_id }, "roles").exec(); if (!member) member = await MemberModel.findOne({ guild_id, id: user_id }, "roles").exec();
if (!member) throw new Error("Member not found"); if (!member) throw new HTTPError("Member not found");
roles = await RoleModel.find({ guild_id, id: { $in: member.roles } }).exec(); roles = await RoleModel.find({ guild_id, id: { $in: member.roles } }).exec();
} }

View File

@ -1,7 +1,7 @@
import { DOUBLE_WHITE_SPACE, SPECIAL_CHAR } from "./Regex"; import { SPECIAL_CHAR } from "./Regex";
export function trimSpecial(str?: string): string { export function trimSpecial(str?: string): string {
// @ts-ignore // @ts-ignore
if (!str) return; if (!str) return;
return str.replace(SPECIAL_CHAR, "").replace(DOUBLE_WHITE_SPACE, " ").trim(); return str.replace(SPECIAL_CHAR, "").trim();
} }