Class: Collavre::TasksController

Inherits:
ApplicationController show all
Defined in:
app/controllers/collavre/tasks_controller.rb

Instance Method Summary collapse

Instance Method Details

#cancelObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/controllers/collavre/tasks_controller.rb', line 5

def cancel
  task = Task.find(params[:id])
  creative = task.creative || Creative.find_by(id: task.trigger_event_payload&.dig("creative", "id"))

  unless creative && creative.has_permission?(Current.user, :feedback)
    return head :forbidden
  end

  unless %w[running pending queued pending_approval].include?(task.status)
    return head :unprocessable_entity
  end

  task.update!(status: "cancelled")

  abort_openclaw_session(task)

  head :ok
end