summaryrefslogtreecommitdiff
path: root/app/models/discussion.rb
diff options
context:
space:
mode:
authorJan Provaznik <jprovaznik@gitlab.com>2019-07-10 05:52:18 +0000
committerJan Provaznik <jprovaznik@gitlab.com>2019-07-10 05:52:18 +0000
commit810df4fb51bf3db4016c5f7458599331d4586300 (patch)
tree6d034939842822b4173d99df698aed00a47fbe68 /app/models/discussion.rb
parent227d8b4445fa1257b525945a34a2e301369736a4 (diff)
parent073c8b25ea36b6b96eab05eb675e8726b1d5318e (diff)
downloadgitlab-ce-810df4fb51bf3db4016c5f7458599331d4586300.tar.gz
Merge branch '62826-graphql-note-mutations' into 'master'
GraphQL mutations for managing Notes See merge request gitlab-org/gitlab-ce!30210
Diffstat (limited to 'app/models/discussion.rb')
-rw-r--r--app/models/discussion.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/models/discussion.rb b/app/models/discussion.rb
index ae13cdfd85f..dd896f77084 100644
--- a/app/models/discussion.rb
+++ b/app/models/discussion.rb
@@ -38,6 +38,17 @@ class Discussion
grouped_notes.values.map { |notes| build(notes, context_noteable) }
end
+ def self.lazy_find(discussion_id)
+ BatchLoader.for(discussion_id).batch do |discussion_ids, loader|
+ results = Note.where(discussion_id: discussion_ids).fresh.to_a.group_by(&:discussion_id)
+ results.each do |discussion_id, notes|
+ next if notes.empty?
+
+ loader.call(discussion_id, Discussion.build(notes))
+ end
+ end
+ end
+
# Returns an alphanumeric discussion ID based on `build_discussion_id`
def self.discussion_id(note)
Digest::SHA1.hexdigest(build_discussion_id(note).join("-"))