summaryrefslogtreecommitdiff
path: root/app/services/concerns
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@gitlab.com>2017-03-10 13:51:50 +0100
committerBob Van Landuyt <bob@gitlab.com>2017-03-13 08:27:52 +0100
commit0c6e685f8c6320312ed2272abc59be926e006d7c (patch)
tree448fe6ccf751d65393af49003247dba6c89efe51 /app/services/concerns
parent9541bad2647360c35916b6a402122501b5374c29 (diff)
downloadgitlab-ce-0c6e685f8c6320312ed2272abc59be926e006d7c.tar.gz
Move `ResolveDiscussions` into `concerns/issues` folder
Diffstat (limited to 'app/services/concerns')
-rw-r--r--app/services/concerns/issues/resolve_discussions.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/app/services/concerns/issues/resolve_discussions.rb b/app/services/concerns/issues/resolve_discussions.rb
new file mode 100644
index 00000000000..297c7d696c3
--- /dev/null
+++ b/app/services/concerns/issues/resolve_discussions.rb
@@ -0,0 +1,32 @@
+module Issues
+ module ResolveDiscussions
+ attr_reader :merge_request_to_resolve_discussions_of_iid, :discussion_to_resolve_id
+
+ def filter_resolve_discussion_params
+ @merge_request_to_resolve_discussions_of_iid ||= params.delete(:merge_request_to_resolve_discussions_of)
+ @discussion_to_resolve_id ||= params.delete(:discussion_to_resolve)
+ end
+
+ def merge_request_to_resolve_discussions_of
+ return @merge_request_to_resolve_discussions_of if defined?(@merge_request_to_resolve_discussions_of)
+
+ @merge_request_to_resolve_discussions_of = MergeRequestsFinder.new(current_user, project_id: project.id).
+ execute.
+ find_by(iid: merge_request_to_resolve_discussions_of_iid)
+ end
+
+ def discussions_to_resolve
+ return [] unless merge_request_to_resolve_discussions_of
+
+ @discussions_to_resolve ||=
+ if discussion_to_resolve_id
+ discussion_or_nil = merge_request_to_resolve_discussions_of
+ .find_diff_discussion(discussion_to_resolve_id)
+ Array(discussion_or_nil)
+ else
+ merge_request_to_resolve_discussions_of
+ .resolvable_discussions
+ end
+ end
+ end
+end