Skip to content
Snippets Groups Projects
Verified Commit e461daa7 authored by Anusha Ranganathan's avatar Anusha Ranganathan Committed by Pascal Ernster
Browse files

Add helper to rerun last import run

parent d07c12b7
Branches master
No related tags found
No related merge requests found
Pipeline #14292 failed
...@@ -2,58 +2,11 @@ ...@@ -2,58 +2,11 @@
module Bulkrax module Bulkrax
class RerunImportersController < ApplicationController class RerunImportersController < ApplicationController
include BulkraxHelper
before_action :set_importer, only: [:rerun_failed_entries, :marked_as_complete] before_action :set_importer, only: [:rerun_failed_entries, :marked_as_complete]
def rerun_failed_entries def rerun_failed_entries
current_run = @importer.last_run rerun_failed_entries_in_last_run
if current_run&.failed_records&.positive?
ScheduleRelationshipsJob.set(wait: 5.minutes).perform_later(importer_id: @importer.id)
@importer.status_info('Pending')
@importer.entries.each do |entry|
next if entry.status == 'Complete'
type = if entry.raw_metadata['model'] == 'CrcDataset'
'Work'
else
entry.raw_metadata['model']
end
entry.status_info('Pending')
current_run.decrement!(:failed_records)
current_run.increment!(:enqueued_records)
if type == 'Collection'
current_run.decrement!(:failed_collections)
elsif type == 'Work'
current_run.decrement!(:failed_works)
elsif type == 'FileSet'
current_run.decrement!(:failed_file_sets)
elsif type == 'ComplexSubject'
current_run.decrement!(:failed_complex_subjects)
elsif type == 'ComplexSession'
current_run.decrement!(:failed_complex_sessions)
elsif type == 'ComplexModality'
current_run.decrement!(:failed_complex_modalities)
end
"Bulkrax::CrcDataset::Import#{type}Job".constantize.send(
entry.parser.perform_method,
entry.id,
@importer.importer_runs.last.id
)
end
current_run.save
elsif current_run && @importer.parser.total.positive? && current_run.processed_records.zero?
Bulkrax::ImporterJob.send(
@importer.parser.perform_method,
@importer.id
)
end
redirect_to importers_path redirect_to importers_path
end end
......
module BulkraxHelper
def rerun_failed_entries_in_last_run
current_run = @importer.last_run
if current_run&.failed_records&.positive?
ScheduleRelationshipsJob.set(wait: 5.minutes).perform_later(importer_id: @importer.id)
@importer.status_info('Pending')
@importer.entries.each do |entry|
next if entry.status == 'Complete'
type = if entry.raw_metadata['model'] == 'CrcDataset'
'Work'
else
entry.raw_metadata['model']
end
entry.status_info('Pending')
current_run.decrement!(:failed_records)
current_run.increment!(:enqueued_records)
if type == 'Collection'
current_run.decrement!(:failed_collections)
elsif type == 'Work'
current_run.decrement!(:failed_works)
elsif type == 'FileSet'
current_run.decrement!(:failed_file_sets)
elsif type == 'ComplexSubject'
current_run.decrement!(:failed_complex_subjects)
elsif type == 'ComplexSession'
current_run.decrement!(:failed_complex_sessions)
elsif type == 'ComplexModality'
current_run.decrement!(:failed_complex_modalities)
end
"Bulkrax::CrcDataset::Import#{type}Job".constantize.send(
entry.parser.perform_method,
entry.id,
@importer.importer_runs.last.id
)
end
current_run.save
elsif current_run && @importer.parser.total.positive? && current_run.processed_records.zero?
Bulkrax::ImporterJob.send(
@importer.parser.perform_method,
@importer.id
)
end
end
end
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment