- # frozen_string_literal: true
-
- class FeedInsertWorker
- include Sidekiq::Worker
-
- attr_reader :status, :follower
-
- def perform(status_id, follower_id)
- @status = Status.find_by(id: status_id)
- @follower = Account.find_by(id: follower_id)
-
- check_and_insert
- end
-
- private
-
- def check_and_insert
- if records_available?
- perform_push unless feed_filtered?
- else
- true
- end
- end
-
- def records_available?
- status.present? && follower.present?
- end
-
- def feed_filtered?
- FeedManager.instance.filter?(:home, status, follower.id)
- end
-
- def perform_push
- FeedManager.instance.push(:home, follower, status)
- end
- end
|