Sha256: 3d4d5eb82dd6dea00eae5c167510b4d40af9f3ff7b04c8d279f0da95cc22c5be

Contents?: true

Size: 785 Bytes

Versions: 8

Compression:

Stored size: 785 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)}" if filter_obj && !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('&')
        !query_string.empty? ? [root_url, query_string].join('?') : nil
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
finapps-4.0.3 lib/finapps/utils/query_builder.rb
finapps-4.0.2 lib/finapps/utils/query_builder.rb
finapps-4.0.1 lib/finapps/utils/query_builder.rb
finapps-3.0.7 lib/finapps/utils/query_builder.rb
finapps-3.0.6 lib/finapps/utils/query_builder.rb
finapps-3.0.5 lib/finapps/utils/query_builder.rb
finapps-3.0.4 lib/finapps/utils/query_builder.rb
finapps-3.0.3 lib/finapps/utils/query_builder.rb