From 30918929ad079a591b85303d6662ec0a43c5df04 Mon Sep 17 00:00:00 2001 From: Lin Jen-Shin Date: Wed, 13 Feb 2019 00:31:18 +0800 Subject: Implement singular iid for IssuesResolver and ProjectType --- app/graphql/resolvers/issues_resolver.rb | 5 ++++- app/graphql/resolvers/merge_requests_resolver.rb | 6 +++--- app/graphql/types/project_type.rb | 5 +++++ 3 files changed, 12 insertions(+), 4 deletions(-) (limited to 'app') diff --git a/app/graphql/resolvers/issues_resolver.rb b/app/graphql/resolvers/issues_resolver.rb index 95e66fb3b7c..fd1b46ba860 100644 --- a/app/graphql/resolvers/issues_resolver.rb +++ b/app/graphql/resolvers/issues_resolver.rb @@ -2,7 +2,9 @@ module Resolvers class IssuesResolver < BaseResolver - extend ActiveSupport::Concern + argument :iid, GraphQL::ID_TYPE, + required: false, + description: 'The IID of the issue, e.g., "1"' argument :iids, [GraphQL::ID_TYPE], required: false, @@ -22,6 +24,7 @@ module Resolvers # Will need to be be made group & namespace aware with # https://gitlab.com/gitlab-org/gitlab-ce/issues/54520 args[:project_id] = project.id + args[:iids] ||= [args[:iid]].compact IssuesFinder.new(context[:current_user], args).execute end diff --git a/app/graphql/resolvers/merge_requests_resolver.rb b/app/graphql/resolvers/merge_requests_resolver.rb index 15055db633a..0b394386f97 100644 --- a/app/graphql/resolvers/merge_requests_resolver.rb +++ b/app/graphql/resolvers/merge_requests_resolver.rb @@ -3,8 +3,8 @@ module Resolvers class MergeRequestsResolver < BaseResolver argument :iid, GraphQL::ID_TYPE, - required: false, - description: 'The IID of the merge request, e.g., "1"' + required: false, + description: 'The IID of the merge request, e.g., "1"' argument :iids, [GraphQL::ID_TYPE], required: false, @@ -17,7 +17,7 @@ module Resolvers def resolve(**args) return unless project.present? - args[:iids] ||= [args[:iid]] + args[:iids] ||= [args[:iid]].compact args[:iids].map(&method(:batch_load)) .select(&:itself) # .compact doesn't work on BatchLoader diff --git a/app/graphql/types/project_type.rb b/app/graphql/types/project_type.rb index 9d21a7dee67..d25c8c8bd90 100644 --- a/app/graphql/types/project_type.rb +++ b/app/graphql/types/project_type.rb @@ -85,6 +85,11 @@ module Types null: true, resolver: Resolvers::IssuesResolver + field :issue, + Types::IssueType, + null: true, + resolver: Resolvers::IssuesResolver.single + field :pipelines, Types::Ci::PipelineType.connection_type, null: false, -- cgit v1.2.3