Sha256: a97e79885137f1c10fb4ab1dad89d77fa53da68076bedf52a1f652d6b9fa973a

Contents?: true

Size: 886 Bytes

Versions: 37

Compression:

Stored size: 886 Bytes

Contents

# frozen_string_literal: true

module FinApps
  module Utils
    module QueryBuilder
      def build_query_path(root_url, params)
        filter_obj = build_filter(params)
        page = "page=#{params[:page].to_i}" if params[:page]
        requested = "requested=#{params[:requested].to_i}" if params[:requested]
        sort = "sort=#{ERB::Util.url_encode(params[:sort])}" if params[:sort]
        filter = "filter=#{ERB::Util.url_encode(filter_obj.to_json)}" unless filter_obj.empty?
        query_join(root_url, [page, requested, sort, filter])
      end

      private

      def query_join(root_url, params_array)
        query_string = params_array.compact.join('&')
        [root_url, query_string].reject(&:empty?).join('?')
      end

      def build_filter(_params)
        # stub, to be overwritten by classes that include this module
        {}
      end
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
finapps-5.0.34 lib/finapps/utils/query_builder.rb
finapps-5.0.33 lib/finapps/utils/query_builder.rb
finapps-5.0.32 lib/finapps/utils/query_builder.rb
finapps-5.0.31 lib/finapps/utils/query_builder.rb
finapps-5.0.30 lib/finapps/utils/query_builder.rb
finapps-5.0.29 lib/finapps/utils/query_builder.rb
finapps-5.0.28 lib/finapps/utils/query_builder.rb
finapps-5.0.27 lib/finapps/utils/query_builder.rb
finapps-5.0.26 lib/finapps/utils/query_builder.rb
finapps-5.0.25 lib/finapps/utils/query_builder.rb
finapps-5.0.24 lib/finapps/utils/query_builder.rb
finapps-5.0.23 lib/finapps/utils/query_builder.rb
finapps-5.0.22 lib/finapps/utils/query_builder.rb
finapps-5.0.21 lib/finapps/utils/query_builder.rb
finapps-5.0.20 lib/finapps/utils/query_builder.rb
finapps-5.0.19 lib/finapps/utils/query_builder.rb
finapps-5.0.17 lib/finapps/utils/query_builder.rb
finapps-5.0.16 lib/finapps/utils/query_builder.rb
finapps-5.0.15 lib/finapps/utils/query_builder.rb
finapps-5.0.14 lib/finapps/utils/query_builder.rb