2020-07-30 14:09:39 -04:00
|
|
|
# frozen_string_literal: true
|
2020-11-17 07:09:15 -05:00
|
|
|
# rubocop:disable Graphql/ResolverType (inherited from MilestonesResolver)
|
2020-07-30 14:09:39 -04:00
|
|
|
|
|
|
|
module Resolvers
|
2020-08-10 14:09:54 -04:00
|
|
|
class ProjectMilestonesResolver < MilestonesResolver
|
2021-07-22 08:10:04 -04:00
|
|
|
argument :include_ancestors, GraphQL::Types::Boolean,
|
2020-08-10 14:09:54 -04:00
|
|
|
required: false,
|
2021-01-11 19:10:42 -05:00
|
|
|
description: "Also return milestones in the project's parent group and its ancestors."
|
2020-07-30 14:09:39 -04:00
|
|
|
|
2020-11-13 10:09:24 -05:00
|
|
|
type Types::MilestoneType.connection_type, null: true
|
|
|
|
|
2020-07-30 14:09:39 -04:00
|
|
|
private
|
|
|
|
|
|
|
|
def parent_id_parameters(args)
|
|
|
|
return { project_ids: parent.id } unless args[:include_ancestors].present? && parent.group.present?
|
|
|
|
|
|
|
|
{
|
|
|
|
group_ids: parent.group.self_and_ancestors.select(:id),
|
|
|
|
project_ids: parent.id
|
|
|
|
}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|