handleBuildJobStatusChange method

Future<void> handleBuildJobStatusChange(
  1. BuildJob buildJob,
  2. String status
)

Handles Build Job status changes (notifications, etc).

Implementation

Future<void> handleBuildJobStatusChange(
  BuildJob buildJob,
  String status,
) async {
  if (serverUrl != null && serverUrl!.isNotEmpty) {
    final url = Uri.parse('$serverUrl/builds/${buildJob.id}/status-change');
    final idToken = await authManager.getIdToken();
    final response = await http.post(
      url,
      headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer $idToken',
      },
      body: jsonEncode({'status': status}),
    );
    if (response.statusCode >= 200 && response.statusCode < 300) {
      return;
    }
    throw HttpException(
      'Failed to process status change on server: ${response.statusCode} ${response.body}',
    );
  }

  await callApi('handle-build-job-status-change', {
    'buildJob': buildJob.toJson(),
    'status': status,
  });
}