app/controllers/bulkrax/importers_controller.rb in bulkrax-1.0.2 vs app/controllers/bulkrax/importers_controller.rb in bulkrax-2.0.0

- old
+ new

@@ -111,27 +111,13 @@ field_mapping_params if params[:importer][:parser_fields].present? if @importer.update(importer_params) files_for_import(file, cloud_files) unless file.nil? && cloud_files.nil? # do not perform the import - if params[:commit] == 'Update Importer' - # do nothing - # OAI-only - selective re-harvest - elsif params[:commit] == 'Update and Harvest Updated Items' - Bulkrax::ImporterJob.perform_later(@importer.id, true) - elsif params[:commit] == 'Update Metadata and Files' - @importer.parser_fields['update_files'] = true - @importer.save - Bulkrax::ImporterJob.perform_later(@importer.id) - # Perform a full metadata and files re-import; do the same for an OAI re-harvest of all items - elsif params[:commit] == ('Update and Replace Files' || 'Update and Re-Harvest All Items') - @importer.parser_fields['replace_files'] = true - @importer.save - Bulkrax::ImporterJob.perform_later(@importer.id) - # In all other cases, perform a metadata-only re-import - else - Bulkrax::ImporterJob.perform_later(@importer.id) + unless params[:commit] == 'Update Importer' + set_files_parser_fields + Bulkrax::ImporterJob.send(@importer.parser.perform_method, @importer.id, update_harvest) end if api_request? json_response('updated', :ok, 'Importer was successfully updated.') else redirect_to importers_path, notice: 'Importer was successfully updated.' @@ -307,9 +293,28 @@ json_response('create', :created, message) else path = validate_only ? importer_path(@importer) : importers_path redirect_to path, notice: message end + end + + # update methods (for commit deciphering) + def update_harvest + # OAI-only - selective re-harvest + params[:commit] == 'Update and Harvest Updated Items' + end + + def set_files_parser_fields + if params[:commit] == 'Update Metadata and Files' + @importer.parser_fields['update_files'] = true + elsif params[:commit] == ('Update and Replace Files' || 'Update and Re-Harvest All Items') + @importer.parser_fields['replace_files'] = true + elsif params[:commit] == 'Update and Harvest Updated Items' + return + else + @importer.parser_fields['metadata_only'] = true + end + @importer.save end end # rubocop:enable Metrics/ClassLength end