summary refs log tree commit diff
path: root/src/routes/channels/#channel_id/typing.ts
blob: f0ca138c5e3194aee2c4d1420db09f599b0726d9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { ChannelModel, MemberModel, toObject, TypingStartEvent } from "@fosscord/server-util";
import { Router, Request, Response } from "express";

import { HTTPError } from "lambert-server";
import { emitEvent } from "../../../util/Event";

const router: Router = Router();

router.post("/", async (req: Request, res: Response) => {
    const { channel_id } = req.params;
    const user_id = req.user_id;
    const timestamp = Date.now()
    const channel = await ChannelModel.findOne({ id: channel_id });
    if (!channel) throw new HTTPError("Channel not found", 404)
    const member = await MemberModel.findOne({ id: user_id }).exec()
    if (!member) throw new HTTPError("Member not found", 404)


    await emitEvent({
        event: "TYPING_START",
        channel_id: channel_id,
        guild_id: channel.guild_id,
        data: { // this is the paylod
            member: toObject(member),
            channel_id,
            timestamp,
            user_id,
            guild_id: channel.guild_id
        }
    } as TypingStartEvent)
    res.sendStatus(204)
});

export default router;