Class: Logeater::Request

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/logeater/request.rb

Class Method Summary collapse

Class Method Details

.import(values) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/logeater/request.rb', line 8

def self.import(values)
  # values have to be unique by uuid
  values = values.uniq { |request| request.uuid }

  super values
rescue PG::UniqueViolation, ActiveRecord::RecordNotUnique
  # try again after skipping requests with existing uuids
  existing_uuids = where(uuid: values.map(&:uuid)).pluck(:uuid)
  values = values.reject { |request| existing_uuids.member?(request.uuid) }

  super values
end