diff --git a/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts b/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts
index f01b81c9..88c1219b 100644
--- a/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts
+++ b/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts
@@ -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");
+
+ 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);
+});
-// 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)
-// ]);
-
-// 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;
-
-// 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);
-// });
+// 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;
+
+ 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);
+});
export default router;
diff --git a/api/src/routes/guilds/#guild_id/roles/index.ts b/api/src/routes/guilds/#guild_id/roles/index.ts
index b6894e3f..53465105 100644
--- a/api/src/routes/guilds/#guild_id/roles/index.ts
+++ b/api/src/routes/guilds/#guild_id/roles/index.ts
@@ -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;
|