mirror of
https://github.com/spacebarchat/server.git
synced 2026-08-14 11:10:21 +00:00
Create webhooks
This commit is contained in:
@@ -40,7 +40,7 @@ router.post(
|
||||
|
||||
const invite = await Invite.create({
|
||||
code: random(),
|
||||
temporary: req.body.temporary,
|
||||
temporary: req.body.temporary || true,
|
||||
uses: 0,
|
||||
max_uses: req.body.max_uses,
|
||||
max_age: req.body.max_age,
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { Router, Response, Request } from "express";
|
||||
import { route } from "@fosscord/api";
|
||||
import { Channel, Config, trimSpecial, Webhook } from "@fosscord/util";
|
||||
import { Channel, Config, handleFile, trimSpecial, User, Webhook, WebhookCreateSchema, WebhookType } from "@fosscord/util";
|
||||
import { HTTPError } from "lambert-server";
|
||||
import { isTextChannel } from "./messages/index";
|
||||
import { DiscordApiErrors } from "@fosscord/util";
|
||||
import crypto from "crypto";
|
||||
|
||||
const router: Router = Router();
|
||||
|
||||
@@ -30,11 +31,32 @@ router.post(
|
||||
if (webhook_count > maxWebhooks)
|
||||
throw DiscordApiErrors.MAXIMUM_WEBHOOKS.withParams(maxWebhooks);
|
||||
|
||||
var { avatar, name } = req.body as { name: string; avatar?: string };
|
||||
var { avatar, name } = req.body as WebhookCreateSchema;
|
||||
name = trimSpecial(name);
|
||||
if (name === "clyde") throw new HTTPError("Invalid name", 400);
|
||||
|
||||
// TODO: save webhook in database and send response
|
||||
// TODO: move this
|
||||
if (name === "clyde") throw new HTTPError("Invalid name", 400);
|
||||
if (name === "Fosscord Ghost") throw new HTTPError("Invalid name", 400);
|
||||
|
||||
if (avatar)
|
||||
avatar = await handleFile(`/avatars/${channel_id}`, avatar);
|
||||
|
||||
const hook = Webhook.create({
|
||||
type: WebhookType.Incoming,
|
||||
name,
|
||||
avatar,
|
||||
guild_id: channel.guild_id,
|
||||
channel_id: channel.id,
|
||||
user_id: req.user_id,
|
||||
token: crypto.randomBytes(24).toString("base64"),
|
||||
});
|
||||
|
||||
const user = await User.getPublicUser(req.user_id);
|
||||
|
||||
return res.json({
|
||||
...hook,
|
||||
user: user,
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user