diff options
Diffstat (limited to 'app/graphql/resolvers/board_list_issues_resolver.rb')
-rw-r--r-- | app/graphql/resolvers/board_list_issues_resolver.rb | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/app/graphql/resolvers/board_list_issues_resolver.rb b/app/graphql/resolvers/board_list_issues_resolver.rb index 25fb35ec74b..7c85dd8fb9b 100644 --- a/app/graphql/resolvers/board_list_issues_resolver.rb +++ b/app/graphql/resolvers/board_list_issues_resolver.rb @@ -13,15 +13,29 @@ module Resolvers alias_method :list, :object def resolve(**args) - filter_params = item_filters(args[:filters]).merge(board_id: list.board.id, id: list.id) + filters = item_filters(args[:filters]) + mutually_exclusive_milestone_args!(filters) + + filter_params = filters.merge(board_id: list.board.id, id: list.id) service = ::Boards::Issues::ListService.new(list.board.resource_parent, context[:current_user], filter_params) + pagination_connections = Gitlab::Graphql::Pagination::Keyset::Connection.new(service.execute) + + ::Boards::Issues::ListService.initialize_relative_positions(list.board, current_user, pagination_connections.items) - service.execute + pagination_connections end # https://gitlab.com/gitlab-org/gitlab/-/issues/235681 def self.complexity_multiplier(args) 0.005 end + + 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 end end |