Sha256: 4e95107745202baa85cc47fc28d3eaa2e64132e436ad0914fbd43433e755c036

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

module Ecoportal
  module API
    class GraphQL
      module Query
        class LocationStructure < Ecoportal::API::GraphQL::Logic::Query
          accepted_params :id
          field_name :structure

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

          private

          def basic_block(&block)
            final_block = block || default_query_block
            Proc.new {
              query(id: :id!) {
                currentOrganization {
                  locations {
                    structure(id: :id, &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
              updatedAt
              visitorManagementEnabled
              nodes(includeArchived: true) {
                ___Ecoportal__API__GraphQL__Fragment__LocationNode
              }
            }
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ecoportal-api-graphql-0.3.8 lib/ecoportal/api/graphql/query/location_structure.rb