Sha256: abafa60db5f085cd87b1b57d10514d1ab70656a8acbcc7e3e459abead6ccd362

Contents?: true

Size: 1.66 KB

Versions: 5

Compression:

Stored size: 1.66 KB

Contents

module Ecoportal
  module API
    class GraphQL
      module Query
        class LocationStructures < Ecoportal::API::GraphQL::Logic::QueryArray
          accepted_params :includeArchived, :includeUnpublished, default: false
          accepted_params :includeArchivedNodes, default: true
          
          field_name :structures

          class_resolver :item_class, Ecoportal::API::GraphQL::Model::LocationStructure

          private

          def basic_block(&block)
            final_block = block || default_query_block
            Proc.new {
              query(includeArchived: :boolean,
                    includeUnpublished: :boolean,
                    includeArchivedNodes: :boolean
              ) {
                currentOrganization {
                  locations {
                    structures(
                      includeArchived: :includeArchived,
                      includeUnpublished: :includeUnpublished,
                      &final_block
                    )
                  }
                }
              }
            }
          end

          # At the moment it always retrieves archived nodes!!
          # @note this is on purpose, as via API
          #   there isn't much sense in not including archived nodes.
          def default_query_block
            Proc.new {
              id
              name
              archived
              weight
              visitorManagementEnabled
              nodes(includeArchived: :includeArchivedNodes) {
                ___Ecoportal__API__GraphQL__Fragment__LocationNode
              }
            }
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ecoportal-api-graphql-0.3.13 lib/ecoportal/api/graphql/query/location_structures.rb
ecoportal-api-graphql-0.3.12 lib/ecoportal/api/graphql/query/location_structures.rb
ecoportal-api-graphql-0.3.11 lib/ecoportal/api/graphql/query/location_structures.rb
ecoportal-api-graphql-0.3.10 lib/ecoportal/api/graphql/query/location_structures.rb
ecoportal-api-graphql-0.3.9 lib/ecoportal/api/graphql/query/location_structures.rb