FEATURE: propagate user status via message bus (#16944)

This commit is contained in:
Andrei Prigorshnev
2022-05-30 13:41:53 +04:00
committed by GitHub
parent 46302f0d40
commit 943cae82da
5 changed files with 39 additions and 4 deletions

View File

@ -653,6 +653,14 @@ class User < ActiveRecord::Base
MessageBus.publish("/do-not-disturb/#{id}", { ends_at: ends_at&.httpdate }, user_ids: [id])
end
def publish_user_status(status)
payload = status ?
{ description: status.description, emoji: status.emoji } :
nil
MessageBus.publish("/user-status/#{id}", payload, user_ids: [id])
end
def password=(password)
# special case for passwordless accounts
unless password.blank?
@ -1503,6 +1511,7 @@ class User < ActiveRecord::Base
def clear_status!
user_status.destroy! if user_status
publish_user_status(nil)
end
def set_status!(description)
@ -1516,6 +1525,8 @@ class User < ActiveRecord::Base
set_at: now
)
end
publish_user_status(user_status)
end
protected