31 lines
753 B
Ruby
31 lines
753 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Returns hashes of attributes suitable for passing to `.insert_all` or `update_all`
|
|
module Integrations
|
|
module BulkOperationHashes
|
|
private
|
|
|
|
def integration_hash(operation)
|
|
integration
|
|
.to_database_hash
|
|
.merge('inherit_from_id' => integration.inherit_from_id || integration.id)
|
|
.merge(update_timestamps(operation))
|
|
end
|
|
|
|
def data_fields_hash(operation)
|
|
integration
|
|
.data_fields
|
|
.to_database_hash
|
|
.merge(update_timestamps(operation))
|
|
end
|
|
|
|
def update_timestamps(operation)
|
|
time_now = Time.current
|
|
|
|
{
|
|
'created_at' => (time_now if operation == :create),
|
|
'updated_at' => time_now
|
|
}.compact
|
|
end
|
|
end
|
|
end
|