parse method

Invite parse(
  1. Map<String, Object?> raw
)

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)),
  );
}