2020-10-24 23:57:45 +05:30
|
|
|
# frozen_string_literal: true
|
2021-01-29 00:20:46 +05:30
|
|
|
# rubocop:disable Graphql/ResolverType (inherited from MilestonesResolver)
|
2020-10-24 23:57:45 +05:30
|
|
|
|
|
|
|
module Resolvers
|
|
|
|
class ProjectMilestonesResolver < MilestonesResolver
|
|
|
|
argument :include_ancestors, GraphQL::BOOLEAN_TYPE,
|
|
|
|
required: false,
|
|
|
|
description: "Also return milestones in the project's parent group and its ancestors"
|
|
|
|
|
2021-01-29 00:20:46 +05:30
|
|
|
type Types::MilestoneType.connection_type, null: true
|
|
|
|
|
2020-10-24 23:57:45 +05:30
|
|
|
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
|