summaryrefslogtreecommitdiff
path: root/app/graphql/resolvers/project_milestones_resolver.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/resolvers/project_milestones_resolver.rb')
-rw-r--r--app/graphql/resolvers/project_milestones_resolver.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/app/graphql/resolvers/project_milestones_resolver.rb b/app/graphql/resolvers/project_milestones_resolver.rb
new file mode 100644
index 00000000000..976fc300b87
--- /dev/null
+++ b/app/graphql/resolvers/project_milestones_resolver.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+module Resolvers
+ class ProjectMilestonesResolver < MilestonesResolver
+ argument :include_ancestors, GraphQL::BOOLEAN_TYPE,
+ required: false,
+ description: "Also return milestones in the project's parent group and its ancestors"
+
+ private
+
+ def parent_id_parameters(args)
+ return { project_ids: parent.id } unless args[:include_ancestors].present? && parent.group.present?
+
+ {
+ group_ids: parent.group.self_and_ancestors.select(:id),
+ project_ids: parent.id
+ }
+ end
+ end
+end