# frozen_string_literal: true # Will parse the uploaded CSV file and save or update the members described in that file. # This import will be asynchronously proceed by sidekiq and a notification will be sent to the requesting user when it's done. class MembersImportWorker include Sidekiq::Worker def perform(import_id) import = Import.find(import_id) raise SecurityError, 'Not allowed to import' unless import.user.admin? raise KeyError, 'Wrong worker called' unless import.category == 'members' res = Members::ImportService.import(import) import.results = res.to_yaml import.save! NotificationCenter.call type: :notify_admin_import_complete, receiver: import.user, attached_object: import end end