diff --git a/src/helpers/discovery/edit_discovery.ts b/src/helpers/discovery/edit_discovery.ts new file mode 100644 index 000000000..8c8c16d1b --- /dev/null +++ b/src/helpers/discovery/edit_discovery.ts @@ -0,0 +1,28 @@ +import { rest } from "../../rest/rest.ts"; +import { + DiscordDiscoveryMetadata, + DiscoveryMetadata, +} from "../../types/discovery/discovery_metadata.ts"; +import { ModifyGuildDiscoveryMetadata } from "../../types/discovery/modify_guild_discovery_metadata.ts"; +import { endpoints } from "../../util/constants.ts"; +import { requireBotGuildPermissions } from "../../util/permissions.ts"; +import { + camelKeysToSnakeCase, + snakeKeysToCamelCase, +} from "../../util/utils.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( + guildId: string, + data: ModifyGuildDiscoveryMetadata, +) { + await requireBotGuildPermissions(guildId, ["MANAGE_GUILD"]); + + const result = await rest.runMethod( + "patch", + endpoints.DISCOVERY_MODIFY(guildId), + camelKeysToSnakeCase(data), + ); + + return snakeKeysToCamelCase(result); +}