1
0
mirror of https://github.com/spacebarchat/server.git synced 2024-11-10 12:42:44 +01:00

Move role_id specific api routes to correct file

This commit is contained in:
LachlanCourt 2022-07-05 00:42:03 +10:00 committed by Erkin Alp Güney
parent e91a8decea
commit 6a801eafbf
2 changed files with 46 additions and 130 deletions

View File

@ -1,18 +1,15 @@
import { Router, Request, Response } from "express";
import {
Role,
getPermission,
Member,
GuildRoleCreateEvent,
GuildRoleUpdateEvent,
GuildRoleDeleteEvent,
emitEvent,
Config,
DiscordApiErrors,
handleFile
handleFile
} from "@fosscord/util";
import { route } from "@fosscord/api";
import {RoleModifySchema, RolePositionUpdateSchema} from '../'
import { HTTPError } from "lambert-server";
import {RoleModifySchema} from '../'
const router = Router();
@ -24,84 +21,56 @@ router.get("/",route({}), async (req: Request, res: Response) => {
return res.json(role);
});
router.delete("/", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => {
const { guild_id, role_id } = req.params;
if (role_id === guild_id) throw new HTTPError("You can't delete the @everyone role");
// router.delete("/", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => {
// const { guild_id, role_id } = req.params;
// if (role_id === guild_id) throw new HTTPError("You can't delete the @everyone role");
await Promise.all([
Role.delete({
id: role_id,
guild_id: guild_id
}),
emitEvent({
event: "GUILD_ROLE_DELETE",
guild_id,
data: {
guild_id,
role_id
}
} as GuildRoleDeleteEvent)
]);
// await Promise.all([
// Role.delete({
// id: role_id,
// guild_id: guild_id
// }),
// emitEvent({
// event: "GUILD_ROLE_DELETE",
// guild_id,
// data: {
// guild_id,
// role_id
// }
// } as GuildRoleDeleteEvent)
// ]);
res.sendStatus(204);
});
// res.sendStatus(204);
// });
// TODO: check role hierarchy
// // TODO: check role hierarchy
router.patch("/", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => {
const { role_id, guild_id } = req.params;
const body = req.body as RoleModifySchema;
// router.patch("/:role_id", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => {
// const { role_id, guild_id } = req.params;
// const body = req.body as RoleModifySchema;
if (body.icon) body.icon = await handleFile(`/role-icons/${role_id}`, body.icon as string);
// if (body.icon) body.icon = await handleFile(`/role-icons/${role_id}`, body.icon as string);
const role = new Role({
...body,
id: role_id,
guild_id,
permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0"))
});
// const role = new Role({
// ...body,
// id: role_id,
// guild_id,
// permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0"))
// });
await Promise.all([
role.save(),
emitEvent({
event: "GUILD_ROLE_UPDATE",
guild_id,
data: {
guild_id,
role
}
} as GuildRoleUpdateEvent)
]);
// await Promise.all([
// role.save(),
// emitEvent({
// event: "GUILD_ROLE_UPDATE",
// guild_id,
// data: {
// guild_id,
// role
// }
// } as GuildRoleUpdateEvent)
// ]);
// res.json(role);
// });
// router.patch("/", route({ body: "RolePositionUpdateSchema" }), async (req: Request, res: Response) => {
// const { guild_id } = req.params;
// const body = req.body as RolePositionUpdateSchema;
// const perms = await getPermission(req.user_id, guild_id);
// perms.hasThrow("MANAGE_ROLES");
// await Promise.all(body.map(async (x) => Role.update({ guild_id, id: x.id }, { position: x.position })));
// const roles = await Role.find({ where: body.map((x) => ({ id: x.id, guild_id })) });
// await Promise.all(
// roles.map((x) =>
// emitEvent({
// event: "GUILD_ROLE_UPDATE",
// guild_id,
// data: {
// guild_id,
// role: x
// }
// } as GuildRoleUpdateEvent)
// )
// );
// res.json(roles);
// });
res.json(role);
});
export default router;

View File

@ -81,59 +81,6 @@ router.post("/", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" })
res.json(role);
});
router.delete("/:role_id", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => {
const guild_id = req.params.guild_id;
const { role_id } = req.params;
if (role_id === guild_id) throw new HTTPError("You can't delete the @everyone role");
await Promise.all([
Role.delete({
id: role_id,
guild_id: guild_id
}),
emitEvent({
event: "GUILD_ROLE_DELETE",
guild_id,
data: {
guild_id,
role_id
}
} as GuildRoleDeleteEvent)
]);
res.sendStatus(204);
});
// TODO: check role hierarchy
router.patch("/:role_id", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => {
const { role_id, guild_id } = req.params;
const body = req.body as RoleModifySchema;
if (body.icon) body.icon = await handleFile(`/role-icons/${role_id}`, body.icon as string);
const role = new Role({
...body,
id: role_id,
guild_id,
permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0"))
});
await Promise.all([
role.save(),
emitEvent({
event: "GUILD_ROLE_UPDATE",
guild_id,
data: {
guild_id,
role
}
} as GuildRoleUpdateEvent)
]);
res.json(role);
});
router.patch("/", route({ body: "RolePositionUpdateSchema" }), async (req: Request, res: Response) => {
const { guild_id } = req.params;
const body = req.body as RolePositionUpdateSchema;