feat(APIGuildForum): add support for forums, part 1 (#398)

Co-authored-by: Vitor <milagre.vitor@gmail.com>
This commit is contained in:
Suneet Tipirneni
2022-04-10 13:48:13 -04:00
committed by GitHub
parent 69079ee132
commit bf08484988
10 changed files with 126 additions and 8 deletions

View File

@@ -37,6 +37,7 @@ export interface APIPartialChannel {
*/
export interface APIChannelBase<T extends ChannelType> extends APIPartialChannel {
type: T;
flags?: ChannelFlags;
}
// TODO: update when text in voice is released
@@ -47,7 +48,8 @@ export type TextChannelType =
| ChannelType.GuildPublicThread
| ChannelType.GuildPrivateThread
| ChannelType.GuildNewsThread
| ChannelType.GuildText;
| ChannelType.GuildText
| ChannelType.GuildForum;
export type GuildChannelType = Exclude<
TextChannelType | ChannelType.GuildVoice | ChannelType.GuildStageVoice | ChannelType.GuildNews,
@@ -223,6 +225,8 @@ export interface APIThreadChannel
last_message_id?: Snowflake | null;
}
export type APIGuildForumChannel = APIGuildTextChannel<ChannelType.GuildForum>;
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-structure
*/
@@ -234,7 +238,8 @@ export type APIChannel =
| APIVoiceChannel
| APIGuildCategoryChannel
| APIThreadChannel
| APINewsChannel;
| APINewsChannel
| APIGuildForumChannel;
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-types
@@ -292,6 +297,10 @@ export enum ChannelType {
* See https://support.discord.com/hc/en-us/articles/4406046651927-Discord-Student-Hubs-FAQ
*/
GuildDirectory,
/**
* A channel that can only contain threads
*/
GuildForum,
}
export enum VideoQualityMode {
@@ -1358,6 +1367,13 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
required?: boolean;
}
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-flags
*/
export enum ChannelFlags {
Pinned = 1 << 1,
}
/**
* https://discord.com/developers/docs/interactions/message-components#message-components
*/

View File

@@ -37,6 +37,7 @@ export interface APIPartialChannel {
*/
export interface APIChannelBase<T extends ChannelType> extends APIPartialChannel {
type: T;
flags?: ChannelFlags;
}
// TODO: update when text in voice is released
@@ -47,7 +48,8 @@ export type TextChannelType =
| ChannelType.GuildPublicThread
| ChannelType.GuildPrivateThread
| ChannelType.GuildNewsThread
| ChannelType.GuildText;
| ChannelType.GuildText
| ChannelType.GuildForum;
export type GuildChannelType = Exclude<
TextChannelType | ChannelType.GuildVoice | ChannelType.GuildStageVoice | ChannelType.GuildNews,
@@ -223,6 +225,8 @@ export interface APIThreadChannel
last_message_id?: Snowflake | null;
}
export type APIGuildForumChannel = APIGuildTextChannel<ChannelType.GuildForum>;
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-structure
*/
@@ -234,7 +238,8 @@ export type APIChannel =
| APIVoiceChannel
| APIGuildCategoryChannel
| APIThreadChannel
| APINewsChannel;
| APINewsChannel
| APIGuildForumChannel;
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-types
@@ -292,6 +297,10 @@ export enum ChannelType {
* See https://support.discord.com/hc/en-us/articles/4406046651927-Discord-Student-Hubs-FAQ
*/
GuildDirectory,
/**
* A channel that can only contain threads
*/
GuildForum,
}
export enum VideoQualityMode {
@@ -1358,6 +1367,13 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
required?: boolean;
}
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-flags
*/
export enum ChannelFlags {
Pinned = 1 << 1,
}
/**
* https://discord.com/developers/docs/interactions/message-components#message-components
*/

View File

@@ -55,6 +55,8 @@ export enum RESTJSONErrorCodes {
UnknownGuildScheduledEvent,
UnknownGuildScheduledEventUser,
UnknownTag = 10087,
BotsCannotUseThisEndpoint = 20001,
OnlyBotsCanUseThisEndpoint,
@@ -111,6 +113,8 @@ export enum RESTJSONErrorCodes {
MaximumNumberOfGuildWidgetSettingsUpdatesHasBeenReached = 30042,
MaximumNumberOfEditsToMessagesOlderThanOneHourReached = 30046,
MaximumNumberOfPinnedThreadsInForumHasBeenReached,
MaximumNumberOfTagsInForumHasBeenReached,
Unauthorized = 40001,
VerifyYourAccount,
@@ -126,6 +130,7 @@ export enum RESTJSONErrorCodes {
ApplicationCommandWithThatNameAlreadyExists = 40041,
InteractionHasAlreadyBeenAcknowledged = 40060,
TagNamesMustBeUnique,
MissingAccess = 50001,
InvalidAccountType,

View File

@@ -581,6 +581,17 @@ export type RESTPostAPIChannelMessagesThreadsJSONBody = AddUndefinedToPossiblyUn
rate_limit_per_user?: number;
}>;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
*/
export type RESTPostAPIGuildForumThreadsJSONBody = RESTPostAPIChannelMessagesThreadsJSONBody &
RESTPostAPIChannelMessageJSONBody;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
*/
export type RESTPostAPIGuildForumThreadsFormDataBody = RESTPostAPIChannelMessageFormDataBody;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-with-message
*/

View File

@@ -595,6 +595,17 @@ export type RESTPostAPIChannelMessagesThreadsJSONBody = AddUndefinedToPossiblyUn
rate_limit_per_user?: number;
}>;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
*/
export type RESTPostAPIGuildForumThreadsJSONBody = RESTPostAPIChannelMessagesThreadsJSONBody &
RESTPostAPIChannelMessageJSONBody;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
*/
export type RESTPostAPIGuildForumThreadsFormDataBody = RESTPostAPIChannelMessageFormDataBody;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-with-message
*/

View File

@@ -37,6 +37,7 @@ export interface APIPartialChannel {
*/
export interface APIChannelBase<T extends ChannelType> extends APIPartialChannel {
type: T;
flags?: ChannelFlags;
}
// TODO: update when text in voice is released
@@ -47,7 +48,8 @@ export type TextChannelType =
| ChannelType.GuildPublicThread
| ChannelType.GuildPrivateThread
| ChannelType.GuildNewsThread
| ChannelType.GuildText;
| ChannelType.GuildText
| ChannelType.GuildForum;
export type GuildChannelType = Exclude<
TextChannelType | ChannelType.GuildVoice | ChannelType.GuildStageVoice | ChannelType.GuildNews,
@@ -223,6 +225,8 @@ export interface APIThreadChannel
last_message_id?: Snowflake | null;
}
export type APIGuildForumChannel = APIGuildTextChannel<ChannelType.GuildForum>;
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-structure
*/
@@ -234,7 +238,8 @@ export type APIChannel =
| APIVoiceChannel
| APIGuildCategoryChannel
| APIThreadChannel
| APINewsChannel;
| APINewsChannel
| APIGuildForumChannel;
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-types
@@ -292,6 +297,10 @@ export enum ChannelType {
* See https://support.discord.com/hc/en-us/articles/4406046651927-Discord-Student-Hubs-FAQ
*/
GuildDirectory,
/**
* A channel that can only contain threads
*/
GuildForum,
}
export enum VideoQualityMode {
@@ -1358,6 +1367,13 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
required?: boolean;
}
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-flags
*/
export enum ChannelFlags {
Pinned = 1 << 1,
}
/**
* https://discord.com/developers/docs/interactions/message-components#message-components
*/

View File

@@ -37,6 +37,7 @@ export interface APIPartialChannel {
*/
export interface APIChannelBase<T extends ChannelType> extends APIPartialChannel {
type: T;
flags?: ChannelFlags;
}
// TODO: update when text in voice is released
@@ -47,7 +48,8 @@ export type TextChannelType =
| ChannelType.GuildPublicThread
| ChannelType.GuildPrivateThread
| ChannelType.GuildNewsThread
| ChannelType.GuildText;
| ChannelType.GuildText
| ChannelType.GuildForum;
export type GuildChannelType = Exclude<
TextChannelType | ChannelType.GuildVoice | ChannelType.GuildStageVoice | ChannelType.GuildNews,
@@ -223,6 +225,8 @@ export interface APIThreadChannel
last_message_id?: Snowflake | null;
}
export type APIGuildForumChannel = APIGuildTextChannel<ChannelType.GuildForum>;
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-structure
*/
@@ -234,7 +238,8 @@ export type APIChannel =
| APIVoiceChannel
| APIGuildCategoryChannel
| APIThreadChannel
| APINewsChannel;
| APINewsChannel
| APIGuildForumChannel;
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-types
@@ -292,6 +297,10 @@ export enum ChannelType {
* See https://support.discord.com/hc/en-us/articles/4406046651927-Discord-Student-Hubs-FAQ
*/
GuildDirectory,
/**
* A channel that can only contain threads
*/
GuildForum,
}
export enum VideoQualityMode {
@@ -1358,6 +1367,13 @@ export interface APITextInputComponent extends APIBaseComponent<ComponentType.Te
required?: boolean;
}
/**
* https://discord.com/developers/docs/resources/channel#channel-object-channel-flags
*/
export enum ChannelFlags {
Pinned = 1 << 1,
}
/**
* https://discord.com/developers/docs/interactions/message-components#message-components
*/

View File

@@ -55,6 +55,8 @@ export enum RESTJSONErrorCodes {
UnknownGuildScheduledEvent,
UnknownGuildScheduledEventUser,
UnknownTag = 10087,
BotsCannotUseThisEndpoint = 20001,
OnlyBotsCanUseThisEndpoint,
@@ -111,6 +113,8 @@ export enum RESTJSONErrorCodes {
MaximumNumberOfGuildWidgetSettingsUpdatesHasBeenReached = 30042,
MaximumNumberOfEditsToMessagesOlderThanOneHourReached = 30046,
MaximumNumberOfPinnedThreadsInForumHasBeenReached,
MaximumNumberOfTagsInForumHasBeenReached,
Unauthorized = 40001,
VerifyYourAccount,
@@ -126,6 +130,7 @@ export enum RESTJSONErrorCodes {
ApplicationCommandWithThatNameAlreadyExists = 40041,
InteractionHasAlreadyBeenAcknowledged = 40060,
TagNamesMustBeUnique,
MissingAccess = 50001,
InvalidAccountType,

View File

@@ -581,6 +581,17 @@ export type RESTPostAPIChannelMessagesThreadsJSONBody = AddUndefinedToPossiblyUn
rate_limit_per_user?: number;
}>;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
*/
export type RESTPostAPIGuildForumThreadsJSONBody = RESTPostAPIChannelMessagesThreadsJSONBody &
RESTPostAPIChannelMessageJSONBody;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
*/
export type RESTPostAPIGuildForumThreadsFormDataBody = RESTPostAPIChannelMessageFormDataBody;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-with-message
*/

View File

@@ -595,6 +595,17 @@ export type RESTPostAPIChannelMessagesThreadsJSONBody = AddUndefinedToPossiblyUn
rate_limit_per_user?: number;
}>;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
*/
export type RESTPostAPIGuildForumThreadsJSONBody = RESTPostAPIChannelMessagesThreadsJSONBody &
RESTPostAPIChannelMessageJSONBody;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-in-forum-channel
*/
export type RESTPostAPIGuildForumThreadsFormDataBody = RESTPostAPIChannelMessageFormDataBody;
/**
* https://discord.com/developers/docs/resources/channel#start-thread-with-message
*/