Class: Dymos::Query::UpdateItem

Inherits:
Base
  • Object
show all
Defined in:
lib/dymos/query/update_item.rb

Instance Method Summary collapse

Methods inherited from Base

#build, #initialize, #name

Constructor Details

This class inherits a constructor from Dymos::Query::Base

Instance Method Details

#_add_expected(column, operator, value) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/dymos/query/update_item.rb', line 60

def _add_expected(column, operator, value)
  [column.to_s, {
                attribute_value_list: ([:BETWEEN, :IN].include? operator) ? [*value] : [value],
                comparison_operator: operator.to_s.upcase
              }
  ]
end

#_attribute_updates(column, action, value) ⇒ Object



40
41
42
43
44
45
46
# File 'lib/dymos/query/update_item.rb', line 40

def _attribute_updates(column, action, value)
  [column.to_s, {
                value: value,
                action: action.to_s.upcase
              }
  ]
end

#add(column, value) ⇒ Object



13
14
15
16
# File 'lib/dymos/query/update_item.rb', line 13

def add(column, value)
  add_attribute_updates(column, :add, value)
  self
end

#add_attribute_updates(*values) ⇒ Object



33
34
35
36
37
38
# File 'lib/dymos/query/update_item.rb', line 33

def add_attribute_updates(*values)
  column, operator, value = parse_condition(*values)
  @query[:attribute_updates] ||= {}
  @query[:attribute_updates].store(*_attribute_updates(column, operator, value))
  self
end

#add_expected(*values) ⇒ Object



53
54
55
56
57
58
# File 'lib/dymos/query/update_item.rb', line 53

def add_expected(*values)
  column, operator, value = parse_condition(*values)
  @query[:expected] ||= {}
  @query[:expected].store(*_add_expected(column, operator, value))
  self
end

#attribute_updates(*value) ⇒ Object



28
29
30
31
# File 'lib/dymos/query/update_item.rb', line 28

def attribute_updates(*value)
  value.map { |v| add_attribute_updates(*v) }
  self
end

#commandObject



4
5
6
# File 'lib/dymos/query/update_item.rb', line 4

def command
  'update_item'
end

#condition_expression(value) ⇒ Object



94
95
96
97
# File 'lib/dymos/query/update_item.rb', line 94

def condition_expression(value)
  @query[:condition_expression] = value
  self
end

#conditional_operator(value) ⇒ Object



68
69
70
71
# File 'lib/dymos/query/update_item.rb', line 68

def conditional_operator(value)
  @query[:conditional_operator] = value.to_s.upcase
  self
end

#delete(column, value) ⇒ Object



23
24
25
26
# File 'lib/dymos/query/update_item.rb', line 23

def delete(column, value)
  add_attribute_updates(column, :delete, value)
  self
end

#expected(value) ⇒ Object



48
49
50
51
# File 'lib/dymos/query/update_item.rb', line 48

def expected(value)
  value.map { |v| add_expected(*v) }
  self
end

#expression_attribute_names(value) ⇒ Object



99
100
101
102
# File 'lib/dymos/query/update_item.rb', line 99

def expression_attribute_names(value)
  @query[:expression_attribute_names] = value.deep_stringify_keys
  self
end

#expression_attribute_values(value) ⇒ Object



104
105
106
107
# File 'lib/dymos/query/update_item.rb', line 104

def expression_attribute_values(value)
  @query[:expression_attribute_values] = value.deep_stringify_keys
  self
end

#key(value) ⇒ Object



8
9
10
11
# File 'lib/dymos/query/update_item.rb', line 8

def key(value)
  @query[:key] = value.deep_stringify_keys
  self
end

#put(column, value) ⇒ Object



18
19
20
21
# File 'lib/dymos/query/update_item.rb', line 18

def put(column, value)
  add_attribute_updates(column, :put, value)
  self
end

#return_consumed_capacity(value) ⇒ Object



79
80
81
82
# File 'lib/dymos/query/update_item.rb', line 79

def return_consumed_capacity(value)
  @query[:return_consumed_capacity] = value.to_s.upcase
  self
end

#return_item_collection_metrics(value) ⇒ Object



84
85
86
87
# File 'lib/dymos/query/update_item.rb', line 84

def return_item_collection_metrics(value)
  @query[:return_item_collection_metrics] = value.to_s.upcase
  self
end

#return_values(value) ⇒ Object



74
75
76
77
# File 'lib/dymos/query/update_item.rb', line 74

def return_values(value)
  @query[:return_values] = value.to_s.upcase
  self
end

#update_expression(value) ⇒ Object



89
90
91
92
# File 'lib/dymos/query/update_item.rb', line 89

def update_expression(value)
  @query[:update_expression] = value
  self
end