diff --git a/lib/travis/api/v3/queries/build.rb b/lib/travis/api/v3/queries/build.rb index 5314a7c9..efa90e6f 100644 --- a/lib/travis/api/v3/queries/build.rb +++ b/lib/travis/api/v3/queries/build.rb @@ -1,3 +1,6 @@ +require 'travis/api/enqueue/services/restart_model' +require 'travis/api/enqueue/services/cancel_model' + module Travis::API::V3 class Queries::Build < Query params :id @@ -10,7 +13,13 @@ module Travis::API::V3 def cancel(user) raise BuildNotCancelable if %w(passed failed canceled errored).include? find.state payload = { id: id, user_id: user.id, source: 'api' } - perform_async(:build_cancellation, payload) + if Travis::Features.owner_active?(:enqueue_to_hub, user) + payload[:type] = :build + service = Travis::Enqueue::Services::CancelModel.new(user, payload) + service.push + else + perform_async(:build_cancellation, payload) + end payload end