summaryrefslogtreecommitdiff
path: root/app/graphql/resolvers/user_merge_requests_resolver.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/graphql/resolvers/user_merge_requests_resolver.rb')
-rw-r--r--app/graphql/resolvers/user_merge_requests_resolver.rb68
1 files changed, 0 insertions, 68 deletions
diff --git a/app/graphql/resolvers/user_merge_requests_resolver.rb b/app/graphql/resolvers/user_merge_requests_resolver.rb
deleted file mode 100644
index b0d6e159f73..00000000000
--- a/app/graphql/resolvers/user_merge_requests_resolver.rb
+++ /dev/null
@@ -1,68 +0,0 @@
-# frozen_string_literal: true
-
-module Resolvers
- class UserMergeRequestsResolver < MergeRequestsResolver
- include ResolvesProject
-
- argument :project_path, GraphQL::STRING_TYPE,
- required: false,
- description: 'The full-path of the project the authored merge requests should be in. Incompatible with projectId.'
-
- argument :project_id, GraphQL::ID_TYPE,
- required: false,
- description: 'The global ID of the project the authored merge requests should be in. Incompatible with projectPath.'
-
- attr_reader :project
- alias_method :user, :synchronized_object
-
- def ready?(project_id: nil, project_path: nil, **args)
- return early_return unless can_read_profile?
-
- if project_id || project_path
- load_project(project_path, project_id)
- return early_return unless can_read_project?
- elsif args[:iids].present?
- raise ::Gitlab::Graphql::Errors::ArgumentError,
- 'iids requires projectPath or projectId'
- end
-
- super(**args)
- end
-
- def resolve(**args)
- prepare_args(args)
- key = :"#{user_role}_id"
- super(key => user.id, **args)
- end
-
- def user_role
- raise NotImplementedError
- end
-
- private
-
- def can_read_profile?
- Ability.allowed?(current_user, :read_user_profile, user)
- end
-
- def can_read_project?
- Ability.allowed?(current_user, :read_merge_request, project)
- end
-
- def load_project(project_path, project_id)
- @project = resolve_project(full_path: project_path, project_id: project_id)
- @project = @project.sync if @project.respond_to?(:sync)
- end
-
- def no_results_possible?(args)
- some_argument_is_empty?(args)
- end
-
- # These arguments are handled in load_project, and should not be passed to
- # the finder directly.
- def prepare_args(args)
- args.delete(:project_id)
- args.delete(:project_path)
- end
- end
-end