Class: ProtectedRecord::UseCase::ChangeLog::Create

Inherits:
Object
  • Object
show all
Includes:
PayDirt::UseCase
Defined in:
lib/protected_record/use_case/change_log/create.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Create

Returns a new instance of Create.



8
9
10
11
12
13
14
# File 'lib/protected_record/use_case/change_log/create.rb', line 8

def initialize(options)
  options = {
    record_class: ::ProtectedRecord::ChangeLog::Record
  }.merge!(options) if !options.has_key?(:record_class)

  load_options(:record_class, :user, :changed_object, options)
end

Instance Method Details

#execute!Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/protected_record/use_case/change_log/create.rb', line 16

def execute!
  if !@changed_object.previous_changes.present?
    return PayDirt::Result.new(data: { change_log_record: @record }, success: true)
  end
  initialize_change_log_record

  if @record.save
    return PayDirt::Result.new(data: { change_log_record: @record }, success: true)
  else
    return PayDirt::Result.new(data: { change_log_record: @record }, success: false)
  end
end