app/jobs/bulkrax/importer_job.rb in bulkrax-1.0.2 vs app/jobs/bulkrax/importer_job.rb in bulkrax-2.0.0

- old
+ new

@@ -4,20 +4,35 @@ class ImporterJob < ApplicationJob queue_as :import def perform(importer_id, only_updates_since_last_import = false) importer = Importer.find(importer_id) + importer.current_run + unzip_imported_file(importer.parser) import(importer, only_updates_since_last_import) + update_current_run_counters(importer) schedule(importer) if importer.schedulable? end def import(importer, only_updates_since_last_import) importer.only_updates = only_updates_since_last_import || false return unless importer.valid_import? + importer.import_collections importer.import_works - importer.create_parent_child_relationships unless importer.validate_only + end + + def unzip_imported_file(parser) + return unless parser.file? && parser.zip? + + parser.unzip(parser.parser_fields['import_file_path']) + end + + def update_current_run_counters(importer) + importer.current_run.total_work_entries = importer.limit || importer.parser.works_total + importer.current_run.total_collection_entries = importer.parser.collections_total + importer.current_run.save! end def schedule(importer) ImporterJob.set(wait_until: importer.next_import_at).perform_later(importer.id, true) end