Files
discordeno/helpers/discovery/editDiscovery.ts
T
2022-08-28 11:24:05 +00:00

46 lines
1.6 KiB
TypeScript

import type { Bot } from "../../bot.ts";
import { DiscordDiscoveryMetadata } from "../../types/discord.ts";
import { DiscoveryMetadata } from "./getDiscovery.ts";
/** Modify the discovery metadata for the guild. Requires the MANAGE_GUILD permission. Returns the updated discovery metadata object on success. */
export async function editDiscovery(
bot: Bot,
guildId: bigint,
data: ModifyGuildDiscoveryMetadata,
): Promise<DiscoveryMetadata> {
const result = await bot.rest.runMethod<DiscordDiscoveryMetadata>(
bot.rest,
"PATCH",
bot.constants.routes.DISCOVERY_METADATA(guildId),
{
primary_category_id: data.primaryCategoryId,
keywords: data.keywords,
emoji_discoverability_enabled: data.emojiDiscoverabilityEnabled,
},
);
return {
guildId,
primaryCategoryId: result.primary_category_id,
keywords: result.keywords ?? undefined,
emojiDiscoverabilityEnabled: result.emoji_discoverability_enabled,
partnerActionedTimestamp: result.partner_actioned_timestamp
? Date.parse(result.partner_actioned_timestamp)
: undefined,
partnerApplicationTimestamp: result.partner_application_timestamp
? Date.parse(result.partner_application_timestamp)
: undefined,
categoryIds: result.category_ids,
};
}
// TODO: add docs link
export interface ModifyGuildDiscoveryMetadata {
/** The id of the primary discovery category. Default: 0 */
primaryCategoryId?: number | null;
/** Up to 10 discovery search keywords. Default: null */
keywords?: string[] | null;
/** Whether guild info is shown when custom emojis are clicked. Default: true */
emojiDiscoverabilityEnabled?: boolean | null;
}