From bb6b8df2cfaf0ad76cd331635962aacceeda4a1f Mon Sep 17 00:00:00 2001 From: Fleny Date: Sun, 11 Aug 2024 02:36:29 +0200 Subject: [PATCH] Add get sticker pack endpoint (#3844) --- packages/bot/src/helpers.ts | 4 ++++ packages/rest/src/manager.ts | 4 ++++ packages/rest/src/routes.ts | 4 ++++ packages/rest/src/types.ts | 8 ++++++++ packages/rest/src/typings/routes.ts | 1 + 5 files changed, 21 insertions(+) diff --git a/packages/bot/src/helpers.ts b/packages/bot/src/helpers.ts index 8c4d8c130..af2646078 100644 --- a/packages/bot/src/helpers.ts +++ b/packages/bot/src/helpers.ts @@ -406,6 +406,9 @@ export function createBotHelpers(bot: Bot): BotHelpers { getMessages: async (channelId, options) => { return (await bot.rest.getMessages(channelId, options)).map((res) => bot.transformers.message(bot, snakelize(res))) }, + getStickerPack: async (stickerPackId) => { + return bot.transformers.stickerPack(bot, snakelize(await bot.rest.getStickerPack(stickerPackId))) + }, getStickerPacks: async () => { return (await bot.rest.getStickerPacks()).map((res) => bot.transformers.stickerPack(bot, snakelize(res))) }, @@ -864,6 +867,7 @@ export interface BotHelpers { getInvites: (guildId: BigString) => Promise getMessage: (channelId: BigString, messageId: BigString) => Promise getMessages: (channelId: BigString, options?: GetMessagesOptions) => Promise + getStickerPack: (stickerPackId: BigString) => Promise getStickerPacks: () => Promise getOriginalInteractionResponse: (token: string) => Promise getPinnedMessages: (channelId: BigString) => Promise diff --git a/packages/rest/src/manager.ts b/packages/rest/src/manager.ts index 4c0c4eaa5..b789d16cc 100644 --- a/packages/rest/src/manager.ts +++ b/packages/rest/src/manager.ts @@ -1257,6 +1257,10 @@ export function createRestManager(options: CreateRestManagerOptions): RestManage return await rest.get(rest.routes.channels.messages(channelId, options)) }, + async getStickerPack(stickerPackId) { + return await rest.get(rest.routes.stickerPack(stickerPackId)) + }, + async getStickerPacks() { return await rest.get(rest.routes.stickerPacks()) }, diff --git a/packages/rest/src/routes.ts b/packages/rest/src/routes.ts index b7b66ff9d..ca8cf1290 100644 --- a/packages/rest/src/routes.ts +++ b/packages/rest/src/routes.ts @@ -620,6 +620,10 @@ export function createRoutes(): RestRoutes { return '/gateway/bot' }, + stickerPack(stickerPackId) { + return `/sticker-packs/${stickerPackId}` + }, + stickerPacks() { return '/sticker-packs' }, diff --git a/packages/rest/src/types.ts b/packages/rest/src/types.ts index 7d30f6312..2823ab740 100644 --- a/packages/rest/src/types.ts +++ b/packages/rest/src/types.ts @@ -2045,6 +2045,14 @@ export interface RestManager { * @see {@link https://discord.com/developers/docs/resources/channel#get-channel-messages} */ getMessages: (channelId: BigString, options?: GetMessagesOptions) => Promise + /** + * Returns a sticker pack for the given ID. + * + * @returns A {@link CamelizedDiscordStickerPack} object. + * + * @see {@link https://discord.com/developers/docs/resources/sticker#get-sticker-pack} + */ + getStickerPack: (stickerPackId: BigString) => Promise /** * Returns the list of sticker packs available. * diff --git a/packages/rest/src/typings/routes.ts b/packages/rest/src/typings/routes.ts index 543053c6a..9d6a80c86 100644 --- a/packages/rest/src/typings/routes.ts +++ b/packages/rest/src/typings/routes.ts @@ -21,6 +21,7 @@ export interface RestRoutes { gatewayBot: () => string // Standard Sticker Packs stickerPacks: () => string + stickerPack: (stickerPackId: BigString) => string /** Routes for webhook related routes. */ webhooks: { /** Route for managing the original message sent by a webhook. */