Class: GroupArchivedMessage
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- GroupArchivedMessage
- Defined in:
- app/models/group_archived_message.rb
Class Method Summary collapse
- .archive!(group_id, topic, opts = {}) ⇒ Object
- .move_to_inbox!(group_id, topic, opts = {}) ⇒ Object
- .trigger(event, group_id, topic_id) ⇒ Object
Class Method Details
.archive!(group_id, topic, opts = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/models/group_archived_message.rb', line 22 def self.archive!(group_id, topic, opts = {}) topic_id = topic.id destroyed = GroupArchivedMessage.where(group_id: group_id, topic_id: topic_id).destroy_all GroupArchivedMessage.create!(group_id: group_id, topic_id: topic_id) trigger(:archive_message, group_id, topic_id) MessageBus.publish("/topic/#{topic_id}", { type: "archived" }, group_ids: [group_id]) publish_topic_tracking_state(topic, group_id, opts[:acting_user_id]) set_imap_sync(topic_id) if !opts[:skip_imap_sync] && destroyed.blank? Jobs.enqueue( :group_pm_update_summary, group_id: group_id, topic_id: topic_id, acting_user_id: opts[:acting_user_id], ) end |
.move_to_inbox!(group_id, topic, opts = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/models/group_archived_message.rb', line 7 def self.move_to_inbox!(group_id, topic, opts = {}) topic_id = topic.id destroyed = GroupArchivedMessage.where(group_id: group_id, topic_id: topic_id).destroy_all trigger(:move_to_inbox, group_id, topic_id) MessageBus.publish("/topic/#{topic_id}", { type: "move_to_inbox" }, group_ids: [group_id]) publish_topic_tracking_state(topic, group_id, opts[:acting_user_id]) set_imap_sync(topic_id) if !opts[:skip_imap_sync] && destroyed.present? Jobs.enqueue( :group_pm_update_summary, group_id: group_id, topic_id: topic_id, acting_user_id: opts[:acting_user_id], ) end |
.trigger(event, group_id, topic_id) ⇒ Object
38 39 40 41 42 |
# File 'app/models/group_archived_message.rb', line 38 def self.trigger(event, group_id, topic_id) group = Group.find_by(id: group_id) topic = Topic.find_by(id: topic_id) DiscourseEvent.trigger(event, group: group, topic: topic) if group && topic end |