class FileImportProcessorJob
def run_csv_importer(importer, file_import)
def run_csv_importer(importer, file_import) if importer.valid_header? importer.run! if importer.report.success? file_import.update(status: :success, completed_at: DateTime.now) else identifier = importer.config.identifiers.first invalid_items_array = importer.report.invalid_rows.map { |row| [row.line_number, row.model.send(identifier), row.errors] } file_import.update(status: :failed, completed_at: DateTime.now, invalid_row_items: invalid_items_array) end else file_import.update(status: :failed, completed_at: DateTime.now, invalid_row_items: [[1, 'invalid_header', {invalid_header: importer.report.message}]]) end end