fix feature job so it does not fail out when a topic is deleted

This commit is contained in:
Sam 2013-04-18 09:34:58 +10:00
parent b64a4100fa
commit cb8f3f1a6f

View file

@ -3,8 +3,21 @@ module Jobs
class FeatureTopicUsers < Jobs::Base class FeatureTopicUsers < Jobs::Base
def execute(args) def execute(args)
topic = Topic.where(id: args[:topic_id]).first topic_id = args[:topic_id]
raise Discourse::InvalidParameters.new(:topic_id) unless topic.present? raise Discourse::InvalidParameters.new(:topic_id) unless topic_id.present?
topic = Topic.where(id: topic_id).first
# there are 3 cases here
# 1. topic was atomically nuked, this should be skipped
# 2. topic was deleted, this should be skipped
# 3. error an incorrect topic_id was sent
unless topic.present?
max_id = Topic.with_deleted.maximum(:id).to_i
raise Discourse::InvalidParameters.new(:topic_id) if max_id < topic_id
return
end
topic.feature_topic_users(args) topic.feature_topic_users(args)
end end