Sha256: 3319a924fa8e2a2d0ff8a7960229f90ca347f218097f7e1176c1f39585d732d9

Contents?: true

Size: 1.69 KB

Versions: 10

Compression:

Stored size: 1.69 KB

Contents

require 'active_support/concern'

class QueryHelper
  module QueryHelperConcern
    extend ActiveSupport::Concern

    included do
      def query_helper
        @query_helper
      end

      def query_helper_with_no_pagination
        QueryHelper.new(**query_helper_params_no_pagination)
      end

      def create_query_helper
        @query_helper = QueryHelper.new(**query_helper_params, api_payload: true)
      end

      def create_query_helper_with_no_pagination
        @query_helper = query_helper_with_no_pagination()
      end

      def reload_query_params(query_helper=@query_helper)
        query_helper.update(**query_helper_params)
      end 

      def create_query_helper_filter
        filter_values = params[:filter].permit!.to_h
        QueryHelper::SqlFilter.new(filter_values: filter_values)
      end

      def create_query_helper_sort
        QueryHelper::SqlSort.new(sort_string: params[:sort])
      end

      def create_query_helper_associations
        QueryHelper::Associations.process_association_params(params[:include])
      end

      def query_helper_params
        helpers = query_helper_params_no_pagination
        helpers[:page] = params[:page] if params[:page]
        helpers[:per_page] = params[:per_page] if params[:per_page]
        helpers
      end

      def query_helper_params_no_pagination
        helpers = {}
        helpers[:sql_filter] = create_query_helper_filter() if params[:filter]
        helpers[:sql_sort] = create_query_helper_sort() if params[:sort]
        helpers[:associations] = create_query_helper_associations() if params[:include]
        helpers[:search_string] = params[:search_for] if params[:search_for]
        helpers
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
query_helper-0.2.19 lib/query_helper/query_helper_concern.rb
query_helper-0.2.18 lib/query_helper/query_helper_concern.rb
query_helper-0.2.17 lib/query_helper/query_helper_concern.rb
query_helper-0.2.16 lib/query_helper/query_helper_concern.rb
query_helper-0.2.15 lib/query_helper/query_helper_concern.rb
query_helper-0.2.14 lib/query_helper/query_helper_concern.rb
query_helper-0.2.13 lib/query_helper/query_helper_concern.rb
query_helper-0.2.12 lib/query_helper/query_helper_concern.rb
query_helper-0.2.11 lib/query_helper/query_helper_concern.rb
query_helper-0.2.10 lib/query_helper/query_helper_concern.rb