building-envelope-data / api

API specification to exchange data about building envelopes
MIT License
3 stars 1 forks source link

Return only data sets which have the required `dataFormatId` #306

Open christoph-maurer opened 1 year ago

christoph-maurer commented 1 year ago

The queries for the dataFormats BED-JSON and LBNL/Klems work fine.

When I query for a dataFormatId which IGSDB does not yet offer, IGSDB returns all data sets instead of none.

query {
  MBforResourcesWithDataFormat: databases {
    nodes {
      name
      allOpticalData(
        where: {
          resources: {
            some: {
              dataFormatId: { equalTo: "dc419491-29de-496d-95a7-a41938a9200c" }
            }
          }
        }
      ) {
        nodes {
          resourceTree {
            root {
              value {
                dataFormatId
                locator
              }
            }
          }
        }
      }
    }
  }
}
{
  "data": {
    "MBforResourcesWithDataFormat": {
      "nodes": [
        {
          "name": "Daylighting Database",
          "allOpticalData": null
        },
        {
          "name": "IGSDB",
          "allOpticalData": {
            "nodes": [
              {
                "resourceTree": {
                  "root": {
                    "value": {
                      "dataFormatId": "9ca9e8f5-94bf-4fdd-81e3-31a58d7ca708",
                      "locator": "https://igsdb-icon.herokuapp.com/api/v1/products/196/?json_format=buildingenvelopedata.org"
                    }
                  }
                }
              },
christoph-maurer commented 4 months ago

I can query https://igsdb-v2.herokuapp.com/graphql/ with

{
  allOpticalData(
    where: {resources: {some: {dataFormatId: {equalTo: "dc419491-29de-496d-95a7-a41938a9200c"}}}}
  ) {
    edges {
      node {
        componentId
        nearnormalHemisphericalSolarReflectances
        nearnormalHemisphericalSolarTransmittances
        nearnormalHemisphericalVisibleReflectances
        nearnormalHemisphericalVisibleTransmittances
        infraredEmittances
        resourceTree {
          root {
            value {
              locator
            }
          }
        }
      }
    }
  }
}

but IGSDB_V2 still returns many data sets instead of none.