Files
codeocean/app/controllers/errors_controller.rb

44 lines
1.1 KiB
Ruby

class ErrorsController < ApplicationController
before_action :set_execution_environment
def authorize!
authorize(@error || Error.where(execution_environment_id: @execution_environment.id))
end
private :authorize!
def create
@error = Error.new(error_params)
authorize!
hint = Whistleblower.new(execution_environment: @error.execution_environment).generate_hint(@error.message)
respond_to do |format|
format.json do
if hint
render(json: {hint: hint})
else
render(nothing: true, status: @error.save ? :created : :unprocessable_entity)
end
end
end
end
def error_params
params[:error].permit(:message).merge(execution_environment_id: @execution_environment.id)
end
private :error_params
def index
authorize!
@errors = Error.for_execution_environment(@execution_environment)
end
def set_execution_environment
@execution_environment = ExecutionEnvironment.find(params[:execution_environment_id])
end
private :set_execution_environment
def show
@error = Error.find(params[:id])
authorize!
end
end