Class: DynamoidAdvancedWhere::FilterBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/dynamoid_advanced_where/filter_builder.rb

Constant Summary collapse

VALID_COMPARETORS_FOR_RANGE_FILTER =
[
  Nodes::GreaterThanNode
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(root_node:, klass:) ⇒ FilterBuilder

Returns a new instance of FilterBuilder.



13
14
15
16
# File 'lib/dynamoid_advanced_where/filter_builder.rb', line 13

def initialize(root_node:, klass:)
  self.expression_node = root_node.child_node
  self.klass = klass
end

Instance Attribute Details

#expression_nodeObject

Returns the value of attribute expression_node.



11
12
13
# File 'lib/dynamoid_advanced_where/filter_builder.rb', line 11

def expression_node
  @expression_node
end

#klassObject

Returns the value of attribute klass.



11
12
13
# File 'lib/dynamoid_advanced_where/filter_builder.rb', line 11

def klass
  @klass
end

Instance Method Details

#index_nodesObject



18
19
20
21
22
23
# File 'lib/dynamoid_advanced_where/filter_builder.rb', line 18

def index_nodes
  [
    extract_query_filter_node,
    extract_range_key_node
  ].compact
end

#must_scan?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/dynamoid_advanced_where/filter_builder.rb', line 35

def must_scan?
  !extract_query_filter_node.is_a?(Nodes::BaseNode)
end

#to_query_filterObject



25
26
27
28
29
# File 'lib/dynamoid_advanced_where/filter_builder.rb', line 25

def to_query_filter
  {
    key_condition_expression: key_condition_expression
  }.merge!(expression_filters)
end

#to_scan_filterObject



31
32
33
# File 'lib/dynamoid_advanced_where/filter_builder.rb', line 31

def to_scan_filter
  expression_filters
end