summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/routes/channels/#channel_id/index.ts14
-rw-r--r--src/routes/guilds/#guild_id/channels.ts3
2 files changed, 11 insertions, 6 deletions
diff --git a/src/routes/channels/#channel_id/index.ts b/src/routes/channels/#channel_id/index.ts

index 730c1a67..d1c64267 100644 --- a/src/routes/channels/#channel_id/index.ts +++ b/src/routes/channels/#channel_id/index.ts
@@ -1,4 +1,4 @@ -import { ChannelDeleteEvent, ChannelModel, ChannelUpdateEvent, getPermission, toObject } from "@fosscord/server-util"; +import { ChannelDeleteEvent, ChannelModel, ChannelUpdateEvent, getPermission, GuildUpdateEvent, toObject } from "@fosscord/server-util"; import { Router } from "express"; import { HTTPError } from "lambert-server"; import { ChannelModifySchema } from "../../../schema/Channel"; @@ -11,17 +11,21 @@ const router: Router = Router(); router.delete("/", async (req, res) => { const { channel_id } = req.params - const channel = await ChannelModel.findOne({ id: channel_id }, { guild_id: true, type: true, permission_overwrites: true }).exec(); + const channel = await ChannelModel.findOne({ id: channel_id }).exec(); if (!channel) throw new HTTPError("Channel not found", 404); - const permission = await getPermission(req.user_id, channel.guild_id) - permission.hasThrow("MANAGE_CHANNELS") + if (channel.guild_id) { - // TODO Channel Update Gateway event will fire for each of them + const permission = await getPermission(req.user_id, channel.guild_id) + permission.hasThrow("MANAGE_CHANNELS") + } + // TODO Channel Update Gateway event will fire for each of them await ChannelModel.deleteOne({ id: channel_id }) // TODO: Dm channel "close" not delete + + await emitEvent({ event: "CHANNEL_DELETE", data: channel, guild_id: channel_id, channel_id} as ChannelDeleteEvent); const data = toObject(channel); //TODO: Reload channel list if request successful diff --git a/src/routes/guilds/#guild_id/channels.ts b/src/routes/guilds/#guild_id/channels.ts
index d42ba481..19d466f3 100644 --- a/src/routes/guilds/#guild_id/channels.ts +++ b/src/routes/guilds/#guild_id/channels.ts
@@ -31,8 +31,9 @@ router.post("/", check(ChannelModifySchema), async (req, res) => { } if (body.parent_id) { - const exists = ChannelModel.findOne({ channel_id: body.parent_id }).exec(); + const exists = await ChannelModel.findOne({ id: body.parent_id }, {guild_id:true}).exec(); if (!exists) throw new HTTPError("Parent id channel doesn't exist", 400); + if (exists.guild_id !== guild_id) throw new HTTPError("The category channel needs to be in the guild") } const guild = await GuildModel.findOne({ id: guild_id }, { id: true }).exec();