checkStatus static method

Future<ResourceStatus> checkStatus(
  1. String url
)

Perform a HEAD request to check resource existence.

Implementation

static Future<ResourceStatus> checkStatus(String url) async {
  try {
    final tokens = await PodAuth.getTokens(url, 'HEAD');

    final response = await http.head(
      Uri.parse(url),
      headers: {
        'Accept': '*/*',
        'Authorization': 'DPoP ${tokens.accessToken}',
        'Connection': 'keep-alive',
        'DPoP': tokens.dPopToken,
      },
    );

    switch (response.statusCode) {
      case 200:
      case 204:
        return ResourceStatus.exist;
      case 404:
        return ResourceStatus.notExist;
      case 401:
      case 403:
        return ResourceStatus.forbidden;
      default:
        return ResourceStatus.unknown;
    }
  } catch (e) {
    debugPrint('PodHttp.checkStatus() error: $e');
    return ResourceStatus.unknown;
  }
}