class Storage::Algolia::Actions::Create

Attributes

model_name[R]
params[R]

Public Class Methods

new(model_name:, params:) click to toggle source
# File lib/storage/algolia/actions/create.rb, line 11
def initialize(model_name:, params:)
  @model_name = model_name
  @params = params
end

Public Instance Methods

process() click to toggle source
# File lib/storage/algolia/actions/create.rb, line 16
def process
  raise Exception unless task.dig('objectID')

  normalize params.to_hash.merge(
    objectID: task.dig('objectID'),
    updatedAt: task.dig('updatedAt')
  )
end

Private Instance Methods

payload() click to toggle source
# File lib/storage/algolia/actions/create.rb, line 31
def payload
  { objectID: SecureRandom.uuid }.merge(params)
end
task() click to toggle source
# File lib/storage/algolia/actions/create.rb, line 27
def task
  @task ||= index.save_object(payload)
end
uuid() click to toggle source
# File lib/storage/algolia/actions/create.rb, line 35
def uuid
  @uuid ||= ::SecureRandom.uuid
end