Future createDownloadLink()

in src/get-dart/sdk_builds.dart/lib/src/dart_downloads.dart [30:49]


  Future<Uri> createDownloadLink(
      String channel, String revision, String path) async {
    final prefix = _revisionPath(channel, revision, [path]);
    final results = await _api.objects.list(_dartChannel, prefix: prefix);
    final items = results.items;

    if (items == null || items.isEmpty) {
      throw Exception('No items found for path $path.');
    } else if (items.length > 1) {
      throw Exception('Too many items for path $path.');
    }

    final mediaLink = items.single.mediaLink;

    if (mediaLink == null) {
      throw Exception('No media link present for path $path.');
    } else {
      return Uri.parse(mediaLink);
    }
  }