21
1
Fork 0
mirror of https://github.com/Evolix/chexpire.git synced 2024-05-03 01:10:50 +02:00
chexpire/app/controllers/checks_controller.rb
Jérémy Lecour 830b978626
Rename Notifications.delay to .interval
From French to English "interval" is a better translation than "delay".
It's supposed to mean a number of days between two dates.
2018-07-02 09:52:49 +02:00

77 lines
1.6 KiB
Ruby

class ChecksController < ApplicationController
before_action :authenticate_user!
before_action :set_check, except: [:index, :new, :create]
after_action :verify_authorized, except: :index
after_action :verify_policy_scoped, only: :index
def index
@checks = policy_scope(Check).order(:domain_expires_at)
end
def new
@check = Check.new
build_empty_notification
authorize @check
end
def create
@check = Check.new(new_check_params)
@check.user = current_user
authorize @check
if @check.save
flash[:notice] = "Your check has been saved."
redirect_to checks_path
else
flash.now[:alert] = "An error occured."
render :new
end
end
def edit
build_empty_notification
end
def update
if @check.update(update_check_params)
flash[:notice] = "Your check has been updated."
redirect_to checks_path
else
flash.now[:alert] = "An error occured."
build_empty_notification
render :edit
end
end
def destroy
@check.destroy!
flash[:notice] = "Your check has been destroyed."
redirect_to checks_path
end
private
def set_check
@check = Check.find(params[:id])
authorize @check
end
def new_check_params
check_params(:kind)
end
def update_check_params
check_params(:active)
end
def check_params(*others)
params.require(:check).permit(:domain, :domain_created_at, :comment, :vendor, *others,
notifications_attributes: [:id, :channel, :recipient, :interval])
end
def build_empty_notification
@check.notifications.build
end
end