summary refs log tree commit diff
path: root/api/src
diff options
context:
space:
mode:
Diffstat (limited to 'api/src')
-rw-r--r--api/src/middlewares/TestClient.ts2
-rw-r--r--api/src/routes/channels/#channel_id/invites.ts7
-rw-r--r--api/src/routes/channels/#channel_id/messages/index.ts5
-rw-r--r--api/src/routes/guilds/#guild_id/invites.ts4
-rw-r--r--api/src/routes/guilds/#guild_id/members/#member_id/index.ts15
-rw-r--r--api/src/routes/invites/index.ts4
6 files changed, 16 insertions, 21 deletions
diff --git a/api/src/middlewares/TestClient.ts b/api/src/middlewares/TestClient.ts

index 75fdf650..73e7b9c2 100644 --- a/api/src/middlewares/TestClient.ts +++ b/api/src/middlewares/TestClient.ts
@@ -22,7 +22,7 @@ export default function TestClient(app: Application) { html = html.replace(/GATEWAY_ENDPOINT: .+/, `GATEWAY_ENDPOINT: \`${GATEWAY_ENDPOINT}\`,`); } - app.use("/assets", express.static(path.join(__dirname, "..", "assets"))); + app.use("/assets", express.static(path.join(__dirname, "..", "..", "assets"))); app.get("/assets/:file", async (req: Request, res: Response) => { delete req.headers.host; diff --git a/api/src/routes/channels/#channel_id/invites.ts b/api/src/routes/channels/#channel_id/invites.ts
index fcc8a1ad..fe22d3bc 100644 --- a/api/src/routes/channels/#channel_id/invites.ts +++ b/api/src/routes/channels/#channel_id/invites.ts
@@ -1,12 +1,9 @@ import { Router, Request, Response } from "express"; import { HTTPError } from "lambert-server"; - import { check } from "../../../util/instanceOf"; import { random } from "../../../util/RandomInviteID"; - import { InviteCreateSchema } from "../../../schema/Invite"; - -import { getPermission, Channel, Invite, InviteCreateEvent, emitEvent, User, Guild } from "@fosscord/util"; +import { getPermission, Channel, Invite, InviteCreateEvent, emitEvent, User, Guild, PublicInviteRelation } from "@fosscord/util"; import { isTextChannel } from "./messages"; const router: Router = Router(); @@ -74,7 +71,7 @@ router.get("/", async (req: Request, res: Response) => { const permission = await getPermission(user_id, guild_id); permission.hasThrow("MANAGE_CHANNELS"); - const invites = await Invite.find({ guild_id }); + const invites = await Invite.find({ where: { guild_id }, relations: PublicInviteRelation }); res.status(200).send(invites); }); diff --git a/api/src/routes/channels/#channel_id/messages/index.ts b/api/src/routes/channels/#channel_id/messages/index.ts
index 86de6de8..1a3150cf 100644 --- a/api/src/routes/channels/#channel_id/messages/index.ts +++ b/api/src/routes/channels/#channel_id/messages/index.ts
@@ -15,13 +15,13 @@ export default router; export function isTextChannel(type: ChannelType): boolean { switch (type) { + case ChannelType.GUILD_STORE: case ChannelType.GUILD_VOICE: case ChannelType.GUILD_CATEGORY: throw new HTTPError("not a text channel", 400); case ChannelType.DM: case ChannelType.GROUP_DM: case ChannelType.GUILD_NEWS: - case ChannelType.GUILD_STORE: case ChannelType.GUILD_TEXT: return true; } @@ -48,8 +48,7 @@ router.get("/", async (req: Request, res: Response) => { if (!limit) limit = 50; var halfLimit = Math.floor(limit / 2); - // @ts-ignore - const permissions = await getPermission(req.user_id, channel.guild_id, channel_id, { channel }); + const permissions = await getPermission(req.user_id, channel.guild_id, channel_id); permissions.hasThrow("VIEW_CHANNEL"); if (!permissions.has("READ_MESSAGE_HISTORY")) return res.json([]); diff --git a/api/src/routes/guilds/#guild_id/invites.ts b/api/src/routes/guilds/#guild_id/invites.ts
index 1843b689..39a934ee 100644 --- a/api/src/routes/guilds/#guild_id/invites.ts +++ b/api/src/routes/guilds/#guild_id/invites.ts
@@ -1,4 +1,4 @@ -import { getPermission, Invite } from "@fosscord/util"; +import { getPermission, Invite, PublicInviteRelation } from "@fosscord/util"; import { Request, Response, Router } from "express"; const router = Router(); @@ -9,7 +9,7 @@ router.get("/", async (req: Request, res: Response) => { const permissions = await getPermission(req.user_id, guild_id); permissions.hasThrow("MANAGE_GUILD"); - const invites = await Invite.find({ guild_id }); + const invites = await Invite.find({ where: { guild_id }, relations: PublicInviteRelation }); return res.json(invites); }); diff --git a/api/src/routes/guilds/#guild_id/members/#member_id/index.ts b/api/src/routes/guilds/#guild_id/members/#member_id/index.ts
index 7e79caad..0d62e555 100644 --- a/api/src/routes/guilds/#guild_id/members/#member_id/index.ts +++ b/api/src/routes/guilds/#guild_id/members/#member_id/index.ts
@@ -38,14 +38,13 @@ router.patch("/", check(MemberChangeSchema), async (req: Request, res: Response) member.roles = body.roles.map((x) => new Role({ id: x })); // foreign key constraint will fail if role doesn't exist } - Promise.all([ - member.save(), - emitEvent({ - event: "GUILD_MEMBER_UPDATE", - guild_id, - data: { ...member, roles: member.roles.map((x) => x.id) } - } as GuildMemberUpdateEvent) - ]); + await member.save(); + // do not use promise.all as we have to first write to db before emitting the event + await emitEvent({ + event: "GUILD_MEMBER_UPDATE", + guild_id, + data: { ...member, roles: member.roles.map((x) => x.id) } + } as GuildMemberUpdateEvent); res.json(member); }); diff --git a/api/src/routes/invites/index.ts b/api/src/routes/invites/index.ts
index 23fa3aec..b8c24c1f 100644 --- a/api/src/routes/invites/index.ts +++ b/api/src/routes/invites/index.ts
@@ -1,12 +1,12 @@ import { Router, Request, Response } from "express"; -import { getPermission, Guild, Invite, Member } from "@fosscord/util"; +import { getPermission, Guild, Invite, Member, PublicInviteRelation } from "@fosscord/util"; import { HTTPError } from "lambert-server"; const router: Router = Router(); router.get("/:code", async (req: Request, res: Response) => { const { code } = req.params; - const invite = await Invite.findOneOrFail({ code }); + const invite = await Invite.findOneOrFail({ where: { code }, relations: PublicInviteRelation }); res.status(200).send(invite); });