Sha256: 4ec51135ebc3902e19cd4d5f333d5bd0766cf541e61786824d26d6af1c107ad0

Contents?: true

Size: 1.39 KB

Versions: 16

Compression:

Stored size: 1.39 KB

Contents

module Graphiti::ActiveGraph
  module Scoping
    module Filter
      include Filterable

      def each_filter
        filter_param.each_pair do |param_name, param_value|
          filter = find_filter!(param_name)

          normalize_param(filter, param_value).each do |operator, value|
            operator = operator.to_s.gsub("!", "not_").to_sym

            # dynamic filters errors for validating and typecasting value below
            # so they are skipped here without validation or typecast
            filter_map = filter.values[0]
            if filter_map[:dynamic_filter]
              yield filter, operator, value
              next
            end
            validate_operator(filter, operator)

            type = ::Graphiti::Types[filter_map[:type]]
            unless type[:canonical_name] == :hash || !value.is_a?(String)
              value = parse_string_value(filter_map, value)
            end

            check_deny_empty_filters!(resource, filter, value)
            value = parse_string_null(filter_map, value)
            validate_singular(resource, filter, value)
            value = coerce_types(filter_map, param_name.to_sym, value)
            validate_allowlist(resource, filter, value)
            validate_denylist(resource, filter, value)
            value = value[0] if filter_map[:single]
            yield filter, operator, value
          end
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
graphiti-activegraph-0.2.0 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.26 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.25 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.24 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.23 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.22 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.21 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.20 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.19 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.18 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.17 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.16 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.15 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.14 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.13 lib/graphiti/active_graph/scoping/filter.rb
graphiti-activegraph-0.1.12 lib/graphiti/active_graph/scoping/filter.rb