requestUploadUrl method

Future<UploadUrlResult> requestUploadUrl({
  1. required Dio dio,
  2. required String packageName,
  3. required String version,
  4. required int fileSize,
  5. required String projectType,
  6. String? flavor,
})

Implementation

Future<UploadUrlResult> requestUploadUrl({
  required Dio dio,
  required String packageName,
  required String version,
  required int fileSize,
  required String projectType,
  String? flavor,
}) async {
  try {
    final resp = await dio.post(
      Endpoints.uploadUrl,
      data: {
        'packageName': packageName,
        'version': version,
        'size': fileSize,
      },
    );
    final data = resp.data['data'] as Map<String, dynamic>;
    return UploadUrlResult(
      uploadUrl: data['uploadUrl'] as String,
      storagePath: data['storagePath'] as String,
    );
  } on DioException catch (e) {
    CliAnalytics.ins.logUploadFailed(
      errorCode: 'upload_url_error',
      projectType: projectType,
      flavor: flavor,
    );
    _handleUploadUrlError(e);
    throw StateError('unreachable'); // _handleUploadUrlError always exits
  }
}