トピックが解決済みとしてマークされたときにユーザーを解除する機能を追加したいと考えています。discourse/discourse-assign に貢献したいと考えています。解決済みのトピックを監視するために webhook.site で Webhook を設定しましたが、たとえばトピックが閉じられた場合とは異なるオブジェクトとヘッダーが返されます。
以下の例では、トピックに解決済みのマークが付いたときに調べるべきトピックのステータスは何ですか?
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