Files
OpenSquawk/server/api/service/tools/airport-geocode.get.ts
itsrubberduck b299122d88 refactor(tools): forward the airport endpoints to the backend
/api/service/tools/* was a second implementation of the OSM geocoding and taxi
routing the Python backend already owns — its own Overpass client, alias
matching and scoring. It drifted: it still asked Overpass for `out center tags`,
so a runway resolved to the middle of the strip rather than a threshold, which
is the runway-endpoint bug the backend fixed. Teaching the copy about runway
endpoints would mean maintaining the geometry twice, so the copy goes instead.

Forwarding exposes origin_runway_point / dest_runway_point and
include_connectors, and inherits the backend's Overpass cache and its radius
fallback for aerodromes with no generated OSM area (EDDM), which the copy
answered with an empty feature list. Failures now carry an HTTP status as well
as the error code in the body; the old copy answered every error with 200.

The frequencies call sites needed real types: airportGeocode.ts sat under
server/api with no default export, so Nitro registered it as a route whose
return type collapsed to any and poisoned the whole API type map. The typecheck
was green because of it, not despite it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 11:30:52 +02:00

18 lines
737 B
TypeScript

import { defineEventHandler, getQuery } from 'h3'
import { forwardToRadioBackend } from '../../../utils/radioBackend'
/**
* Resolve named aerodrome features to coordinates, or coordinates to the
* nearest named feature, for one airport.
*
* Forwarded to the Python backend, which owns the OSM feature dataset and the
* alias matching. Beyond ending the duplication, this inherits two things the
* Nuxt copy never had: the Overpass response cache, and the radius fallback
* for aerodromes whose OSM relation has no generated area (EDDM), which the
* copy answered with an empty feature list.
*/
export default defineEventHandler(async (event) =>
forwardToRadioBackend('/api/service/tools/airport-geocode', getQuery(event))
)