Hasura ha integrato il supporto per PostGIS nel proprio schema GraphQL. Poiché il tuo campo è già di tipo geography
, non hai bisogno della funzione.
In Hasura devi creare la relazione tra le offers
e address
tabelle e la query GraphQL dovrebbe essere qualcosa del tipo:
query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
Il tipo di geografia in Hasura prevede che il valore sia in GEOJSON
formato. Ecco come funziona la tua variabile $point
dovrebbe assomigliare a:
{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
Lo stesso tipo di variabile (GEOJSON) è prevista per l'inserimento di valori (mutazione).