53 lines
1.1 KiB
Ruby
53 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class RuleSetsController < ApplicationController
|
|
before_action :set_rule_set, only: [:show, :edit, :update, :push_to_agents]
|
|
|
|
def index
|
|
@rule_sets = RuleSet.includes(:rules).by_priority
|
|
end
|
|
|
|
def show
|
|
@rules = @rule_set.rules.includes(:rule_set).by_priority
|
|
end
|
|
|
|
def new
|
|
@rule_set = RuleSet.new
|
|
end
|
|
|
|
def create
|
|
@rule_set = RuleSet.new(rule_set_params)
|
|
|
|
if @rule_set.save
|
|
redirect_to @rule_set, notice: "Rule set was successfully created."
|
|
else
|
|
render :new, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
def edit
|
|
end
|
|
|
|
def update
|
|
if @rule_set.update(rule_set_params)
|
|
redirect_to @rule_set, notice: "Rule set was successfully updated."
|
|
else
|
|
render :edit, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
def push_to_agents
|
|
@rule_set.push_to_agents!
|
|
redirect_to @rule_set, notice: "Rule set pushed to agents successfully."
|
|
end
|
|
|
|
private
|
|
|
|
def set_rule_set
|
|
@rule_set = RuleSet.find_by(slug: params[:id]) || RuleSet.find(params[:id])
|
|
end
|
|
|
|
def rule_set_params
|
|
params.require(:rule_set).permit(:name, :description, :enabled, :priority)
|
|
end
|
|
end |