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



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

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



44
45
46
47
48
49
50
# File 'lib/dymos/query/update_item.rb', line 44

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(*value) ⇒ Object



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

def add_attribute_updates(*value)
  if value.count == 2
    column, operator, value = value[0], :put, value[1]
  else
    column, operator, value = value
  end
  @query[:attribute_updates] ||= {}
  @query[:attribute_updates].store(*_attribute_updates(column, operator, value))
  self
end

#add_expected(*value) ⇒ Object



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

def add_expected(*value)
  if value.count == 2
    column, operator, value = value[0], :eq, value[1]
  else
    column, operator, value = value
  end
  @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



102
103
104
105
# File 'lib/dymos/query/update_item.rb', line 102

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

#conditional_operator(value) ⇒ Object



76
77
78
79
# File 'lib/dymos/query/update_item.rb', line 76

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



52
53
54
55
# File 'lib/dymos/query/update_item.rb', line 52

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

#expression_attribute_names(value) ⇒ Object



107
108
109
110
# File 'lib/dymos/query/update_item.rb', line 107

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

#expression_attribute_values(value) ⇒ Object



112
113
114
115
# File 'lib/dymos/query/update_item.rb', line 112

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



87
88
89
90
# File 'lib/dymos/query/update_item.rb', line 87

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

#return_item_collection_metrics(value) ⇒ Object



92
93
94
95
# File 'lib/dymos/query/update_item.rb', line 92

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

#return_values(value) ⇒ Object



82
83
84
85
# File 'lib/dymos/query/update_item.rb', line 82

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

#update_expression(value) ⇒ Object



97
98
99
100
# File 'lib/dymos/query/update_item.rb', line 97

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