Method: Dynamoid::Persistence::Upsert#call

Defined in:
lib/dynamoid/persistence/upsert.rb

#callObject



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/dynamoid/persistence/upsert.rb', line 21

def call
  validate_primary_key!
  UpdateValidations.validate_attributes_exist(@model_class, @attributes)

  if @model_class.timestamps_enabled?
    @attributes[:updated_at] ||= DateTime.now.in_time_zone(Time.zone)
  end

  raw_attributes = update_item
  @model_class.new(undump_attributes(raw_attributes))
rescue Dynamoid::Errors::ConditionalCheckFailedException
end