# frozen_string_literal: true class IPPoolsController < ApplicationController before_action :admin_required before_action { params[:id] && @ip_pool = IPPool.find_by_uuid!(params[:id]) } def index @ip_pools = IPPool.order(:name).to_a end def new @ip_pool = IPPool.new end def create @ip_pool = IPPool.new(safe_params) if @ip_pool.save redirect_to_with_json [:edit, @ip_pool], notice: "IP Pool has been added successfully. You can now add IP addresses to it." else render_form_errors "new", @ip_pool end end def update if @ip_pool.update(safe_params) redirect_to_with_json [:edit, @ip_pool], notice: "IP Pool has been updated." else render_form_errors "edit", @ip_pool end end def destroy @ip_pool.destroy redirect_to_with_json :ip_pools, notice: "IP pool has been removed successfully." rescue ActiveRecord::DeleteRestrictionError redirect_to_with_json [:edit, @ip_pool], alert: "IP pool cannot be removed because it still has associated addresses or servers." end private def safe_params params.require(:ip_pool).permit(:name, :default) end end