summaryrefslogtreecommitdiff
path: root/app/services/ci/cancel_user_pipelines_service.rb
blob: 3a8b5e91088ff75d99e6117ea370a38319897365 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# frozen_string_literal: true

module Ci
  class CancelUserPipelinesService
    # rubocop: disable CodeReuse/ActiveRecord
    # This is a bug with CodeReuse/ActiveRecord cop
    # https://gitlab.com/gitlab-org/gitlab/issues/32332
    def execute(user)
      user.pipelines.cancelable.find_each(&:cancel_running)

      ServiceResponse.success(message: 'Pipeline canceled')
    rescue ActiveRecord::StaleObjectError
      ServiceResponse.error(message: 'Error canceling pipeline')
    end
    # rubocop: enable CodeReuse/ActiveRecord
  end
end