mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 08:47:22 +00:00
feat!: add missing params to getThreadMember() and getThreadMembers() (#4135)
* feat: add missing params to getThreadMember() and getThreadMembers() * add member property from payload in threadMember transformer * mark guildId as BigString | undefined and pass undefined in threadMember transformer * fix type of after, limit params of ListThreadMembers * add tsdoc for GetThreadMember and GetGuildAuditLog * make options param of getThreadMember() and getThreadMembers() optional --------- Co-authored-by: Fleny <Fleny113@outlook.com>
This commit is contained in:
@@ -74,6 +74,7 @@ import type {
|
||||
GetReactions,
|
||||
GetScheduledEventUsers,
|
||||
GetScheduledEvents,
|
||||
GetThreadMember,
|
||||
GetUserGuilds,
|
||||
GetWebhookMessageOptions,
|
||||
InteractionCallbackData,
|
||||
@@ -82,6 +83,7 @@ import type {
|
||||
ListArchivedThreads,
|
||||
ListGuildMembers,
|
||||
ListSkuSubscriptionsOptions,
|
||||
ListThreadMembers,
|
||||
MfaLevels,
|
||||
ModifyApplicationEmoji,
|
||||
ModifyChannel,
|
||||
@@ -489,11 +491,11 @@ export function createBotHelpers<TProps extends TransformersDesiredProperties, T
|
||||
getSticker: async (stickerId) => {
|
||||
return bot.transformers.sticker(bot, snakelize(await bot.rest.getSticker(stickerId)))
|
||||
},
|
||||
getThreadMember: async (channelId, userId) => {
|
||||
return bot.transformers.threadMember(bot, snakelize(await bot.rest.getThreadMember(channelId, userId)))
|
||||
getThreadMember: async (channelId, userId, options) => {
|
||||
return bot.transformers.threadMember(bot, snakelize(await bot.rest.getThreadMember(channelId, userId, options)))
|
||||
},
|
||||
getThreadMembers: async (channelId) => {
|
||||
return (await bot.rest.getThreadMembers(channelId)).map((res) => bot.transformers.threadMember(bot, snakelize(res)))
|
||||
getThreadMembers: async (channelId, options) => {
|
||||
return (await bot.rest.getThreadMembers(channelId, options)).map((res) => bot.transformers.threadMember(bot, snakelize(res)))
|
||||
},
|
||||
getReactions: async (channelId, messageId, reaction, options) => {
|
||||
return (await bot.rest.getReactions(channelId, messageId, reaction, options)).map((res) => bot.transformers.user(bot, snakelize(res)))
|
||||
@@ -1003,8 +1005,8 @@ export type BotHelpers<TProps extends TransformersDesiredProperties, TBehavior e
|
||||
getOwnVoiceState: (guildId: BigString) => Promise<SetupDesiredProps<VoiceState, TProps, TBehavior>>
|
||||
getUserVoiceState: (guildId: BigString, userId: BigString) => Promise<SetupDesiredProps<VoiceState, TProps, TBehavior>>
|
||||
getSticker: (stickerId: BigString) => Promise<SetupDesiredProps<Sticker, TProps, TBehavior>>
|
||||
getThreadMember: (channelId: BigString, userId: BigString) => Promise<ThreadMember>
|
||||
getThreadMembers: (channelId: BigString) => Promise<ThreadMember[]>
|
||||
getThreadMember: (channelId: BigString, userId: BigString, options?: GetThreadMember) => Promise<ThreadMember>
|
||||
getThreadMembers: (channelId: BigString, options?: ListThreadMembers) => Promise<ThreadMember[]>
|
||||
getReactions: (
|
||||
channelId: BigString,
|
||||
messageId: BigString,
|
||||
|
||||
@@ -470,7 +470,12 @@ export type Transformers<TProps extends TransformersDesiredProperties, TBehavior
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordInviteStageInstance & { guildId: BigString },
|
||||
) => SetupDesiredProps<InviteStageInstance, TProps, TBehavior>
|
||||
member: (bot: Bot<TProps, TBehavior>, payload: DiscordMember, guildId: BigString, userId: BigString) => SetupDesiredProps<Member, TProps, TBehavior>
|
||||
member: (
|
||||
bot: Bot<TProps, TBehavior>,
|
||||
payload: DiscordMember,
|
||||
guildId: BigString | undefined,
|
||||
userId: BigString,
|
||||
) => SetupDesiredProps<Member, TProps, TBehavior>
|
||||
message: (bot: Bot<TProps, TBehavior>, payload: { message: DiscordMessage; shardId: number }) => SetupDesiredProps<Message, TProps, TBehavior>
|
||||
messageCall: (bot: Bot<TProps, TBehavior>, payload: DiscordMessageCall) => SetupDesiredProps<MessageCall, TProps, TBehavior>
|
||||
messageInteractionMetadata: (
|
||||
|
||||
@@ -7,6 +7,7 @@ export function transformThreadMember(bot: Bot, payload: DiscordThreadMember): T
|
||||
userId: payload.user_id ? bot.transformers.snowflake(payload.user_id) : undefined,
|
||||
joinTimestamp: Date.parse(payload.join_timestamp),
|
||||
flags: payload.flags,
|
||||
member: payload.member ? bot.transformers.member(bot, payload.member, undefined, bot.transformers.snowflake(payload.user_id)) : undefined,
|
||||
} as ThreadMember
|
||||
|
||||
return bot.transformers.customizers.threadMember(bot, payload, threadMember)
|
||||
|
||||
@@ -1033,8 +1033,13 @@ export interface Member {
|
||||
id: bigint
|
||||
/** The compressed form of all the boolean values on this user. */
|
||||
toggles?: MemberToggles
|
||||
/** The guild id where this member is. */
|
||||
guildId: bigint
|
||||
/**
|
||||
* The guild id where this member is.
|
||||
*
|
||||
* @remarks
|
||||
* This will always be present unless the member object is from thread member object.
|
||||
* */
|
||||
guildId?: bigint
|
||||
/** The user this guild member represents */
|
||||
user?: User
|
||||
/** This user's guild nickname */
|
||||
|
||||
@@ -1395,12 +1395,12 @@ export function createRestManager(options: CreateRestManagerOptions): RestManage
|
||||
return await rest.get<DiscordSticker[]>(rest.routes.guilds.stickers(guildId))
|
||||
},
|
||||
|
||||
async getThreadMember(channelId, userId) {
|
||||
return await rest.get<DiscordThreadMember>(rest.routes.channels.threads.user(channelId, userId))
|
||||
async getThreadMember(channelId, userId, options) {
|
||||
return await rest.get<DiscordThreadMember>(rest.routes.channels.threads.getUser(channelId, userId, options))
|
||||
},
|
||||
|
||||
async getThreadMembers(channelId) {
|
||||
return await rest.get<DiscordThreadMember[]>(rest.routes.channels.threads.members(channelId))
|
||||
async getThreadMembers(channelId, options) {
|
||||
return await rest.get<DiscordThreadMember[]>(rest.routes.channels.threads.members(channelId, options))
|
||||
},
|
||||
|
||||
async getReactions(channelId, messageId, reaction, options) {
|
||||
|
||||
@@ -161,12 +161,29 @@ export function createRoutes(): RestRoutes {
|
||||
active: (guildId) => {
|
||||
return `/guilds/${guildId}/threads/active`
|
||||
},
|
||||
members: (channelId) => {
|
||||
return `/channels/${channelId}/thread-members`
|
||||
members: (channelId, options) => {
|
||||
let url = `/channels/${channelId}/thread-members?`
|
||||
|
||||
if (options) {
|
||||
if (options.withMember) url += `with_member=${options.withMember}`
|
||||
if (options.limit) url += `&limit=${options.limit}`
|
||||
if (options.after) url += `&after=${options.after}`
|
||||
}
|
||||
|
||||
return url
|
||||
},
|
||||
me: (channelId) => {
|
||||
return `/channels/${channelId}/thread-members/@me`
|
||||
},
|
||||
getUser(channelId, userId, options) {
|
||||
let url = `/channels/${channelId}/thread-members/${userId}?`
|
||||
|
||||
if (options) {
|
||||
if (options.withMember) url += `with_member=${options.withMember}`
|
||||
}
|
||||
|
||||
return url
|
||||
},
|
||||
user: (channelId, userId) => {
|
||||
return `/channels/${channelId}/thread-members/${userId}`
|
||||
},
|
||||
|
||||
@@ -108,6 +108,7 @@ import type {
|
||||
GetReactions,
|
||||
GetScheduledEventUsers,
|
||||
GetScheduledEvents,
|
||||
GetThreadMember,
|
||||
GetUserGuilds,
|
||||
GetWebhookMessageOptions,
|
||||
InteractionCallbackData,
|
||||
@@ -116,6 +117,7 @@ import type {
|
||||
ListArchivedThreads,
|
||||
ListGuildMembers,
|
||||
ListSkuSubscriptionsOptions,
|
||||
ListThreadMembers,
|
||||
MfaLevels,
|
||||
ModifyApplicationEmoji,
|
||||
ModifyChannel,
|
||||
@@ -2265,15 +2267,17 @@ export interface RestManager {
|
||||
*
|
||||
* @param channelId - The ID of the thread to get the thread member of.
|
||||
* @param userId - The user ID of the thread member to get.
|
||||
* @param options - The parameters for the fetching of the thread member.
|
||||
* @returns An instance of {@link DiscordThreadMember}.
|
||||
*
|
||||
* @see {@link https://discord.com/developers/docs/resources/channel#get-thread-member}
|
||||
*/
|
||||
getThreadMember: (channelId: BigString, userId: BigString) => Promise<Camelize<DiscordThreadMember>>
|
||||
getThreadMember: (channelId: BigString, userId: BigString, options?: GetThreadMember) => Promise<Camelize<DiscordThreadMember>>
|
||||
/**
|
||||
* Gets the list of thread members for a thread.
|
||||
*
|
||||
* @param channelId - The ID of the thread to get the thread members of.
|
||||
* @param options - The parameters for the fetching of the thread members.
|
||||
* @returns A collection of {@link DiscordThreadMember} assorted by user ID.
|
||||
*
|
||||
* @remarks
|
||||
@@ -2281,7 +2285,7 @@ export interface RestManager {
|
||||
*
|
||||
* @see {@link https://discord.com/developers/docs/resources/channel#list-thread-members}
|
||||
*/
|
||||
getThreadMembers: (channelId: BigString) => Promise<Camelize<DiscordThreadMember>[]>
|
||||
getThreadMembers: (channelId: BigString, options?: ListThreadMembers) => Promise<Camelize<DiscordThreadMember>[]>
|
||||
/**
|
||||
* Gets the list of users that reacted with an emoji to a message.
|
||||
*
|
||||
|
||||
@@ -9,11 +9,13 @@ import type {
|
||||
GetPollAnswerVotes,
|
||||
GetReactions,
|
||||
GetScheduledEventUsers,
|
||||
GetThreadMember,
|
||||
GetUserGuilds,
|
||||
InteractionCallbackOptions,
|
||||
ListArchivedThreads,
|
||||
ListGuildMembers,
|
||||
ListSkuSubscriptionsOptions,
|
||||
ListThreadMembers,
|
||||
} from '@discordeno/types'
|
||||
|
||||
export interface RestRoutes {
|
||||
@@ -78,10 +80,12 @@ export interface RestRoutes {
|
||||
/** Route for active threads. */
|
||||
active: (guildId: BigString) => string
|
||||
/** Route for members in a thread. */
|
||||
members: (channelId: BigString) => string
|
||||
members: (channelId: BigString, options?: ListThreadMembers) => string
|
||||
/** Route for the bot member in a thread. */
|
||||
me: (channelId: BigString) => string
|
||||
/** Route for a specific member in a thread. */
|
||||
/** Route for getting a specific member in a thread. */
|
||||
getUser: (channelId: BigString, userId: BigString, options?: GetThreadMember) => string
|
||||
/** Route for a specific member in a thread apart from the route for getting the member. */
|
||||
user: (channelId: BigString, userId: BigString) => string
|
||||
/** Route for handling archived threads. */
|
||||
archived: (channelId: BigString) => string
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/** Types for: https://discord.com/developers/docs/resources/channel */
|
||||
|
||||
import type { DiscordMember } from './guild.js'
|
||||
import type { DiscordMessageComponents } from './interactions.js'
|
||||
import type { DiscordAllowedMentions, DiscordAttachment, DiscordEmbed, MessageFlags } from './message.js'
|
||||
import type { DiscordUser } from './user.js'
|
||||
@@ -199,6 +200,8 @@ export interface DiscordThreadMember {
|
||||
user_id: string
|
||||
/** The time the current user last joined the thread */
|
||||
join_timestamp: string
|
||||
/** The member object of the user */
|
||||
member?: DiscordMember
|
||||
}
|
||||
|
||||
/** https://discord.com/developers/docs/resources/channel#thread-member-object-thread-member-structure, the first asterisk */
|
||||
|
||||
@@ -384,6 +384,22 @@ export interface ListArchivedThreads {
|
||||
limit?: number
|
||||
}
|
||||
|
||||
/** https://discord.com/developers/docs/resources/channel#get-thread-member-query-string-params */
|
||||
export interface GetThreadMember {
|
||||
/** Whether to include a guild member object for the thread member */
|
||||
withMember?: boolean
|
||||
}
|
||||
|
||||
/** https://discord.com/developers/docs/resources/channel#list-thread-members-query-string-params */
|
||||
export interface ListThreadMembers {
|
||||
/** Whether to include a guild member object for the thread member */
|
||||
withMember?: boolean
|
||||
/** Get thread members after this user ID */
|
||||
after?: BigString
|
||||
/** Max number of thread members to return (1-100). Defaults to 100. */
|
||||
limit?: BigString
|
||||
}
|
||||
|
||||
/** https://discord.com/developers/docs/resources/audit-log#get-guild-audit-log-query-string-parameters */
|
||||
export interface GetGuildAuditLog {
|
||||
/** Entries from a specific user ID */
|
||||
|
||||
Reference in New Issue
Block a user