feat: add realtime snapshot and location APIs
This commit is contained in:
@@ -46,6 +46,8 @@ func main() {
|
||||
})
|
||||
|
||||
mux := http.NewServeMux()
|
||||
mux.Handle("/openapi.json", realtime.NewOpenAPIHandler())
|
||||
mux.Handle("/swagger-ui/", realtime.NewSwaggerUIHandler())
|
||||
mux.Handle("/api/realtime/vehicles/", realtime.NewHandler(repository))
|
||||
closeStats := func() {}
|
||||
var updater realtimeUpdater = repository
|
||||
@@ -73,13 +75,18 @@ func main() {
|
||||
logger.Info("realtime mysql snapshot enabled", "table", "vehicle_realtime_snapshot", "plate_binding_table", bindingTable)
|
||||
}
|
||||
mux.Handle("/api/stats/daily-metrics", stats.NewMetricHandler(stats.NewMetricRepository(db)))
|
||||
mux.Handle("/api/realtime/snapshots", realtime.NewSnapshotQueryHandler(realtime.NewSnapshotQueryRepository(db)))
|
||||
mux.Handle("/api/realtime/locations", realtime.NewLocationQueryHandler(realtime.NewLocationQueryRepository(db)))
|
||||
logger.Info("stats mysql query enabled")
|
||||
} else {
|
||||
mux.HandleFunc("/api/stats/daily-metrics", func(w http.ResponseWriter, _ *http.Request) {
|
||||
mysqlUnavailable := func(w http.ResponseWriter, _ *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.WriteHeader(http.StatusServiceUnavailable)
|
||||
_ = json.NewEncoder(w).Encode(map[string]any{"error": "MYSQL_DSN is not configured"})
|
||||
})
|
||||
}
|
||||
mux.HandleFunc("/api/stats/daily-metrics", mysqlUnavailable)
|
||||
mux.HandleFunc("/api/realtime/snapshots", mysqlUnavailable)
|
||||
mux.HandleFunc("/api/realtime/locations", mysqlUnavailable)
|
||||
logger.Warn("MYSQL_DSN is empty; stats query api disabled")
|
||||
}
|
||||
defer closeStats()
|
||||
|
||||
Reference in New Issue
Block a user