From caad8f7f14a9bd2517d8d80874238f974296e3b8 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Thu, 9 May 2019 11:42:40 +0200 Subject: [PATCH] Add coach sequences, standardize API endpoints --- main.go | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index b8d608d..cdb496d 100644 --- a/main.go +++ b/main.go @@ -77,7 +77,7 @@ func main() { Caches: caches, } - http.HandleFunc("/autocomplete/", func(w http.ResponseWriter, r *http.Request) { + http.HandleFunc("/api/v1/autocomplete/", func(w http.ResponseWriter, r *http.Request) { if query := canonicalizeName(r.FormValue("name")); query != "" { var perfectMatch []AutocompleteStation var prefix []AutocompleteStation @@ -128,7 +128,7 @@ func main() { } } }) - http.HandleFunc("/station/", func(w http.ResponseWriter, r *http.Request) { + http.HandleFunc("/api/v1/station/", func(w http.ResponseWriter, r *http.Request) { var err error _, rawEvaId := path.Split(r.URL.Path) @@ -151,7 +151,29 @@ func main() { return } }) - http.HandleFunc("/timetable/", func(w http.ResponseWriter, r *http.Request) { + http.HandleFunc("/api/v1/coach_sequence/", func(w http.ResponseWriter, r *http.Request) { + var err error + + _, line := path.Split(r.URL.Path) + line = strings.TrimSpace(line) + + var date time.Time + if date, err = time.Parse(time.RFC3339, strings.TrimSpace(r.FormValue("time"))); err != nil { + date = time.Now() + } + + var coachSequence bahn.CoachSequence + if coachSequence, err = apiClient.CoachSequence(line, date); err != nil { + glog.Warning(err) + return + } + + if err = returnJson(w, coachSequence); err != nil { + glog.Warning(err) + return + } + }) + http.HandleFunc("/api/v0/timetable/", func(w http.ResponseWriter, r *http.Request) { var err error _, rawEvaId := path.Split(r.URL.Path) @@ -283,7 +305,7 @@ func main() { return } }) - http.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { + http.HandleFunc("/api/healthz", func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) _, _ = w.Write([]byte("ok\n")) }) -- GitLab