Add support for editing for published statuses (#16697)
* Add support for editing for published statuses * Fix references to stripped-out code * Various fixes and improvements * Further fixes and improvements * Fix updates being potentially sent to unauthorized recipients * Various fixes and improvements * Fix wrong words in test * Fix notifying accounts that were tagged but were not in the audience * Fix mistake
This commit is contained in:
parent
2d1f082bb6
commit
1060666c58
56 changed files with 1415 additions and 574 deletions
|
@ -3,9 +3,10 @@
|
|||
class FeedInsertWorker
|
||||
include Sidekiq::Worker
|
||||
|
||||
def perform(status_id, id, type = :home)
|
||||
@type = type.to_sym
|
||||
@status = Status.find(status_id)
|
||||
def perform(status_id, id, type = :home, options = {})
|
||||
@type = type.to_sym
|
||||
@status = Status.find(status_id)
|
||||
@options = options.symbolize_keys
|
||||
|
||||
case @type
|
||||
when :home
|
||||
|
@ -23,10 +24,12 @@ class FeedInsertWorker
|
|||
private
|
||||
|
||||
def check_and_insert
|
||||
return if feed_filtered?
|
||||
|
||||
perform_push
|
||||
perform_notify if notify?
|
||||
if feed_filtered?
|
||||
perform_unpush if update?
|
||||
else
|
||||
perform_push
|
||||
perform_notify if notify?
|
||||
end
|
||||
end
|
||||
|
||||
def feed_filtered?
|
||||
|
@ -47,13 +50,26 @@ class FeedInsertWorker
|
|||
def perform_push
|
||||
case @type
|
||||
when :home
|
||||
FeedManager.instance.push_to_home(@follower, @status)
|
||||
FeedManager.instance.push_to_home(@follower, @status, update: update?)
|
||||
when :list
|
||||
FeedManager.instance.push_to_list(@list, @status)
|
||||
FeedManager.instance.push_to_list(@list, @status, update: update?)
|
||||
end
|
||||
end
|
||||
|
||||
def perform_unpush
|
||||
case @type
|
||||
when :home
|
||||
FeedManager.instance.unpush_from_home(@follower, @status, update: true)
|
||||
when :list
|
||||
FeedManager.instance.unpush_from_list(@list, @status, update: true)
|
||||
end
|
||||
end
|
||||
|
||||
def perform_notify
|
||||
NotifyService.new.call(@follower, :status, @status)
|
||||
end
|
||||
|
||||
def update?
|
||||
@options[:update]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue