29 lines
733 B
Ruby
29 lines
733 B
Ruby
# frozen_string_literal: true
|
|
|
|
module BulkImports
|
|
class RelationExportWorker
|
|
include ApplicationWorker
|
|
include ExceptionBacktrace
|
|
|
|
idempotent!
|
|
deduplicate :until_executed
|
|
loggable_arguments 2, 3
|
|
data_consistency :always
|
|
feature_category :importers
|
|
sidekiq_options status_expiration: StuckExportJobsWorker::EXPORT_JOBS_EXPIRATION
|
|
|
|
def perform(user_id, portable_id, portable_class, relation)
|
|
user = User.find(user_id)
|
|
portable = portable(portable_id, portable_class)
|
|
|
|
RelationExportService.new(user, portable, relation, jid).execute
|
|
end
|
|
|
|
private
|
|
|
|
def portable(portable_id, portable_class)
|
|
portable_class.classify.constantize.find(portable_id)
|
|
end
|
|
end
|
|
end
|