From 7d7234ce63d6a984bcedcccc11b4f18efc0e3d59 Mon Sep 17 00:00:00 2001 From: Maximilian Grundke Date: Tue, 14 Aug 2018 18:08:25 +0200 Subject: [PATCH] Add simple controller to create events --- app/controllers/events_controller.rb | 28 ++++++++++++++++++++++++++++ app/policies/event_policy.rb | 7 +++++++ config/routes.rb | 2 ++ 3 files changed, 37 insertions(+) create mode 100644 app/controllers/events_controller.rb create mode 100644 app/policies/event_policy.rb diff --git a/app/controllers/events_controller.rb b/app/controllers/events_controller.rb new file mode 100644 index 00000000..38e57cd5 --- /dev/null +++ b/app/controllers/events_controller.rb @@ -0,0 +1,28 @@ +class EventsController < ApplicationController + + def authorize! + authorize(@event || @events) + end + private :authorize! + + def create + @event = Event.new(event_params) + authorize! + respond_to do |format| + if @event.save + format.html { head :created } + format.json { head :created } + else + format.html { head :unprocessable_entity } + format.json { head :unprocessable_entity } + end + end + end + + def event_params + params[:event].permit(:category, :data, :exercise_id, :file_id) + .merge(user_id: current_user&.id, user_type: current_user&.class.name) + end + private :event_params + +end diff --git a/app/policies/event_policy.rb b/app/policies/event_policy.rb new file mode 100644 index 00000000..a648b901 --- /dev/null +++ b/app/policies/event_policy.rb @@ -0,0 +1,7 @@ +class EventPolicy < AdminOnlyPolicy + + def create? + everyone + end + +end diff --git a/config/routes.rb b/config/routes.rb index 6703d8c1..7c1f317b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -168,6 +168,8 @@ Rails.application.routes.draw do end end + resources :events, only: [:create] + post "/evaluate", to: 'remote_evaluation#evaluate', via: [:post] end