Class: Ci::Runners::UnassignRunnerService

Inherits:
Object
  • Object
show all
Defined in:
app/services/ci/runners/unassign_runner_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(runner_project, user) ⇒ UnassignRunnerService

Returns a new instance of UnassignRunnerService.

Parameters:

  • runner_project (Ci::RunnerProject)

    the runner/project association to destroy

  • user (User)

    the user performing the operation



8
9
10
11
12
13
# File 'app/services/ci/runners/unassign_runner_service.rb', line 8

def initialize(runner_project, user)
  @runner_project = runner_project
  @runner = runner_project.runner
  @project = runner_project.project
  @user = user
end

Instance Method Details

#executeObject



15
16
17
18
19
20
21
22
23
24
25
# File 'app/services/ci/runners/unassign_runner_service.rb', line 15

def execute
  unless @user.present? && @user.can?(:assign_runner, @runner)
    return ServiceResponse.error(message: 'user not allowed to assign runner')
  end

  if @runner_project.destroy
    ServiceResponse.success
  else
    ServiceResponse.error(message: 'failed to destroy runner project')
  end
end