diff --git a/src/bot.ts b/src/bot.ts index 9852a03bc..10bc5378a 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -602,6 +602,7 @@ export interface Helpers { editThread: typeof helpers.editThread; getActiveThreads: typeof helpers.getActiveThreads; getArchivedThreads: typeof helpers.getArchivedThreads; + getThreadMember: typeof helpers.getThreadMember; getThreadMembers: typeof helpers.getThreadMembers; joinThread: typeof helpers.joinThread; leaveThread: typeof helpers.leaveThread; @@ -771,6 +772,7 @@ export function createBaseHelpers(options: Partial) { editThread: options.editThread || helpers.editThread, getActiveThreads: options.getActiveThreads || helpers.getActiveThreads, getArchivedThreads: options.getArchivedThreads || helpers.getArchivedThreads, + getThreadMember: options.getThreadMember || helpers.getThreadMember, getThreadMembers: options.getThreadMembers || helpers.getThreadMembers, joinThread: options.joinThread || helpers.joinThread, leaveThread: options.leaveThread || helpers.leaveThread, diff --git a/src/helpers/channels/threads/getThreadMember.ts b/src/helpers/channels/threads/getThreadMember.ts new file mode 100644 index 000000000..4ad37a4d9 --- /dev/null +++ b/src/helpers/channels/threads/getThreadMember.ts @@ -0,0 +1,18 @@ +import type { Bot } from "../../../bot.ts"; +import { ThreadMember } from "../../../types/channels/threads/thread_member.ts"; + +/** Returns thread members objects that are members of the thread. */ +export async function getThreadMember(bot: Bot, threadId: bigint, userId: bigint) { + const result = await bot.rest.runMethod( + bot.rest, + "get", + bot.constants.endpoints.THREAD_USER(threadId, userId) + ); + + return { + id: result.id ? bot.transformers.snowflake(result.id) : undefined, + userId: result.user_id ? bot.transformers.snowflake(result.user_id) : undefined, + joinTimestamp: Date.parse(result.join_timestamp), + flags: result.flags + }; +} diff --git a/src/helpers/channels/threads/get_thread_members.ts b/src/helpers/channels/threads/get_thread_members.ts index 63380f934..7c122111c 100644 --- a/src/helpers/channels/threads/get_thread_members.ts +++ b/src/helpers/channels/threads/get_thread_members.ts @@ -1,8 +1,5 @@ import type { Bot } from "../../../bot.ts"; import { ThreadMember } from "../../../types/channels/threads/thread_member.ts"; -import { DiscordGatewayIntents } from "../../../types/gateway/gateway_intents.ts"; -import { Collection } from "../../../util/collection.ts"; -// import { threadMemberModified } from "../../../util/transformers/thread_member_modified.ts"; /** Returns thread members objects that are members of the thread. */ export async function getThreadMembers(bot: Bot, threadId: bigint) { diff --git a/src/helpers/mod.ts b/src/helpers/mod.ts index 06f4d36aa..576d5933c 100644 --- a/src/helpers/mod.ts +++ b/src/helpers/mod.ts @@ -142,6 +142,7 @@ import { deleteThread } from "./channels/threads/delete_thread.ts"; import { editThread } from "./channels/threads/edit_thread.ts"; import { getActiveThreads } from "./channels/threads/get_active_threads.ts"; import { getArchivedThreads } from "./channels/threads/get_archived_threads.ts"; +import { getThreadMember } from "./channels/threads/getThreadMember.ts"; import { getThreadMembers } from "./channels/threads/get_thread_members.ts"; import { joinThread } from "./channels/threads/join_thread.ts"; import { leaveThread } from "./channels/threads/leave_thread.ts"; @@ -296,6 +297,7 @@ export { editThread, getActiveThreads, getArchivedThreads, + getThreadMember, getThreadMembers, joinThread, leaveThread,