2020-08-07 12:09:59 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Resolvers
|
|
|
|
class BoardListIssuesResolver < BaseResolver
|
2021-06-08 15:10:00 +00:00
|
|
|
include BoardItemFilterable
|
2020-09-03 12:08:47 +00:00
|
|
|
|
|
|
|
argument :filters, Types::Boards::BoardIssueInputType,
|
|
|
|
required: false,
|
2021-01-12 00:10:42 +00:00
|
|
|
description: 'Filters applied when selecting issues in the board list.'
|
2020-09-03 12:08:47 +00:00
|
|
|
|
2020-08-07 12:09:59 +00:00
|
|
|
type Types::IssueType, null: true
|
|
|
|
|
|
|
|
alias_method :list, :object
|
|
|
|
|
|
|
|
def resolve(**args)
|
2021-09-14 12:10:35 +00:00
|
|
|
filters = item_filters(args[:filters])
|
|
|
|
mutually_exclusive_milestone_args!(filters)
|
|
|
|
|
|
|
|
filter_params = filters.merge(board_id: list.board.id, id: list.id)
|
2020-09-25 15:09:36 +00:00
|
|
|
service = ::Boards::Issues::ListService.new(list.board.resource_parent, context[:current_user], filter_params)
|
2020-09-03 12:08:47 +00:00
|
|
|
|
2021-10-07 15:12:00 +00:00
|
|
|
service.execute
|
2020-08-07 12:09:59 +00:00
|
|
|
end
|
2020-08-12 06:09:53 +00:00
|
|
|
|
|
|
|
# https://gitlab.com/gitlab-org/gitlab/-/issues/235681
|
|
|
|
def self.complexity_multiplier(args)
|
|
|
|
0.005
|
|
|
|
end
|
2021-09-14 12:10:35 +00:00
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def mutually_exclusive_milestone_args!(filters)
|
|
|
|
if filters[:milestone_title] && filters[:milestone_wildcard_id]
|
|
|
|
raise ::Gitlab::Graphql::Errors::ArgumentError, 'Incompatible arguments: milestoneTitle, milestoneWildcardId.'
|
|
|
|
end
|
|
|
|
end
|
2020-08-07 12:09:59 +00:00
|
|
|
end
|
|
|
|
end
|