summaryrefslogtreecommitdiff
path: root/app/services/ci/play_bridge_service.rb
blob: a719467253e09a92df16f1805aabdfcee30178f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# frozen_string_literal: true

module Ci
  class PlayBridgeService < ::BaseService
    def execute(bridge)
      check_access!(bridge)

      bridge.tap do |bridge|
        bridge.user = current_user
        bridge.enqueue!

        AfterRequeueJobService.new(project, current_user).execute(bridge)
      end
    end

    private

    def check_access!(bridge)
      raise Gitlab::Access::AccessDeniedError unless can?(current_user, :play_job, bridge)
    end
  end
end

Ci::PlayBridgeService.prepend_mod_with('Ci::PlayBridgeService')