class Storage::Algolia::Actions::Update

Attributes

id[R]
model_name[R]
params[R]
retries[R]

Public Class Methods

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

Public Instance Methods

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

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

Private Instance Methods

original_object() click to toggle source
# File lib/storage/algolia/actions/update.rb, line 32
def original_object
  @original_object ||= ::Storage::Algolia::Actions::Get.process(
    model_name: model_name,
    id: id
  )
end
task() click to toggle source
# File lib/storage/algolia/actions/update.rb, line 39
def task
  @task ||= index.partial_update_object(params, id)
end