diff --git a/src/api/routes/guilds/#guild_id/roles/#role_id/member-ids.ts b/src/api/routes/guilds/#guild_id/roles/#role_id/member-ids.ts
index 6353e1f6..e0e7bd20 100644
--- a/src/api/routes/guilds/#guild_id/roles/#role_id/member-ids.ts
+++ b/src/api/routes/guilds/#guild_id/roles/#role_id/member-ids.ts
@@ -23,16 +23,18 @@ import { route } from "@spacebar/api";
const router = Router();
router.get("/", route({}), async (req: Request, res: Response) => {
- const { guild_id, role_id } = req.params;
- await Member.IsInGuildOrFail(req.user_id, guild_id);
- const members = await Member.find({
- select: ["id"],
- relations: ["roles"],
- });
- const member_ids = members.filter((member) => {
- return member.roles.map((role) => role.id).includes(role_id);
- }).map((member) => member.id);
- return res.json(member_ids);
+ const { guild_id, role_id } = req.params;
+ await Member.IsInGuildOrFail(req.user_id, guild_id);
+ const members = await Member.find({
+ select: ["id"],
+ relations: ["roles"],
+ });
+ const member_ids = members
+ .filter((member) => {
+ return member.roles.map((role) => role.id).includes(role_id);
+ })
+ .map((member) => member.id);
+ return res.json(member_ids);
});
export default router;
diff --git a/src/api/routes/guilds/#guild_id/roles/#role_id/members.ts b/src/api/routes/guilds/#guild_id/roles/#role_id/members.ts
index 26359a69..a1238382 100644
--- a/src/api/routes/guilds/#guild_id/roles/#role_id/members.ts
+++ b/src/api/routes/guilds/#guild_id/roles/#role_id/members.ts
@@ -23,31 +23,37 @@ import { route } from "@spacebar/api";
const router = Router();
router.patch(
- "/",
- route({ permission: "MANAGE_ROLES" }),
- async (req: Request, res: Response) => {
- // Payload is JSON containing a list of member_ids, the new list of members to have the role
- const { guild_id, role_id } = req.params;
- const { member_ids } = req.body;
- await Member.IsInGuildOrFail(req.user_id, guild_id);
- const members = await Member.find({
- where: { guild_id },
- relations: ["roles"],
- });
- const members_to_add = members.filter((member) => {
- return member_ids.includes(member.id) && !member.roles.map((role) => role.id).includes(role_id);
- });
- const members_to_remove = members.filter((member) => {
- return !member_ids.includes(member.id) && member.roles.map((role) => role.id).includes(role_id);
- });
- for (const member of members_to_add) {
- Member.addRole(member.id, guild_id, role_id);
- }
- for (const member of members_to_remove) {
- Member.removeRole(member.id, guild_id, role_id);
- }
- res.sendStatus(204);
- }
+ "/",
+ route({ permission: "MANAGE_ROLES" }),
+ async (req: Request, res: Response) => {
+ // Payload is JSON containing a list of member_ids, the new list of members to have the role
+ const { guild_id, role_id } = req.params;
+ const { member_ids } = req.body;
+ await Member.IsInGuildOrFail(req.user_id, guild_id);
+ const members = await Member.find({
+ where: { guild_id },
+ relations: ["roles"],
+ });
+ const members_to_add = members.filter((member) => {
+ return (
+ member_ids.includes(member.id) &&
+ !member.roles.map((role) => role.id).includes(role_id)
+ );
+ });
+ const members_to_remove = members.filter((member) => {
+ return (
+ !member_ids.includes(member.id) &&
+ member.roles.map((role) => role.id).includes(role_id)
+ );
+ });
+ for (const member of members_to_add) {
+ Member.addRole(member.id, guild_id, role_id);
+ }
+ for (const member of members_to_remove) {
+ Member.removeRole(member.id, guild_id, role_id);
+ }
+ res.sendStatus(204);
+ },
);
export default router;
|