fix feature job so it does not fail out when a topic is deleted
This commit is contained in:
parent
b64a4100fa
commit
cb8f3f1a6f
|
@ -3,8 +3,21 @@ module Jobs
|
|||
class FeatureTopicUsers < Jobs::Base
|
||||
|
||||
def execute(args)
|
||||
topic = Topic.where(id: args[:topic_id]).first
|
||||
raise Discourse::InvalidParameters.new(:topic_id) unless topic.present?
|
||||
topic_id = args[:topic_id]
|
||||
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)
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue