21
22
23
24
25
26
27
28
29
30
|
# File 'lib/dyna_model/query.rb', line 21
def read(hash_value, range_value_or_options=nil, options=nil)
if self.range_key.nil?
item_attrs = self.dynamo_db_table.get_item(hash_value, range_value_or_options || {})[:item]
return nil if item_attrs.nil?
self.obj_from_attrs(Table.values_from_response_hash(item_attrs), (range_value_or_options || {}))
else
raise ArgumentError, "This table requires a range_key_value" if range_value_or_options.nil?
self.read_range(hash_value, (options || {}).merge(range: { self.range_key[:attribute_name].to_sym.eq => range_value_or_options})).first
end
end
|