mirror of
https://github.com/discourse/discourse.git
synced 2024-11-29 20:24:05 -06:00
Merge pull request #888 from novemberkilo/master
Refactor to reduce complexity of Post#save_reply_relationships
This commit is contained in:
commit
c0c97487d8
@ -435,21 +435,15 @@ class Post < ActiveRecord::Base
|
||||
self.quote_count = temp_collector.size
|
||||
end
|
||||
|
||||
|
||||
def save_reply_relationships
|
||||
self.quoted_post_numbers ||= []
|
||||
self.quoted_post_numbers << reply_to_post_number if reply_to_post_number.present?
|
||||
add_to_quoted_post_numbers(reply_to_post_number)
|
||||
return if self.quoted_post_numbers.blank?
|
||||
|
||||
# Create a reply relationship between quoted posts and this new post
|
||||
if self.quoted_post_numbers.present?
|
||||
self.quoted_post_numbers.map(&:to_i).uniq.each do |p|
|
||||
post = Post.where(topic_id: topic_id, post_number: p).first
|
||||
if post.present?
|
||||
post_reply = post.post_replies.new(reply_id: id)
|
||||
if post_reply.save
|
||||
Post.update_all ['reply_count = reply_count + 1'], id: post.id
|
||||
end
|
||||
end
|
||||
end
|
||||
self.quoted_post_numbers.each do |p|
|
||||
post = Post.where(topic_id: topic_id, post_number: p).first
|
||||
create_reply_relationship_with(post)
|
||||
end
|
||||
end
|
||||
|
||||
@ -488,6 +482,19 @@ class Post < ActiveRecord::Base
|
||||
args
|
||||
end
|
||||
|
||||
def add_to_quoted_post_numbers(num)
|
||||
return unless num.present?
|
||||
self.quoted_post_numbers ||= []
|
||||
self.quoted_post_numbers << num
|
||||
end
|
||||
|
||||
def create_reply_relationship_with(post)
|
||||
return if post.nil?
|
||||
post_reply = post.post_replies.new(reply_id: id)
|
||||
if post_reply.save
|
||||
Post.update_all ['reply_count = reply_count + 1'], id: post.id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# == Schema Information
|
||||
|
Loading…
Reference in New Issue
Block a user