parse method

  1. @override
ApplicationCommand parse(
  1. Map<String, Object?> raw
)
override

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

Implementation

@override
ApplicationCommand parse(Map<String, Object?> raw) {
  return ApplicationCommand(
    id: Snowflake.parse(raw['id']!),
    manager: this,
    type: ApplicationCommandType.parse(raw['type'] as int? ?? 1),
    applicationId: Snowflake.parse(raw['application_id']!),
    guildId: maybeParse(raw['guild_id'], Snowflake.parse),
    name: raw['name'] as String,
    nameLocalizations: maybeParse(
      raw['name_localizations'],
      (Map<String, Object?> raw) => raw.map(
        (key, value) => MapEntry(Locale.parse(key), value as String),
      ),
    ),
    description: raw['description'] as String,
    descriptionLocalizations: maybeParse(
      raw['description_localizations'],
      (Map<String, Object?> raw) => raw.map(
        (key, value) => MapEntry(Locale.parse(key), value as String),
      ),
    ),
    options: maybeParseMany(raw['options'], parseApplicationCommandOption),
    defaultMemberPermissions: maybeParse(raw['default_member_permissions'], (String raw) => Permissions(int.parse(raw))),
    hasDmPermission: raw['dm_permission'] as bool?,
    isNsfw: raw['nsfw'] as bool?,
    integrationTypes: maybeParseMany(raw['integration_types'], ApplicationIntegrationType.parse) ?? [ApplicationIntegrationType.guildInstall],
    contexts: maybeParseMany(raw['contexts'], InteractionContextType.parse),
    version: Snowflake.parse(raw['version']!),
  );
}