diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-02-03 03:59:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-03 03:59:51 +0100 |
commit | d14c276e58f0f223b0e4889d342a948c961081b2 (patch) | |
tree | f25b687f755725ee58b80ab2281dc368f5dc42eb /app/workers | |
parent | c5071f2d787e81251c2b3111074b20d94773ee44 (diff) |
Add option to overwrite imported data (#9962)
* Add option to overwrite imported data Fix #7465 * Add import for domain blocks
Diffstat (limited to 'app/workers')
-rw-r--r-- | app/workers/import/relationship_worker.rb | 8 | ||||
-rw-r--r-- | app/workers/import_worker.rb | 38 |
2 files changed, 11 insertions, 35 deletions
diff --git a/app/workers/import/relationship_worker.rb b/app/workers/import/relationship_worker.rb index 1dd8bf8fb..e9db20a46 100644 --- a/app/workers/import/relationship_worker.rb +++ b/app/workers/import/relationship_worker.rb @@ -13,11 +13,17 @@ class Import::RelationshipWorker case relationship when 'follow' - FollowService.new.call(from_account, target_account.acct) + FollowService.new.call(from_account, target_account) + when 'unfollow' + UnfollowService.new.call(from_account, target_account) when 'block' BlockService.new.call(from_account, target_account) + when 'unblock' + UnblockService.new.call(from_account, target_account) when 'mute' MuteService.new.call(from_account, target_account) + when 'unmute' + UnmuteService.new.call(from_account, target_account) end rescue ActiveRecord::RecordNotFound true diff --git a/app/workers/import_worker.rb b/app/workers/import_worker.rb index aeb221cf6..dfa71b29e 100644 --- a/app/workers/import_worker.rb +++ b/app/workers/import_worker.rb @@ -1,44 +1,14 @@ # frozen_string_literal: true -require 'csv' - class ImportWorker include Sidekiq::Worker sidekiq_options queue: 'pull', retry: false - attr_reader :import - def perform(import_id) - @import = Import.find(import_id) - - Import::RelationshipWorker.push_bulk(import_rows) do |row| - [@import.account_id, row.first, relationship_type] - end - - @import.destroy - end - - private - - def import_contents - Paperclip.io_adapters.for(@import.data).read - end - - def relationship_type - case @import.type - when 'following' - 'follow' - when 'blocking' - 'block' - when 'muting' - 'mute' - end - end - - def import_rows - rows = CSV.new(import_contents).reject(&:blank?) - rows = rows.take(FollowLimitValidator.limit_for_account(@import.account)) if @import.type == 'following' - rows + import = Import.find(import_id) + ImportService.new.call(import) + ensure + import&.destroy end end |