Sha256: 3680db6a538dae54e75295214de2c5f2bdc741c87add411b52274dddb718d030
Contents?: true
Size: 1.61 KB
Versions: 3
Compression:
Stored size: 1.61 KB
Contents
# frozen_string_literal: true require 'drillbit/authorizers/parameters' module Drillbit module Authorizers class Parameters class Filtering < Authorizers::Parameters def call params.permit(*authorized_params) end private def authorized_params @authorized_params ||= [ :sort, page: %i{ number size offset limit cursor }, filter: [ :query, {}, ], ] end def add_filterable_parameter(name) param = params. fetch(:filter, {}). fetch(name, nil) if param.class == Array authorized_params[1][:filter][1][name] = [] else authorized_params[1][:filter] << name end end def add_filterable_parameters(*names) names.each do |name| add_filterable_parameter(name) end end def override_filter_parameter(name:, value:, only_when_present: false, override_if_admin: false) add_filterable_parameter name return true if !override_if_admin && token.admin? params[:filter] ||= {} params[:filter][name] = value if params[:filter][name] || !only_when_present end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems