我希望为 GitHub - discourse/discourse-assign: Plugin for assigning users to a topic 做出贡献,并希望添加一项功能,在将主题标记为解决方案时取消分配用户。我设置了一个 webhook 到 webhook.site 来监视一个标记为解决方案的测试主题,但响应的对象与已关闭的主题不同,并且标头也不同。
在下面的示例中,当主题有解决方案时,应该查找哪个主题状态?
on(:topic_status_updated) do |topic, status, enabled|
if SiteSetting.unassign_on_close && (status == "closed" || status == "autoclosed") && enabled &&
Assignment.exists?(topic_id: topic.id, active: true)
assigner = ::Assigner.new(topic, Discourse.system_user)
assigner.unassign(silent: true, deactivate: true)
topic
.posts
.joins(:assignment)
.find_each do |post|
assigner = ::Assigner.new(post, Discourse.system_user)
assigner.unassign(silent: true, deactivate: true)
end
MessageBus.publish("/topic/#{topic.id}", reload_topic: true, refresh_stream: true)
end
end