class Tartarus::ArchiveModelWithTenant
Attributes
registry[R]
repository[R]
Public Class Methods
new(registry: Tartarus.registry, repository: Tartarus::ArchivableCollectionRepository.new)
click to toggle source
# File lib/tartarus/archive_model_with_tenant.rb, line 5 def initialize(registry: Tartarus.registry, repository: Tartarus::ArchivableCollectionRepository.new) @registry = registry @repository = repository end
Public Instance Methods
archive(archivable_item_name, tenant_id)
click to toggle source
# File lib/tartarus/archive_model_with_tenant.rb, line 10 def archive(archivable_item_name, tenant_id) archivable_item = registry.find_by_name(archivable_item_name) collection = collection_to_archive(archivable_item, tenant_id) archivable_item.remote_storage.store(collection, archivable_item.name, tenant_id: tenant_id, tenant_id_field: archivable_item.tenant_id_field) archivable_item.archive_strategy.call(collection) end
Private Instance Methods
collection_to_archive(archivable_item, tenant_id)
click to toggle source
# File lib/tartarus/archive_model_with_tenant.rb, line 20 def collection_to_archive(archivable_item, tenant_id) repository .items_older_than_for_tenant( archivable_item.model, archivable_item.timestamp_field, archivable_item.archive_items_older_than.call, archivable_item.tenant_id_field, tenant_id ) end