Files
codeocean/app/controllers/codeharbor_links_controller.rb
2019-10-20 16:20:04 +02:00

49 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class CodeharborLinksController < ApplicationController
include CommonBehavior
before_action :set_codeharbor_link, only: %i[show edit update destroy]
def new
base_url = CodeOcean::Config.new(:code_ocean).read[:codeharbor][:url]
@codeharbor_link = CodeharborLink.new(push_url: base_url + '/import_exercise', check_uuid_url: base_url + '/import_uuid_check')
authorize!
end
def edit
authorize!
end
def create
@codeharbor_link = CodeharborLink.new(codeharbor_link_params)
@codeharbor_link.user = current_user
authorize!
create_and_respond(object: @codeharbor_link, path: proc { @codeharbor_link.user })
end
def update
authorize!
update_and_respond(object: @codeharbor_link, params: codeharbor_link_params, path: @codeharbor_link.user)
end
def destroy
destroy_and_respond(object: @codeharbor_link, path: @codeharbor_link.user)
end
private
def authorize!
authorize @codeharbor_link
end
def set_codeharbor_link
@codeharbor_link = CodeharborLink.find(params[:id])
@codeharbor_link.user = current_user
authorize!
end
def codeharbor_link_params
params.require(:codeharbor_link).permit(:push_url, :check_uuid_url, :api_key)
end
end