MakersNetwork/agenda-saude

View on GitHub
app/controllers/admin/groups_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Admin
  class GroupsController < Base
    before_action :set_group, only: %i[show edit update destroy]

    def index
      @groups = Group.admin_order
                     .page(index_params[:page])
                     .per(100)
    end

    def new
      @group = Group.new
    end

    def create
      @group = Group.new(group_params)

      if @group.save
        redirect_to admin_group_path(@group)
      else
        render :new
      end
    end

    def show; end

    def edit; end

    def update
      if @group.update(group_params)
        redirect_to admin_group_path(@group)
      else
        render :edit
      end
    end

    def destroy
      @group.destroy! unless @group.used?
      redirect_to admin_groups_path
    end

    private

    def index_params
      params.permit(:page)
    end

    def group_params
      params.require(:group).permit(:name, :parent_group_id, :context, :position, :active)
    end

    def set_group
      @group = Group.find(params[:id])
    end
  end
end