diff options
Diffstat (limited to 'app/graphql/types/nested_environment_type.rb')
-rw-r--r-- | app/graphql/types/nested_environment_type.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/graphql/types/nested_environment_type.rb b/app/graphql/types/nested_environment_type.rb new file mode 100644 index 00000000000..b835af2bf45 --- /dev/null +++ b/app/graphql/types/nested_environment_type.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +module Types + # rubocop: disable Graphql/AuthorizeTypes + class NestedEnvironmentType < BaseObject + graphql_name 'NestedEnvironment' + description 'Describes where code is deployed for a project organized by folder.' + + field :name, GraphQL::Types::String, + null: false, description: 'Human-readable name of the environment.' + + field :size, GraphQL::Types::Int, + null: false, description: 'Number of environments nested in the folder.' + + field :environment, + Types::EnvironmentType, + null: true, description: 'Latest environment in the folder.' + + def environment + BatchLoader::GraphQL.for(object.last_id).batch do |environment_ids, loader| + Environment.id_in(environment_ids).each do |environment| + loader.call(environment.id, environment) + end + end + end + end + # rubocop: enable Graphql/AuthorizeTypes +end |