Sha256: 27cb55650d098c2928063a86e618736b13a84cf91003fbd074987ce713b7e798

Contents?: true

Size: 1.35 KB

Versions: 22

Compression:

Stored size: 1.35 KB

Contents

module Graphiti::ActiveGraph
  module Query
    attr_reader :deep_sort

    def filters
      @filters ||= begin
        {}.tap do |hash|
          (@params[:filter] || {}).each_pair do |name, value|
            name = name.to_sym

            if legacy_nested?(name)
              value.keys.each do |key|
                filter_name = key.to_sym
                filter_value = value[key]

                if @resource.get_attr!(filter_name, :filterable, request: true)
                  hash[filter_name] = filter_value
                end
              end
            elsif nested?(name)
              name = name.to_s.split(".").last.to_sym
              validate!(name, :filterable)
              hash[name] = value
            else
              hash[name] = value
            end
          end
        end
      end
    end

    def sorts
      return super unless (sort = params[:sort]) && sort.include?('.')

      @deep_sort = sort_criteria(sort)
      []
    end

    def parse_sort_criteria_hash(hash)
      hash.map { |key, value| [key.to_s.split('.').map(&:to_sym), value] }.to_h
    end

    private

    def sort_criteria(sort)
      sort.split(',').map(&method(:sort_hash)).map(&method(:parse_sort_criteria_hash))
    end

    def update_include_hash(authorized_include_param)
      @include_hash = authorized_include_param
      @sideloads = nil
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
graphiti-activegraph-0.1.23 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.22 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.21 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.20 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.19 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.18 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.17 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.16 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.15 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.14 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.13 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.12 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.11 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.10 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.9 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.8 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.7 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.6 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.5 lib/graphiti/active_graph/query.rb
graphiti-activegraph-0.1.4 lib/graphiti/active_graph/query.rb