Class: Decidim::Proposals::NotifyProposalsMentionedJob

Inherits:
ApplicationJob
  • Object
show all
Defined in:
app/jobs/decidim/proposals/notify_proposals_mentioned_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(comment_id, linked_proposals) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/jobs/decidim/proposals/notify_proposals_mentioned_job.rb', line 6

def perform(comment_id, linked_proposals)
  comment = Decidim::Comments::Comment.find(comment_id)

  linked_proposals.each do |proposal_id|
    proposal = Proposal.find(proposal_id)
    affected_users = proposal.notifiable_identities - [comment.author]

    Decidim::EventsManager.publish(
      event: "decidim.events.proposals.proposal_mentioned",
      event_class: Decidim::Proposals::ProposalMentionedEvent,
      resource: comment.root_commentable,
      affected_users:,
      extra: {
        comment_id: comment.id,
        mentioned_proposal_id: proposal_id
      }
    )
  end
end