discourse/app/jobs/regular/notify_category_change.rb
Krzysztof Kotlarek 69266f60ed FIX: tag and category watchers regression (#8336)
I made a regression here 17366d3bcc (diff-ddeebb36d131f89ca91be9d04c2baefaR10)

When the tag is added, people watching specific tag are notified but also people watching specific category.

Therefore, `notify_post_users` should accept options who should be notified.

So when `category` is added to the topic, users watching topic and users watching category are notified.

When `tag` is added to the topic, users watching topic and users watching tag are notified

Finally, when a new post is created, everybody is notified, topic watchers, category watchers, tag watchers.
2019-11-12 16:44:46 +11:00

16 lines
468 B
Ruby

# frozen_string_literal: true
module Jobs
class NotifyCategoryChange < ::Jobs::Base
def execute(args)
post = Post.find_by(id: args[:post_id])
if post&.topic&.visible?
post_alerter = PostAlerter.new
post_alerter.notify_post_users(post, User.where(id: args[:notified_user_ids]), include_tag_watchers: false)
post_alerter.notify_first_post_watchers(post, post_alerter.category_watchers(post.topic))
end
end
end
end