From a80036fc122b2bb991dd671bbc49b83be538a8fd Mon Sep 17 00:00:00 2001 From: Fleny Date: Sun, 18 Aug 2024 08:57:22 +0200 Subject: [PATCH] Add get guild role endpoint (#3861) --- packages/bot/src/helpers.ts | 4 ++++ packages/rest/src/manager.ts | 4 ++++ packages/rest/src/types.ts | 10 ++++++++++ 3 files changed, 18 insertions(+) diff --git a/packages/bot/src/helpers.ts b/packages/bot/src/helpers.ts index af2646078..43d19efac 100644 --- a/packages/bot/src/helpers.ts +++ b/packages/bot/src/helpers.ts @@ -437,6 +437,9 @@ export function createBotHelpers(bot: Bot): BotHelpers { getRoles: async (guildId) => { return snakelize(await bot.rest.getRoles(guildId)).map((role) => bot.transformers.role(bot, { role, guildId })) }, + getRole: async (guildId, roleId) => { + return bot.transformers.role(bot, { role: snakelize(await bot.rest.getRole(guildId, roleId)), guildId }) + }, getScheduledEvent: async (guildId, eventId, options) => { return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.getScheduledEvent(guildId, eventId, options))) }, @@ -876,6 +879,7 @@ export interface BotHelpers { getPruneCount: (guildId: BigString, options?: GetGuildPruneCountQuery) => Promise getPublicArchivedThreads: (channelId: BigString, options?: ListArchivedThreads) => Promise getRoles: (guildId: BigString) => Promise + getRole: (guildId: BigString, roleId: BigString) => Promise getScheduledEvent: (guildId: BigString, eventId: BigString, options?: { withUserCount?: boolean }) => Promise getScheduledEvents: (guildId: BigString, options?: GetScheduledEvents) => Promise getScheduledEventUsers: ( diff --git a/packages/rest/src/manager.ts b/packages/rest/src/manager.ts index 6d4183087..5dd8b57a3 100644 --- a/packages/rest/src/manager.ts +++ b/packages/rest/src/manager.ts @@ -1293,6 +1293,10 @@ export function createRestManager(options: CreateRestManagerOptions): RestManage return await rest.get(rest.routes.guilds.roles.all(guildId)) }, + async getRole(guildId, roleId) { + return await rest.get(rest.routes.guilds.roles.one(guildId, roleId)) + }, + async getScheduledEvent(guildId, eventId, options) { return await rest.get(rest.routes.guilds.events.event(guildId, eventId, options?.withUserCount)) }, diff --git a/packages/rest/src/types.ts b/packages/rest/src/types.ts index 2823ab740..dba310a26 100644 --- a/packages/rest/src/types.ts +++ b/packages/rest/src/types.ts @@ -2170,6 +2170,16 @@ export interface RestManager { * @see {@link https://discord.com/developers/docs/resources/guild#get-guild-roles} */ getRoles: (guildId: BigString) => Promise + /** + * Gets a role by id for a guild. + * + * @param guildId - The ID of the guild to get role for. + * @param roleID - The ID of the role. + * @returns A {@link CamelizedDiscordRole} object. + * + * @see {@link https://discord.com/developers/docs/resources/guild#get-guild-role} + */ + getRole: (guildId: BigString, roleId: BigString) => Promise /** * Gets a scheduled event by its ID. *