summary refs log tree commit diff
path: root/src/routes/users/@me/channels.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/users/@me/channels.ts')
-rw-r--r--src/routes/users/@me/channels.ts54
1 files changed, 18 insertions, 36 deletions
diff --git a/src/routes/users/@me/channels.ts b/src/routes/users/@me/channels.ts

index 45371b34..3b2b6781 100644 --- a/src/routes/users/@me/channels.ts +++ b/src/routes/users/@me/channels.ts
@@ -1,8 +1,4 @@ -import { - Router, - Request, - Response -} from "express"; +import { Router, Request, Response } from "express"; import { ChannelModel, ChannelCreateEvent, @@ -10,39 +6,23 @@ import { UserModel, toObject, ChannelType, - Snowflake + Snowflake, + trimSpecial, } from "@fosscord/server-util"; -import { - HTTPError -} from "lambert-server"; -import { - emitEvent -} from "../../../util/Event"; -import { - getPublicUser -} from "../../../util/User"; -import { - DmChannelCreateSchema -} from "../../../schema/Channel"; -import { - check -} from "../../../util/instanceOf"; +import { HTTPError } from "lambert-server"; +import { emitEvent } from "../../../util/Event"; +import { getPublicUser } from "../../../util/User"; +import { DmChannelCreateSchema } from "../../../schema/Channel"; +import { check } from "../../../util/instanceOf"; const router: Router = Router(); router.get("/", async (req: Request, res: Response) => { - const user = await UserModel.findOne({ - id: req.user_id - }, { - guilds: true - }).exec(); - if (!user) throw new HTTPError("User not found", 404); - - var testID = "829044530203328513"; //FOR TEST - var channels = await ChannelModel.find({ - recipients: req.user_id, - type: 1 + $or: [ + { recipients: req.user_id, type: ChannelType.DM }, + { recipients: req.user_id, type: ChannelType.GROUP_DM }, + ], }).exec(); res.json(toObject(channels)); @@ -50,20 +30,22 @@ router.get("/", async (req: Request, res: Response) => { router.post("/", check(DmChannelCreateSchema), async (req, res) => { const body = req.body as DmChannelCreateSchema; + if (body.recipients.length === 0) throw new HTTPError("You need to specify at least one recipient"); + const type = body.recipients.length === 1 ? ChannelType.DM : ChannelType.GROUP_DM; + const name = trimSpecial(body.name); const channel = { - ...body, + name, + type, owner_id: req.user_id, id: Snowflake.generate(), - type: ChannelType.DM, created_at: new Date(), }; await new ChannelModel(channel).save(); /*Event({ event: "CHANNEL_CREATE", data: channel } as ChannelCreateEvent);*/ - res.json(channel); }); -export default router; \ No newline at end of file +export default router;