Class: Alchemy::Solidus::InvalidateElementsCacheJob

Inherits:
BaseJob
  • Object
show all
Defined in:
app/jobs/alchemy/solidus/invalidate_elements_cache_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(model_name, id) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/jobs/alchemy/solidus/invalidate_elements_cache_job.rb', line 6

def perform(model_name, id)
  now = Time.current

  element_ids = model(model_name)
    .where(related_object_id: id)
    .joins(:element)
    .pluck("alchemy_elements.id")
  elements = ::Alchemy::Element.where(id: element_ids)

  all_element_ids = get_all_element_ids(elements, element_ids)
  ::Alchemy::Element.where(id: all_element_ids.uniq).update_all(updated_at: now)

  page_ids = elements.joins(page_version: :page).pluck("alchemy_pages.id")
  ::Alchemy::Page.where(id: page_ids.uniq).update_all(updated_at: now)
end