Files
discordeno/src/helpers/members/get_member.ts
T
2021-04-12 22:24:20 +04:00

35 lines
1.0 KiB
TypeScript

import { cacheHandlers } from "../../cache.ts";
import { rest } from "../../rest/rest.ts";
import { structures } from "../../structures/mod.ts";
import {
DiscordGuildMember,
DiscordGuildMemberWithUser,
} from "../../types/guilds/guild_member.ts";
import { endpoints } from "../../util/constants.ts";
/** Returns a guild member object for the specified user.
*
* ⚠️ **ADVANCED USE ONLY: Your members will be cached in your guild most likely. Only use this when you are absolutely sure the member is not cached.**
*/
export async function getMember(
guildId: string,
id: string,
options?: { force?: boolean },
) {
const guild = await cacheHandlers.get("guilds", guildId);
if (!guild && !options?.force) return;
const data: DiscordGuildMemberWithUser = (await rest.runMethod(
"get",
endpoints.GUILD_MEMBER(guildId, id),
));
const discordenoMember = await structures.createDiscordenoMember(
data,
guildId,
);
await cacheHandlers.set("members", discordenoMember.id, discordenoMember);
return discordenoMember;
}