Queries Library
Queries LibraryFetch US weather forecast data for multiple locations

Fetch US weather forecast data for multiple locations

This query connects to US National Weather Service's API and retrieves the weather forecast data for the multiple locations with given coordinates (via variable $coordinatesList, which is a list of JSON objects with entries lat and long).

query GenerateLocationURLs(
  # List of JSON objects with entries `lat` and `long`
  # eg: [ { "lat": 39.7456, "long": -97.0892 }, { "lat": 34.7456, "long": -77.0892 } ]
  $coordinatesList: [JSONObject!]!
) {
  coordinatesList: _echo(value: $coordinatesList)
    @underEachArrayItem(
      passValueOnwardsAs: "coordinates"
      affectDirectivesUnderPos: [1, 2, 3, 4]
    )
      @applyField(
        name: "_objectProperty",
        arguments: {
          by: { key: "lat" }
          object: $coordinates
        },
        passOnwardsAs: "lat"
      )
      @applyField(
        name: "_objectProperty",
        arguments: {
          by: { key: "long" }
          object: $coordinates
        },
        passOnwardsAs: "long"
      )
      @applyField(
        name: "_sprintf",
        arguments: {
          string: "https://api.weather.gov/points/%s,%s",
          values: [$lat, $long]
        }
        passOnwardsAs: "locationURL"
      )
      @applyField(
        name: "_echo",
        arguments: {
          value: {
            url: $locationURL
          }
        }
        setResultInResponse: true
      )
    @export(as: "coordinatesListInput")
}
 
query FetchUSWeatherDataForLocations
  @depends(on: "GenerateLocationURLs")
{
  _sendJSONObjectItemHTTPRequests(inputs: $coordinatesListInput)
}