parse method
Parse an Invite from raw
.
Implementation
Invite parse(Map<String, Object?> raw) {
final guild = maybeParse(
raw['guild'],
(Map<String, Object?> raw) => PartialGuild(id: Snowflake.parse(raw['id']!), manager: client.guilds),
);
return Invite(
code: raw['code'] as String,
guild: guild,
channel: PartialChannel(id: Snowflake.parse((raw['channel'] as Map<String, Object?>)['id']!), manager: client.channels),
inviter: maybeParse(raw['inviter'], client.users.parse),
targetType: maybeParse(raw['target_type'], TargetType.parse),
targetUser: maybeParse(raw['target_user'], client.users.parse),
targetApplication: maybeParse(
raw['target_application'],
(Map<String, Object?> raw) => PartialApplication(id: Snowflake.parse(raw['id']!), manager: client.applications),
),
approximatePresenceCount: raw['approximate_presence_count'] as int?,
approximateMemberCount: raw['approximate_member_count'] as int?,
expiresAt: maybeParse(raw['expires_at'], DateTime.parse),
// Don't use a tearoff so we don't evaluate `guild!.id` unless guild_scheduled_event is set.
guildScheduledEvent: maybeParse(raw['guild_scheduled_event'], (Map<String, Object?> raw) => client.guilds[guild!.id].scheduledEvents.parse(raw)),
);
}