Update welcome_screen.ts
This commit is contained in:
parent
2d73dffa9a
commit
e3ce017aed
@ -3,22 +3,25 @@ import { GuildModel, getPermission, toObject, Snowflake } from "@fosscord/server
|
|||||||
import { HTTPError } from "lambert-server";
|
import { HTTPError } from "lambert-server";
|
||||||
import { emitEvent } from "../../../util/Event";
|
import { emitEvent } from "../../../util/Event";
|
||||||
import { check } from "../../../util/instanceOf";
|
import { check } from "../../../util/instanceOf";
|
||||||
|
import { isMember } from "../../../util/Member";
|
||||||
import { GuildAddChannelToWelcomeScreenSchema } from "../../../schema/Guild";
|
import { GuildAddChannelToWelcomeScreenSchema } from "../../../schema/Guild";
|
||||||
import { getPublicUser } from "../../../util/User";
|
import { getPublicUser } from "../../../util/User";
|
||||||
|
|
||||||
const router: Router = Router();
|
const router: Router = Router();
|
||||||
|
|
||||||
router.get("/", async (req: Request, res: Response) => {
|
router.get("/", async (req: Request, res: Response) => {
|
||||||
const guild_id = req.params.id;
|
const guild_id = req.params.guild_id;
|
||||||
|
|
||||||
const guild = await GuildModel.findOne({ id: guild_id });
|
const guild = await GuildModel.findOne({ id: guild_id });
|
||||||
if (!guild) throw new HTTPError("Guild not found", 404);
|
if (!guild) throw new HTTPError("Guild not found", 404);
|
||||||
|
|
||||||
|
if(!isMember(req.user_id, guild_id)) throw new HTTPError("You are not member of this guild", 403);
|
||||||
|
|
||||||
res.json(toObject(guild.welcome_screen));
|
res.json(toObject(guild.welcome_screen));
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post("/", check(GuildAddChannelToWelcomeScreenSchema), async (req: Request, res: Response) => {
|
router.post("/", check(GuildAddChannelToWelcomeScreenSchema), async (req: Request, res: Response) => {
|
||||||
const guild_id = req.params.id;
|
const guild_id = req.params.guild_id;
|
||||||
const body = req.body as GuildAddChannelToWelcomeScreenSchema;
|
const body = req.body as GuildAddChannelToWelcomeScreenSchema;
|
||||||
|
|
||||||
const guild = await GuildModel.findOne({ id: guild_id }).exec();
|
const guild = await GuildModel.findOne({ id: guild_id }).exec();
|
||||||
@ -28,6 +31,11 @@ router.post("/", check(GuildAddChannelToWelcomeScreenSchema), async (req: Reques
|
|||||||
...body
|
...body
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!isMember(req.user_id, guild_id)) throw new HTTPError("You are not member of this guild", 403);
|
||||||
|
const perms = await getPermission(req.user_id, guild_id);
|
||||||
|
perms.hasThrow("MANAGE_GUILD");
|
||||||
|
|
||||||
|
if(!guild.welcome_screen.enabled) throw new HTTPError("Welcome screen disabled", 400);
|
||||||
if(guild.welcome_screen.welcome_channels.some(channel => channel.channel_id === body.channel_id)) throw new Error("Welcome Channel exists")
|
if(guild.welcome_screen.welcome_channels.some(channel => channel.channel_id === body.channel_id)) throw new Error("Welcome Channel exists")
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user