parse method

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

Parse an Application from raw.

Implementation

Application parse(Map<String, Object?> raw) {
  return Application(
    id: Snowflake.parse(raw['id']!),
    manager: this,
    name: raw['name'] as String,
    iconHash: raw['icon'] as String?,
    description: raw['description'] as String,
    rpcOrigins: maybeParseMany(raw['rpc_origins']),
    isBotPublic: raw['bot_public'] as bool,
    botRequiresCodeGrant: raw['bot_require_code_grant'] as bool,
    bot: maybeParse(raw['bot'], (Map<String, Object?> raw) => PartialUser(id: Snowflake.parse(raw['id']!), manager: client.users)),
    termsOfServiceUrl: maybeParse(raw['terms_of_service_url'], Uri.parse),
    privacyPolicyUrl: maybeParse(raw['privacy_policy_url'], Uri.parse),
    owner: maybeParse(
      raw['owner'],
      (Map<String, Object?> raw) => PartialUser(
        id: Snowflake.parse(raw['id']!),
        manager: client.users,
      ),
    ),
    verifyKey: raw['verify_key'] as String,
    team: maybeParse(raw['team'], parseTeam),
    guildId: maybeParse(raw['guild_id'], Snowflake.parse),
    guild: maybeParse(raw['guild'], (Map<String, Object?> raw) => PartialGuild(id: Snowflake.parse(raw['id']!), manager: client.guilds)),
    primarySkuId: maybeParse(raw['primary_sku_id'], Snowflake.parse),
    slug: raw['slug'] as String?,
    coverImageHash: raw['cover_image'] as String?,
    flags: ApplicationFlags(raw['flags'] as int? ?? 0),
    approximateGuildCount: raw['approximate_guild_count'] as int?,
    redirectUris: maybeParseMany(raw['redirect_uris'], Uri.parse),
    interactionsEndpointUrl: maybeParse(raw['interactions_endpoint_url'], Uri.parse),
    tags: maybeParseMany(raw['tags']),
    installationParameters: maybeParse(raw['install_params'], parseInstallationParameters),
    customInstallUrl: maybeParse(raw['custom_install_url'], Uri.parse),
    integrationTypesConfig: maybeParse(
      raw['integration_types_config'],
      (Map<String, Object?> config) => {
        for (final MapEntry(:key, :value) in config.entries)
          ApplicationIntegrationType.parse(int.parse(key)): parseApplicationIntegrationTypeConfiguration(value as Map<String, Object?>)
      },
    ),
    roleConnectionsVerificationUrl: maybeParse(raw['role_connections_verification_url'], Uri.parse),
  );
}