Hasura ha incorporado soporte para PostGIS en su esquema GraphQL. Dado que su campo ya es de tipo geography
, no necesita la función.
En Hasura necesitas crear la relación entre las offers
y address
tablas, y la consulta de GraphQL debería ser algo como:
query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
El tipo de geografía en Hasura espera que el valor esté en GEOJSON
formato. Así es como su variable $point
debería verse como:
{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
Se espera el mismo tipo de variable (GEOJSON) al insertar valores (mutación).