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:
parent
e91a8decea
commit
6a801eafbf
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user