Sha256: 42d9461aee610223681b8d31c998c8c68e392c0f106e040f32c8001f22905c64

Contents?: true

Size: 911 Bytes

Versions: 1

Compression:

Stored size: 911 Bytes

Contents

module SearchParamsParser
  extend ActiveSupport::Concern

  def get_search_params
    return @get_search_params if defined?(@get_search_params)

    @get_search_params = search_params(search_filter_params)
  end

  def search_filter_params
    return {} if params[:filter].blank?

    @search_filter_params ||= additional_search_filter_params
    @search_filter_params
  end

  def additional_search_filter_params
    params.require(:filter).permit!
  end

  def search_params(extra_params = {})
    id = keywords&.first&.delete('%')&.to_i
    @search_params = if id && !id.zero?
                       extra_params.delete('keyword')
                       {
                         id: id
                       }
                     else
                       {
                         keyword: keywords
                       }
                     end
    @search_params.merge!(extra_params)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pixelforce_kit-0.9 app/controllers/concerns/search_params_parser.rb