# frozen_string_literal: true class AfterRemoteFollowWorker include Sidekiq::Worker sidekiq_options queue: 'pull', retry: 5 attr_reader :follow def perform(follow_id) @follow = Follow.find(follow_id) process_follow_service if processing_required? rescue ActiveRecord::RecordNotFound true end private def process_follow_service follow.destroy FollowService.new.call(follow.account, updated_account.acct) end def updated_account @_updated_account ||= FetchRemoteAccountService.new.call(follow.target_account.remote_url) end def processing_required? !updated_account.nil? && updated_account.locked? end end