Files
discordeno/helpers/guilds/getGuildPreview.ts
T
Dorian OszczędaandSkillz4Killz c9659bca4c feat!: Add return types to helper functions. (#2395)
* feat: Add return types to forum channel helpers.

* fix: Use Discord-defined property names. Add `flags` property.

* feat: Add return types to thread channel helpers.

* feat: Add return types to channel helpers.

* feat: Add return types to server discovery helpers.

* misc!: Consistency: 'remove' -> 'delete'.

* misc!: Add `get` keyword to function and file name.

* feat: Add return types to emoji helpers.

* misc!: Remove unused `bot` parameter. Capitalise 'URL'.

* feat: Add return types to guild automod helpers.

* feat: Add return types to guild scheduled event helpers.

* misc!: Consistency: Rename `emojiURL` to `getEmojiURL`.

* feat: Add return types to guild helpers.

* misc!: Consistency: Add 'get' keyword to function and file names.

* feat: Add return types to invite helpers.

* feat: Add return types to integration helpers.

* feat: Add return types to application command helpers.

* feat: Add return types to followup message helpers.

* feat: Add return types to interaction response helpers.

* feat: Add return type to `createInvite()`.

* feat: Add return types to member helpers.

* misc!: Consistency: Add 'get' keyword to function and file names.

* feat: Add return types to message helpers.

* misc!: Consistency: 'remove' -> 'delete'.

* fix: Use `slice()` to prevent unwanted side effects.

* feat: Add return types to miscellaneous helpers.

* misc!: Consistency: Add 'get' keyword to function and file names.

* feat: Add return types to role helpers.

* feat: Add return types to oauth helpers.

* feat: Add return types to template helpers.

* misc!: Consistency: Add 'guild' keyword to name.

* feat: Add return types to voice helpers.

* fix: Name function correctly.

* feat: Add return types to webhook helpers.

* misc!: Consistency: Rename `sendWebhook` to `sendWebhookMessage`.

* misc: Update exports.

* fix: Imports.

* fix: Change return collection key type from `string` to `bigint`. Remove redundant code.

* misc: Remove `undefined` from `runMethod()` return type.

* style: Remove redundant types.

* style: Rename endpoint call result variables to `result` and `results`.

* misc: Reintroduce `bot` as first parameter.

* misc: Adapt tests to changes made to helpers.

* fix: Object being transformed twice.

* style: Improve naming consistency of remaining files.

* misc: `bigint` -> `number`.

* style: Remove explicit `undefined` return.

* style: Remove `void` operator in favour of generic type.

* misc: Add missing `await` keyword.

Co-authored-by: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com>

* style: Make `reason` property optional instead of `undefined`-able.

* misc: Write out properties manually instead of using the spread operator.

Co-authored-by: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com>
2022-08-28 07:17:08 -04:00

43 lines
1.5 KiB
TypeScript

import type { Bot } from "../../bot.ts";
import { Emoji } from "../../transformers/emoji.ts";
import { Sticker } from "../../transformers/sticker.ts";
import { DiscordGuildPreview } from "../../types/discord.ts";
import { GuildFeatures } from "../../types/shared.ts";
export type GuildPreview = {
id: bigint;
name?: string;
icon?: string;
splash?: string;
discoverySplash?: string;
emojis?: Emoji[];
features: GuildFeatures[];
approximateMemberCount: number;
approximatePresenceCount: number;
description?: string;
stickers: Sticker[];
};
/** Returns the guild preview object for the given id. If the bot is not in the guild, then the guild must be Discoverable. */
export async function getGuildPreview(bot: Bot, guildId: bigint): Promise<GuildPreview> {
const result = await bot.rest.runMethod<DiscordGuildPreview>(
bot.rest,
"GET",
bot.constants.routes.GUILD_PREVIEW(guildId),
);
return {
id: bot.transformers.snowflake(result.id),
name: result.name,
icon: result.icon ?? undefined,
splash: result.splash ?? undefined,
discoverySplash: result.discovery_splash ?? undefined,
emojis: result.emojis.map((emoji) => bot.transformers.emoji(bot, emoji)),
features: result.features,
approximateMemberCount: result.approximate_member_count,
approximatePresenceCount: result.approximate_presence_count,
description: result.description ?? undefined,
stickers: result.stickers.map((sticker) => bot.transformers.sticker(bot, sticker)),
};
}