fetchPermissions method

Future<CommandPermissions> fetchPermissions(
  1. Snowflake id
)

Fetch the permissions for a command.

Implementation

Future<CommandPermissions> fetchPermissions(Snowflake id) async {
  final route = HttpRoute()
    ..applications(id: applicationId.toString())
    ..guilds(id: guildId.toString())
    ..commands(id: id.toString())
    ..permissions();
  final request = BasicRequest(route);

  try {
    final response = await client.httpHandler.executeSafe(request);
    final permissions = parseCommandPermissions(response.jsonBody as Map<String, Object?>);

    client.updateCacheWith(permissions);
    return permissions;
  } on HttpResponseError catch (e) {
    // 10066 = Unknown application command permissions
    // Means there are no overrides for this command... why is this an error, Discord?
    if (e.errorCode == 10066) {
      return CommandPermissions(manager: this, id: id, applicationId: applicationId, guildId: guildId, permissions: []);
    }

    rethrow;
  }
}