cancelBuild method

Future<ApiResponse<CancelBuildResponse>> cancelBuild(
  1. String buildId
)

Cancels build by is buildId. Returns HTTP 208 if build already cancelled

Implementation

Future<ApiResponse<CancelBuildResponse>> cancelBuild(String buildId) async {
  try {
    final request =
        await _client.postUrl(Uri.parse("$apiUrl/builds/$buildId/cancel"));
    request.headers.add(HttpHeaders.authorizationHeader, 'Bearer $authKey');
    request.headers.contentType = ContentType(
      "application",
      "json",
      charset: "utf-8",
    );

    final response = await request.close();

    if (response.statusCode == HttpStatus.ok ||
        response.statusCode == HttpStatus.alreadyReported) {
      final data = await utf8.decoder.bind(response).join();
      final json = jsonDecode(data);
      final builds = CancelBuildResponse.fromJson(json);
      return ApiResponse(wasSuccessful: true, data: builds);
    }

    return ApiResponse(
      wasSuccessful: false,
      error: 'Response code was ${response.statusCode}',
    );
  } catch (e) {
    print(e);
    return ApiResponse(wasSuccessful: false, error: 'Unknown error');
  }
}