Class: Agilibox::CollectionUpdate

Inherits:
Service
  • Object
show all
Defined in:
app/libs/agilibox/collection_update.rb

Instance Method Summary collapse

Methods inherited from Service

call

Instance Method Details

#callObject



4
5
6
# File 'app/libs/agilibox/collection_update.rb', line 4

def call
  update # rubocop:disable Rails/SaveBang
end

#updateObject



27
28
29
30
31
# File 'app/libs/agilibox/collection_update.rb', line 27

def update
  update!
rescue ActiveRecord::RecordInvalid
  false
end

#update!Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/libs/agilibox/collection_update.rb', line 8

def update!
  ApplicationRecord.transaction do
    params_array.each do |object_param|
      if object_param[:id].present?
        object = scope.find(object_param[:id])
      else
        object = scope.new
      end

      if object_param.delete(:_destroy).to_i == 1
        object.destroy!
      else
        object.update!(object_param)
      end
    end
  end
  true
end