parseResolvedData method

ResolvedData parseResolvedData(
  1. Map<String, Object?> raw,
  2. {Snowflake? guildId,
  3. Snowflake? channelId}
)

Implementation

ResolvedData parseResolvedData(Map<String, Object?> raw, {Snowflake? guildId, Snowflake? channelId}) {
  return ResolvedData(
    users: maybeParse(
      raw['users'],
      (Map<String, Object?> raw) => raw.map((key, value) => MapEntry(Snowflake.parse(key), client.users.parse(value as Map<String, Object?>))),
    ),
    members: maybeParse(
      raw['members'],
      (Map<String, Object?> raw) => raw.map(
        (key, value) => MapEntry(
          Snowflake.parse(key),
          client.guilds[guildId ?? Snowflake.zero].members.parse(value as Map<String, Object?>, userId: Snowflake.parse(key)),
        ),
      ),
    ),
    roles: maybeParse(
      raw['roles'],
      (Map<String, Object?> raw) =>
          raw.map((key, value) => MapEntry(Snowflake.parse(key), client.guilds[guildId ?? Snowflake.zero].roles.parse(value as Map<String, Object?>))),
    ),
    channels: maybeParse(
      raw['channels'],
      (Map<String, Object?> raw) => raw.map(
        (key, value) => MapEntry(
          Snowflake.parse(key),
          PartialChannel(id: Snowflake.parse((value as Map<String, Object?>)['id']!), manager: client.channels),
        ),
      ),
    ),
    messages: maybeParse(
      raw['messages'],
      (Map<String, Object?> raw) => raw.map(
        (key, value) => MapEntry(
          Snowflake.parse(key),
          PartialMessage(
              id: Snowflake.parse((value as Map<String, Object?>)['id']!),
              manager: (client.channels[channelId ?? Snowflake.zero] as PartialTextChannel).messages),
        ),
      ),
    ),
    attachments: maybeParse(
      raw['attachments'],
      (Map<String, Object?> raw) => raw.map(
        (key, value) => MapEntry(
          Snowflake.parse(key),
          (client.channels[channelId ?? Snowflake.zero] as PartialTextChannel).messages.parseAttachment(value as Map<String, Object?>),
        ),
      ),
    ),
  );
}