class Dymos::Query::Query

Public Instance Methods

_add_filter(column, operator, value) click to toggle source
# File lib/dymos/query/query.rb, line 70
def _add_filter(column, operator, value)
  [column.to_s, {
                attribute_value_list: [*value],
                comparison_operator: operator.to_s.upcase
              }
  ]
end
add_conditions(*values) click to toggle source
# File lib/dymos/query/query.rb, line 44
def add_conditions(*values)
  column, operator, value = parse_condition(*values)
  @query[:key_conditions] ||= {}
  @query[:key_conditions].store(*_add_filter(column, operator, value))
  self
end
add_filter(*values) click to toggle source
# File lib/dymos/query/query.rb, line 62
def add_filter(*values)
  column, operator, value = parse_condition(*values)
  @query[:query_filter] ||= {}
  @query[:query_filter].store(*_add_filter(column, operator, value))
  filter_operator 'AND' if @query[:conditional_operator].blank? && @query[:query_filter].count > 1
  self
end
asc() click to toggle source
# File lib/dymos/query/query.rb, line 83
def asc
  scan_index_forward true
end
attributes(*value) click to toggle source
# File lib/dymos/query/query.rb, line 15
def attributes(*value)
  @query[:attributes_to_get] = value
  self
end
command() click to toggle source
# File lib/dymos/query/query.rb, line 6
def command
  'query'
end
comparison_operator(value) click to toggle source
# File lib/dymos/query/query.rb, line 51
def comparison_operator(value)
  @query[:comparison_operator] = value.to_s.upcase
  self
end
conditions(value) click to toggle source
# File lib/dymos/query/query.rb, line 39
def conditions(value)
  value.map { |v| add_conditions(*v) }
  self
end
consistent_read(value) click to toggle source
# File lib/dymos/query/query.rb, line 25
def consistent_read(value)
  @query[:consistent_read] = value
  self
end
desc() click to toggle source
# File lib/dymos/query/query.rb, line 87
def desc
  scan_index_forward false
end
exclusive_start_key(value) click to toggle source
# File lib/dymos/query/query.rb, line 96
def exclusive_start_key(value)
  @query[:exclusive_start_key] = value.deep_stringify_keys
  self
end
Also aliased as: start_key
filter(value, operator='AND') click to toggle source
# File lib/dymos/query/query.rb, line 56
def filter(value, operator='AND')
  value.map { |v| add_filter(*v) }
  filter_operator operator.to_s.upcase if value.count > 1
  self
end
filter_operator(value) click to toggle source
# File lib/dymos/query/query.rb, line 78
def filter_operator(value)
  @query[:conditional_operator] = value.to_s.upcase
  self
end
index(value) click to toggle source
# File lib/dymos/query/query.rb, line 10
def index(value)
  @query[:index_name] = value.to_s
  self
end
limit(value) click to toggle source
# File lib/dymos/query/query.rb, line 20
def limit(value)
  @query[:limit] = value
  self
end
return_consumed_capacity(value) click to toggle source
# File lib/dymos/query/query.rb, line 103
def return_consumed_capacity(value)
  @query[:return_consumed_capacity] = value.to_s.upcase
  self
end
scan_index_forward(value) click to toggle source
# File lib/dymos/query/query.rb, line 91
def scan_index_forward(value)
  @query[:scan_index_forward] = value
  self
end
start_key(value)
Alias for: exclusive_start_key
where(*value) click to toggle source
# File lib/dymos/query/query.rb, line 30
def where(*value)
  if value.count == 1 && value[0].is_a?(Hash)
    value[0].each { |k, v| add_conditions(k, :eq, v) }
  else
    value.each { |v| add_conditions(*v) }
  end
  self
end