diff options
Diffstat (limited to 'app/graphql/mutations/notes/create/diff_note.rb')
-rw-r--r-- | app/graphql/mutations/notes/create/diff_note.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/app/graphql/mutations/notes/create/diff_note.rb b/app/graphql/mutations/notes/create/diff_note.rb index 9b5f3092006..019e7cb8623 100644 --- a/app/graphql/mutations/notes/create/diff_note.rb +++ b/app/graphql/mutations/notes/create/diff_note.rb @@ -11,6 +11,22 @@ module Mutations required: true, description: copy_field_description(Types::Notes::NoteType, :position) + def ready?(**args) + # As both arguments are optional, validate here that one of the + # arguments are present. + # + # This may be able to be done using InputUnions in the future + # if this RFC is merged: + # https://github.com/graphql/graphql-spec/blob/master/rfcs/InputUnion.md + + if args[:position].to_hash.values_at(:old_line, :new_line).compact.blank? + raise Gitlab::Graphql::Errors::ArgumentError, + 'position oldLine or newLine arguments are required' + end + + super(**args) + end + private def create_note_params(noteable, args) |