Method: Dynamini::TestClient#batch_write_item

Defined in:
lib/dynamini/test_client.rb

#batch_write_item(request_options) ⇒ Object

TODO add range key support for delete, not currently implemented batch_operations.batch_delete



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/dynamini/test_client.rb', line 88

def batch_write_item(request_options)
  request_options[:request_items].each do |table_name, requests|
    table = get_table(table_name)

    requests.each do |request_hash|
      if request_hash[:put_request]
        item = request_hash[:put_request][:item].symbolize_keys
        hash_key_value = item[hash_key_attr]
        if range_key_attr.present?
          range_key_value = item[range_key_attr]
          table[hash_key_value] = {} if table[hash_key_value].nil?
          table[hash_key_value][range_key_value] = item
        else
          table[hash_key_value] = item
        end
      else
        item = request_hash[:delete_request][:key]
        id = item[hash_key_attr]
        table.delete(id)
      end
    end
  end
end