Files
discordeno/src/helpers/roles/remove_role.ts
T
rigormorrtiss 6f280e7781 change(types): move error & file_content to discordeno/ (#903)
* refactor(types): move errors, file_content module to types/discordeno

* refactor(types): move error & file_content module to discordeno/

* Update and fix import statements
2021-05-05 17:19:28 +01:00

36 lines
838 B
TypeScript

import { botId } from "../../bot.ts";
import { rest } from "../../rest/rest.ts";
import { Errors } from "../../types/discordeno/errors.ts";
import { endpoints } from "../../util/constants.ts";
import {
isHigherPosition,
requireBotGuildPermissions,
} from "../../util/permissions.ts";
/** Remove a role from the member */
export async function removeRole(
guildId: bigint,
memberId: bigint,
roleId: bigint,
reason?: string,
) {
const isHigherRolePosition = await isHigherPosition(
guildId,
botId,
roleId,
);
if (
!isHigherRolePosition
) {
throw new Error(Errors.BOTS_HIGHEST_ROLE_TOO_LOW);
}
await requireBotGuildPermissions(guildId, ["MANAGE_ROLES"]);
return await rest.runMethod<undefined>(
"delete",
endpoints.GUILD_MEMBER_ROLE(guildId, memberId, roleId),
{ reason },
);
}