diff options
Diffstat (limited to 'app/graphql/mutations/merge_requests')
-rw-r--r-- | app/graphql/mutations/merge_requests/create.rb | 10 | ||||
-rw-r--r-- | app/graphql/mutations/merge_requests/reviewer_rereview.rb | 27 | ||||
-rw-r--r-- | app/graphql/mutations/merge_requests/update.rb | 11 |
3 files changed, 37 insertions, 11 deletions
diff --git a/app/graphql/mutations/merge_requests/create.rb b/app/graphql/mutations/merge_requests/create.rb index 64fa8417e50..9ac8f70be95 100644 --- a/app/graphql/mutations/merge_requests/create.rb +++ b/app/graphql/mutations/merge_requests/create.rb @@ -3,7 +3,7 @@ module Mutations module MergeRequests class Create < BaseMutation - include ResolvesProject + include FindsProject graphql_name 'MergeRequestCreate' @@ -39,7 +39,7 @@ module Mutations authorize :create_merge_request_from def resolve(project_path:, **attributes) - project = authorized_find!(full_path: project_path) + project = authorized_find!(project_path) params = attributes.merge(author_id: current_user.id) merge_request = ::MergeRequests::CreateService.new(project, current_user, params).execute @@ -49,12 +49,6 @@ module Mutations errors: errors_on_object(merge_request) } end - - private - - def find_object(full_path:) - resolve_project(full_path: full_path) - end end end end diff --git a/app/graphql/mutations/merge_requests/reviewer_rereview.rb b/app/graphql/mutations/merge_requests/reviewer_rereview.rb new file mode 100644 index 00000000000..f6f4881654e --- /dev/null +++ b/app/graphql/mutations/merge_requests/reviewer_rereview.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module Mutations + module MergeRequests + class ReviewerRereview < Base + graphql_name 'MergeRequestReviewerRereview' + + argument :user_id, ::Types::GlobalIDType[::User], + loads: Types::UserType, + required: true, + description: <<~DESC + The user ID for the user that has been requested for a new review. + DESC + + def resolve(project_path:, iid:, user:) + merge_request = authorized_find!(project_path: project_path, iid: iid) + + result = ::MergeRequests::RequestReviewService.new(merge_request.project, current_user).execute(merge_request, user) + + { + merge_request: merge_request, + errors: Array(result[:message]) + } + end + end + end +end diff --git a/app/graphql/mutations/merge_requests/update.rb b/app/graphql/mutations/merge_requests/update.rb index 4721ebab41b..6a94d2f37b2 100644 --- a/app/graphql/mutations/merge_requests/update.rb +++ b/app/graphql/mutations/merge_requests/update.rb @@ -19,9 +19,14 @@ module Mutations required: false, description: copy_field_description(Types::MergeRequestType, :description) - def resolve(args) - merge_request = authorized_find!(**args.slice(:project_path, :iid)) - attributes = args.slice(:title, :description, :target_branch).compact + argument :state, ::Types::MergeRequestStateEventEnum, + required: false, + as: :state_event, + description: 'The action to perform to change the state.' + + def resolve(project_path:, iid:, **args) + merge_request = authorized_find!(project_path: project_path, iid: iid) + attributes = args.compact ::MergeRequests::UpdateService .new(merge_request.project, current_user, attributes) |