diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 7422c16..5469ef7 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -1,8 +1,11 @@ class MessagesController < ApplicationController - allow_unauthenticated_access - skip_before_action :verify_authenticity_token + skip_before_action :verify_authenticity_token, only: %i[ create ] + + before_action :set_contest, only: %i[ destroy ] + before_action :set_message, only: %i[ destroy ] def create + allow_unauthenticated_access skip_authorization @message_params = message_params @@ -19,6 +22,23 @@ class MessagesController < ApplicationController end end + def destroy + authorize @contest + + @message.destroy + redirect_to contest_path(@contest) + end + + private + + def set_contest + @contest = Contest.find(params[:contest_id]) + end + + def set_message + @message = Message.find(params[:id]) + end + def message_params params.expect(message: [ :text, :time_seconds, :token ]) end diff --git a/app/views/contests/show.html.slim b/app/views/contests/show.html.slim index 45f7208..588795f 100644 --- a/app/views/contests/show.html.slim +++ b/app/views/contests/show.html.slim @@ -64,8 +64,7 @@ a.btn.btn-sm.btn-secondary href="" style="white-space: nowrap;" | Add completion td - a.btn.btn-sm.btn-danger href="" - | Delete + = link_to "Delete", contest_message_path(@contest, message), data: { turbo_method: :delete }, class: "btn btn-sm btn-danger" .col-6 .row .col diff --git a/config/routes.rb b/config/routes.rb index 8ec8148..451aecc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -12,6 +12,7 @@ Rails.application.routes.draw do resources :completions resources :contestants resources :puzzles + resources :messages end resources :passwords, param: :token resource :session