21
1
Fork 0
mirror of https://github.com/Evolix/chexpire.git synced 2024-05-12 21:48:38 +02:00
chexpire/app/controllers/notifications_controller.rb
2018-06-04 20:39:53 +02:00

45 lines
1 KiB
Ruby

class NotificationsController < ApplicationController
before_action :authenticate_user!
before_action :set_notification, except: [:create]
def create
check = Check.find(params[:check_id])
@notification = check.notifications.build(notification_params)
authorize @notification
if @notification.save
flash[:notice] = "Your notification has been saved."
redirect_to check_path
else
flash.now[:alert] = "An error occured."
render "checks/edit"
end
end
def destroy
@notification.destroy!
respond_to do |format|
format.js
end
end
private
def set_notification
# joins the check because policy use the check relation
@notification = Notification
.joins(:check)
.find_by!(id: params[:id], check_id: params[:check_id])
authorize @notification
end
def notification_params
params.require(:notification).permit(:channel, :recipient, :delay)
end
def check_path
edit_check_path(check_id: params[:check_id])
end
end