class Admin::ApiController < Admin::BaseController before_action :check_for_cancel, only: [:create, :update] def index @page_subtitle = t(".page_title") @api_keys = if params[:query] sql_query = "%" + params[:query] + "%" ApiKey.where("name LIKE ?", sql_query).order("name").paginate(page: params[:page]) else ApiKey.order("name").paginate(page: params[:page]) end authorize @api_keys end def show redirect_to action: "index" end def new @page_subtitle = t(".page_title") @api_key = authorize ApiKey.new end def create authorize ApiKey # Use provided api key params if available otherwise fallback to empty # ApiKey object @api_key = params[:api_key].nil? ? ApiKey.new : ApiKey.new(api_key_params) if @api_key.save flash[:notice] = ts("New token successfully created") redirect_to action: "index" else render "new" end end def edit @page_subtitle = t(".page_title") @api_key = authorize ApiKey.find(params[:id]) end def update @api_key = authorize ApiKey.find(params[:id]) if @api_key.update(api_key_params) flash[:notice] = ts("Access token was successfully updated") redirect_to action: "index" else render "edit" end end def destroy @api_key = authorize ApiKey.find(params[:id]) @api_key.destroy redirect_to(admin_api_path) end private def api_key_params params.require(:api_key).permit( :name, :access_token, :banned ) end def check_for_cancel if params[:cancel_button] redirect_to action: "index" end end end