checkResourceStatus function

Future<bool> checkResourceStatus(
  1. String resUrl, {
  2. bool fileFlag = true,
})

Implementation

Future<bool> checkResourceStatus(
  String resUrl, {
  bool fileFlag = true,
}) async {
  final (:accessToken, :dPopToken) = await getTokensForResource(resUrl, 'GET');
  final response = await http.get(
    Uri.parse(resUrl),
    headers: <String, String>{
      'Content-Type': fileFlag ? '*/*' : 'application/octet-stream',
      'Authorization': 'DPoP $accessToken',
      'Link': fileFlag
          ? '<http://www.w3.org/ns/ldp#Resource>; rel="type"'
          : '<http://www.w3.org/ns/ldp#BasicContainer>; rel="type"',
      'DPoP': dPopToken,
    },
  );

  if (response.statusCode == 200 || response.statusCode == 204) {
    return true;
  } else if (response.statusCode == 404) {
    return false;
  } else {
    debugPrint('WARN: Failed to check resource status.\n'
        'URL: $resUrl\n'
        'ERR: ${response.body}');
    return false;
  }
}