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
|
@ -2,15 +2,38 @@
|
|||
|
||||
class PushUpdateWorker
|
||||
include Sidekiq::Worker
|
||||
include Redisable
|
||||
|
||||
def perform(account_id, status_id, timeline_id = nil)
|
||||
account = Account.find(account_id)
|
||||
status = Status.find(status_id)
|
||||
message = InlineRenderer.render(status, account, :status)
|
||||
timeline_id = "timeline:#{account.id}" if timeline_id.nil?
|
||||
def perform(account_id, status_id, timeline_id = nil, options = {})
|
||||
@account = Account.find(account_id)
|
||||
@status = Status.find(status_id)
|
||||
@timeline_id = timeline_id || "timeline:#{account.id}"
|
||||
@options = options.symbolize_keys
|
||||
|
||||
Redis.current.publish(timeline_id, Oj.dump(event: :update, payload: message, queued_at: (Time.now.to_f * 1000.0).to_i))
|
||||
publish!
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
true
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def payload
|
||||
InlineRenderer.render(@status, @account, :status)
|
||||
end
|
||||
|
||||
def message
|
||||
Oj.dump(
|
||||
event: update? ? :'status.update' : :update,
|
||||
payload: payload,
|
||||
queued_at: (Time.now.to_f * 1000.0).to_i
|
||||
)
|
||||
end
|
||||
|
||||
def publish!
|
||||
redis.publish(@timeline_id, message)
|
||||
end
|
||||
|
||||
def update?
|
||||
@options[:update]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue