summaryrefslogtreecommitdiff
path: root/app/graphql/mutations/boards/lists/create.rb
blob: f3aae9ac9c80be30fb090184d2082cb0f26c235c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# frozen_string_literal: true

module Mutations
  module Boards
    module Lists
      class Create < BaseCreate
        graphql_name 'BoardListCreate'

        argument :board_id, ::Types::GlobalIDType[::Board],
                 required: true,
                 description: 'Global ID of the issue board to mutate.'

        field :list,
              Types::BoardListType,
              null: true,
              description: 'Issue list in the issue board.'

        authorize :admin_list

        private

        def find_object(id:)
          GitlabSchema.object_from_id(id, expected_type: ::Board)
        end

        def create_list(board, params)
          create_list_service =
            ::Boards::Lists::CreateService.new(board.resource_parent, current_user, params)

          create_list_service.execute(board)
        end
      end
    end
  end
end

Mutations::Boards::Lists::Create.prepend_if_ee('::EE::Mutations::Boards::Lists::Create')