parse method

  1. @override
Member parse(
  1. Map<String, Object?> raw,
  2. {Snowflake? userId}
)
override

Parse the raw data received from the API into an instance of the type of this manager.

Implementation

@override
Member parse(Map<String, Object?> raw, {Snowflake? userId}) {
  return Member(
    id: maybeParse((raw['user'] as Map<String, Object?>?)?['id'], Snowflake.parse) ?? userId ?? Snowflake.zero,
    manager: this,
    user: maybeParse(raw['user'], client.users.parse),
    nick: raw['nick'] as String?,
    avatarHash: raw['avatar'] as String?,
    roleIds: parseMany(raw['roles'] as List, Snowflake.parse),
    joinedAt: DateTime.parse(raw['joined_at'] as String),
    premiumSince: maybeParse(raw['premium_since'], DateTime.parse),
    isDeaf: raw['deaf'] as bool?,
    isMute: raw['mute'] as bool?,
    flags: MemberFlags(raw['flags'] as int),
    isPending: raw['pending'] as bool? ?? false,
    permissions: maybeParse(raw['permissions'], (String raw) => Permissions(int.parse(raw))),
    communicationDisabledUntil: maybeParse(raw['communication_disabled_until'], DateTime.parse),
  );
}