# 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