diff options
Diffstat (limited to 'app/graphql/types/notes')
-rw-r--r-- | app/graphql/types/notes/diff_position_type.rb | 42 | ||||
-rw-r--r-- | app/graphql/types/notes/note_type.rb | 14 |
2 files changed, 40 insertions, 16 deletions
diff --git a/app/graphql/types/notes/diff_position_type.rb b/app/graphql/types/notes/diff_position_type.rb index cc00feba2e6..13d9be49484 100644 --- a/app/graphql/types/notes/diff_position_type.rb +++ b/app/graphql/types/notes/diff_position_type.rb @@ -21,25 +21,43 @@ module Types # Fields for text positions field :old_line, GraphQL::INT_TYPE, null: true, - description: 'Line on start SHA that was changed', - resolve: -> (position, _args, _ctx) { position.old_line if position.on_text? } + description: 'Line on start SHA that was changed' field :new_line, GraphQL::INT_TYPE, null: true, - description: 'Line on HEAD SHA that was changed', - resolve: -> (position, _args, _ctx) { position.new_line if position.on_text? } + description: 'Line on HEAD SHA that was changed' # Fields for image positions field :x, GraphQL::INT_TYPE, null: true, - description: 'X position of the note', - resolve: -> (position, _args, _ctx) { position.x if position.on_image? } + description: 'X position of the note' field :y, GraphQL::INT_TYPE, null: true, - description: 'Y position of the note', - resolve: -> (position, _args, _ctx) { position.y if position.on_image? } + description: 'Y position of the note' field :width, GraphQL::INT_TYPE, null: true, - description: 'Total width of the image', - resolve: -> (position, _args, _ctx) { position.width if position.on_image? } + description: 'Total width of the image' field :height, GraphQL::INT_TYPE, null: true, - description: 'Total height of the image', - resolve: -> (position, _args, _ctx) { position.height if position.on_image? } + description: 'Total height of the image' + + def old_line + object.old_line if object.on_text? + end + + def new_line + object.new_line if object.on_text? + end + + def x + object.x if object.on_image? + end + + def y + object.y if object.on_image? + end + + def width + object.width if object.on_image? + end + + def height + object.height if object.on_image? + end end # rubocop: enable Graphql/AuthorizeTypes end diff --git a/app/graphql/types/notes/note_type.rb b/app/graphql/types/notes/note_type.rb index 5d41f0032bd..f4e05e19eca 100644 --- a/app/graphql/types/notes/note_type.rb +++ b/app/graphql/types/notes/note_type.rb @@ -16,13 +16,11 @@ module Types field :project, Types::ProjectType, null: true, - description: 'Project associated with the note', - resolve: -> (note, args, context) { Gitlab::Graphql::Loaders::BatchModelLoader.new(Project, note.project_id).find } + description: 'Project associated with the note' field :author, Types::UserType, null: false, - description: 'User who wrote this note', - resolve: -> (note, args, context) { Gitlab::Graphql::Loaders::BatchModelLoader.new(User, note.author_id).find } + description: 'User who wrote this note' field :system, GraphQL::BOOLEAN_TYPE, null: false, @@ -52,6 +50,14 @@ module Types def system_note_icon_name SystemNoteHelper.system_note_icon_name(object) if object.system? end + + def project + Gitlab::Graphql::Loaders::BatchModelLoader.new(Project, object.project_id).find + end + + def author + Gitlab::Graphql::Loaders::BatchModelLoader.new(User, object.author_id).find + end end end end |