Class: Llmemory::Maintenance::Reindexer

Inherits:
Object
  • Object
show all
Defined in:
lib/llmemory/maintenance/reindexer.rb

Constant Summary collapse

ARCHIVE_AFTER_DAYS =
180

Instance Method Summary collapse

Constructor Details

#initialize(storage) ⇒ Reindexer

Returns a new instance of Reindexer.



8
9
10
# File 'lib/llmemory/maintenance/reindexer.rb', line 8

def initialize(storage)
  @storage = storage
end

Instance Method Details

#run_monthly(user_id) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/llmemory/maintenance/reindexer.rb', line 12

def run_monthly(user_id)
  items = @storage.get_all_items(user_id)
  resources = @storage.get_all_resources(user_id)
  cutoff = Time.now - (ARCHIVE_AFTER_DAYS * 86400)

  old_item_ids = items.select { |i| i[:created_at] < cutoff }.map { |i| i[:id] }
  old_resource_ids = resources.select { |r| r[:created_at] < cutoff }.map { |r| r[:id] }

  @storage.archive_items(user_id, old_item_ids) if old_item_ids.any?
  @storage.archive_resources(user_id, old_resource_ids) if old_resource_ids.any?

  true
end