-
-
Notifications
You must be signed in to change notification settings - Fork 99
/
member.ts
38 lines (36 loc) · 1.56 KB
/
member.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import type { Bot } from "../../bot.ts";
import { DiscordMember, DiscordUser } from "../../types/discord.ts";
import { Member, User } from "../member.ts";
export function transformUserToDiscordUser(bot: Bot, payload: User): DiscordUser {
return {
id: bot.utils.bigintToSnowflake(payload.id),
username: payload.username,
discriminator: payload.discriminator,
avatar: payload.avatar ? bot.utils.iconBigintToHash(payload.avatar) : null,
locale: payload.locale,
email: payload.email ?? undefined,
flags: payload.flags,
premium_type: payload.premiumType,
public_flags: payload.publicFlags,
bot: payload.toggles.bot,
system: payload.toggles.system,
mfa_enabled: payload.toggles.mfaEnabled,
verified: payload.toggles.verified,
};
}
export function transformMemberToDiscordMember(bot: Bot, payload: Member): DiscordMember {
return {
nick: payload.nick ?? undefined,
roles: payload.roles.map((id) => bot.utils.bigintToSnowflake(id)),
joined_at: new Date(payload.joinedAt).toISOString(),
premium_since: payload.premiumSince ? new Date(payload.premiumSince).toISOString() : undefined,
avatar: payload.avatar ? bot.utils.iconBigintToHash(payload.avatar) : undefined,
permissions: payload.permissions ? bot.utils.bigintToSnowflake(payload.permissions) : undefined,
communication_disabled_until: payload.communicationDisabledUntil
? new Date(payload.communicationDisabledUntil).toISOString()
: undefined,
deaf: payload.toggles.deaf,
mute: payload.toggles.mute,
pending: payload.toggles.pending,
};
}