diff --git a/api/src/routes/channels/#channel_id/index.ts b/api/src/routes/channels/#channel_id/index.ts
index 91534602..4aa5a5b9 100644
--- a/api/src/routes/channels/#channel_id/index.ts
+++ b/api/src/routes/channels/#channel_id/index.ts
@@ -1,4 +1,4 @@
-import { ChannelDeleteEvent, Channel, ChannelUpdateEvent, emitEvent, getPermission, GuildUpdateEvent, toObject } from "@fosscord/util";
+import { ChannelDeleteEvent, Channel, ChannelUpdateEvent, emitEvent, getPermission } from "@fosscord/util";
import { Router, Response, Request } from "express";
import { HTTPError } from "lambert-server";
import { ChannelModifySchema } from "../../../schema/Channel";
@@ -23,7 +23,7 @@ router.delete("/", async (req: Request, res: Response) => {
const channel = await Channel.findOneOrFail({ id: channel_id });
- const permission = await getPermission(req.user_id, channel?.guild_id, channel_id, { channel });
+ const permission = await getPermission(req.user_id, channel?.guild_id, channel_id);
permission.hasThrow("MANAGE_CHANNELS");
// TODO: Dm channel "close" not delete
@@ -31,7 +31,7 @@ router.delete("/", async (req: Request, res: Response) => {
await emitEvent({ event: "CHANNEL_DELETE", data, channel_id } as ChannelDeleteEvent);
- await Channel.deleteOne({ id: channel_id });
+ await Channel.delete({ id: channel_id });
res.send(data);
});
@@ -43,17 +43,19 @@ router.patch("/", check(ChannelModifySchema), async (req: Request, res: Response
const permission = await getPermission(req.user_id, undefined, channel_id);
permission.hasThrow("MANAGE_CHANNELS");
- const channel = await Channel.findOneOrFailAndUpdate({ id: channel_id }, payload, { new: true });
-
- const data = channel;
-
- await emitEvent({
- event: "CHANNEL_UPDATE",
- data,
- channel_id
- } as ChannelUpdateEvent);
-
- res.send(data);
+ const channel = await Channel.findOneOrFail({ id: channel_id });
+ channel.assign(payload);
+
+ await Promise.all([
+ channel.save(),
+ emitEvent({
+ event: "CHANNEL_UPDATE",
+ data: channel,
+ channel_id
+ } as ChannelUpdateEvent)
+ ]);
+
+ res.send(channel);
});
export default router;
|