summaryrefslogtreecommitdiff
path: root/app/models/concerns/work_item_resource_event.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/concerns/work_item_resource_event.rb')
-rw-r--r--app/models/concerns/work_item_resource_event.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/app/models/concerns/work_item_resource_event.rb b/app/models/concerns/work_item_resource_event.rb
index d0323feb029..ddf39787f63 100644
--- a/app/models/concerns/work_item_resource_event.rb
+++ b/app/models/concerns/work_item_resource_event.rb
@@ -5,6 +5,18 @@ module WorkItemResourceEvent
included do
belongs_to :work_item, foreign_key: 'issue_id'
+
+ scope :with_work_item, -> { preload(:work_item) }
+
+ # These events are created also on non work items, e.g. MRs, Epic however system notes subscription
+ # is only implemented on work items, so we do check if this event is linked to an work item. This can be
+ # expanded to other issuables later on.
+ after_commit :trigger_note_subscription_create, on: :create, if: -> { work_item.present? }
+ end
+
+ # System notes are not updated or deleted, so firing just the noteCreated event.
+ def trigger_note_subscription_create(events: self)
+ GraphqlTriggers.work_item_note_created(work_item.to_gid, events)
end
def work_item_synthetic_system_note(events: nil)