Hasura construiu suporte para PostGIS em seu esquema GraphQL. Como seu campo já é do tipo
geography
, você não precisa da função. No Hasura você precisa criar o relacionamento entre as
offers
e address
tabelas e a consulta do GraphQL deve ser algo como:query nearby_offers($point: geography!) {
offers(where: {address: {location: {_st_d_within: {distance: 200000, from: $point}}}}) {
id
offer_fields
address {
location
}
}
}
O tipo de geografia no Hasura espera que o valor esteja em
GEOJSON
formato. Aqui está como sua variável $point
deve se parecer com:{
"point": {
"type" : "Point",
"coordinates": [longitude, latitude]
}
}
O mesmo tipo de variável (GEOJSON) é esperado ao inserir valores (mutação).