🐛 add MessageType enum
This commit is contained in:
commit
9fb7bf9491
BIN
package-lock.json
generated
BIN
package-lock.json
generated
Binary file not shown.
@ -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",
|
||||||
|
|||||||
@ -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,
|
||||||
|
}
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user