Class: UserArchivedMessage
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- UserArchivedMessage
- Defined in:
- app/models/user_archived_message.rb
Class Method Summary collapse
- .archive!(user_id, topic) ⇒ Object
- .move_to_inbox!(user_id, topic) ⇒ Object
- .trigger(event, user_id, topic_id) ⇒ Object
Class Method Details
.archive!(user_id, topic) ⇒ Object
25 26 27 28 29 30 31 |
# File 'app/models/user_archived_message.rb', line 25 def self.archive!(user_id, topic) topic_id = topic.id UserArchivedMessage.where(user_id: user_id, topic_id: topic_id).destroy_all UserArchivedMessage.create!(user_id: user_id, topic_id: topic_id) trigger(:archive_message, user_id, topic_id) MessageBus.publish("/topic/#{topic_id}", { type: "archived" }, user_ids: [user_id]) end |
.move_to_inbox!(user_id, topic) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/models/user_archived_message.rb', line 7 def self.move_to_inbox!(user_id, topic) topic_id = topic.id if ( TopicUser.where( user_id: user_id, topic_id: topic_id, notification_level: TopicUser.notification_levels[:muted], ).exists? ) return end UserArchivedMessage.where(user_id: user_id, topic_id: topic_id).destroy_all trigger(:move_to_inbox, user_id, topic_id) MessageBus.publish("/topic/#{topic_id}", { type: "move_to_inbox" }, user_ids: [user_id]) end |
.trigger(event, user_id, topic_id) ⇒ Object
33 34 35 36 37 |
# File 'app/models/user_archived_message.rb', line 33 def self.trigger(event, user_id, topic_id) user = User.find_by(id: user_id) topic = Topic.find_by(id: topic_id) DiscourseEvent.trigger(event, user: user, topic: topic) if user && topic end |