From c358d4f932235df28c92690fd6ad8f84808184d6 Mon Sep 17 00:00:00 2001 From: ITOH <72305210+itohatweb@users.noreply.github.com> Date: Tue, 13 Apr 2021 21:58:57 +0200 Subject: [PATCH] use proper invite types --- src/helpers/invites/create_invite.ts | 4 ++-- src/types/invites/create_channel_invite.ts | 18 ++++++++++++++++++ src/types/invites/invite_target_types.ts | 5 +++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 src/types/invites/create_channel_invite.ts create mode 100644 src/types/invites/invite_target_types.ts diff --git a/src/helpers/invites/create_invite.ts b/src/helpers/invites/create_invite.ts index 3aae2e41b..09e13633d 100644 --- a/src/helpers/invites/create_invite.ts +++ b/src/helpers/invites/create_invite.ts @@ -1,12 +1,12 @@ import { rest } from "../../rest/rest.ts"; -import { InviteCreate } from "../../types/invites/invite_create.ts"; +import { CreateChannelInvite } from "../../types/invites/create_channel_invite.ts"; import { endpoints } from "../../util/constants.ts"; import { requireBotChannelPermissions } from "../../util/permissions.ts"; /** Creates a new invite for this channel. Requires CREATE_INSTANT_INVITE */ export async function createInvite( channelId: string, - options: InviteCreate, + options: CreateChannelInvite, ) { await requireBotChannelPermissions(channelId, ["CREATE_INSTANT_INVITE"]); diff --git a/src/types/invites/create_channel_invite.ts b/src/types/invites/create_channel_invite.ts new file mode 100644 index 000000000..50ac50762 --- /dev/null +++ b/src/types/invites/create_channel_invite.ts @@ -0,0 +1,18 @@ +import { DiscordInviteTargetTypes } from "./invite_target_types.ts"; + +export interface CreateChannelInvite { + /** Durationi of invite in seconds before expiry, or 0 for never. Between 0 and 604800 (7 days). Default: 86400 (24 hours) */ + maxAge?: number; + /** Max number of users or 0 for unlimited. Between 0 and 100. Default: 0 */ + maxUses?: number; + /** Whether this invite only grants temporary membership. Default: false */ + temporary?: boolean; + /** If true, don't try to reuse simmilar invite (useful for creating many unique one time use invites). Default: false */ + unique?: boolean; + /** The type of target for this voice channel invite */ + targetType?: DiscordInviteTargetTypes; + /** The id of the user whose stream to display for this invite, required if `target_type` is 1, the user must be streaming in the channel */ + targetUserId?: string; + /** The id of the embedded application to open for this invite, required if `target_type` is 2, the application must have the `EMBEDDED` flag */ + targetApplicationId?: string; +} diff --git a/src/types/invites/invite_target_types.ts b/src/types/invites/invite_target_types.ts new file mode 100644 index 000000000..b645e9b96 --- /dev/null +++ b/src/types/invites/invite_target_types.ts @@ -0,0 +1,5 @@ +/** https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types */ +export enum DiscordInviteTargetTypes { + Stream = 1, + EmbeddedApplication, +}