Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/resolvers/milestone_resolver.rb')
-rw-r--r--app/graphql/resolvers/milestone_resolver.rb71
1 files changed, 0 insertions, 71 deletions
diff --git a/app/graphql/resolvers/milestone_resolver.rb b/app/graphql/resolvers/milestone_resolver.rb
deleted file mode 100644
index bcfbc63c31f..00000000000
--- a/app/graphql/resolvers/milestone_resolver.rb
+++ /dev/null
@@ -1,71 +0,0 @@
-# frozen_string_literal: true
-
-module Resolvers
- class MilestoneResolver < BaseResolver
- include Gitlab::Graphql::Authorize::AuthorizeResource
- include TimeFrameArguments
-
- argument :state, Types::MilestoneStateEnum,
- required: false,
- description: 'Filter milestones by state'
-
- argument :include_descendants, GraphQL::BOOLEAN_TYPE,
- required: false,
- description: 'Return also milestones in all subgroups and subprojects'
-
- type Types::MilestoneType, null: true
-
- def resolve(**args)
- validate_timeframe_params!(args)
-
- authorize!
-
- MilestonesFinder.new(milestones_finder_params(args)).execute
- end
-
- private
-
- def milestones_finder_params(args)
- {
- state: args[:state] || 'all',
- start_date: args[:start_date],
- end_date: args[:end_date]
- }.merge(parent_id_parameter(args))
- end
-
- def parent
- @parent ||= object.respond_to?(:sync) ? object.sync : object
- end
-
- def parent_id_parameter(args)
- if parent.is_a?(Group)
- group_parameters(args)
- elsif parent.is_a?(Project)
- { project_ids: parent.id }
- end
- end
-
- # MilestonesFinder does not check for current_user permissions,
- # so for now we need to keep it here.
- def authorize!
- Ability.allowed?(context[:current_user], :read_milestone, parent) || raise_resource_not_available_error!
- end
-
- def group_parameters(args)
- return { group_ids: parent.id } unless args[:include_descendants].present?
-
- {
- group_ids: parent.self_and_descendants.public_or_visible_to_user(current_user).select(:id),
- project_ids: group_projects.with_issues_or_mrs_available_for_user(current_user)
- }
- end
-
- def group_projects
- GroupProjectsFinder.new(
- group: parent,
- current_user: current_user,
- options: { include_subgroups: true }
- ).execute
- end
- end
-end