diff options
author | Julien Dessaux | 2021-05-04 11:59:13 +0200 |
---|---|---|
committer | Julien Dessaux | 2021-05-04 12:03:18 +0200 |
commit | dc4fea013c5f89054ae348cab2935eebe28a4712 (patch) | |
tree | bf3455ab4e3953489495c5621a40c108d4dba5e3 /pkg/navitia_api_client/departures.go | |
parent | Updated dependencies (diff) | |
download | trains-dc4fea013c5f89054ae348cab2935eebe28a4712.tar.gz trains-dc4fea013c5f89054ae348cab2935eebe28a4712.tar.bz2 trains-dc4fea013c5f89054ae348cab2935eebe28a4712.zip |
Cleaned the navitia - webui calls
Diffstat (limited to '')
-rw-r--r-- | pkg/navitia_api_client/departures.go | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/pkg/navitia_api_client/departures.go b/pkg/navitia_api_client/departures.go index cd75191..3b7053d 100644 --- a/pkg/navitia_api_client/departures.go +++ b/pkg/navitia_api_client/departures.go @@ -5,6 +5,8 @@ import ( "fmt" "net/http" "time" + + "git.adyxax.org/adyxax/trains/pkg/model" ) type DeparturesResponse struct { @@ -43,14 +45,14 @@ type DeparturesResponse struct { } `json:"context"` } -func (c *Client) GetDepartures(trainStop string) (departures *DeparturesResponse, err error) { +func (c *Client) GetDepartures(trainStop string) (departures []model.Departure, err error) { request := fmt.Sprintf("%s/coverage/sncf/stop_areas/%s/departures", c.baseURL, trainStop) start := time.Now() c.mutex.Lock() defer c.mutex.Unlock() if cachedResult, ok := c.cache[request]; ok { if start.Sub(cachedResult.ts) < 60*1000*1000*1000 { - return cachedResult.result.(*DeparturesResponse), nil + return cachedResult.result.([]model.Departure), nil } } req, err := http.NewRequest("GET", request, nil) @@ -62,9 +64,17 @@ func (c *Client) GetDepartures(trainStop string) (departures *DeparturesResponse return nil, err } defer resp.Body.Close() - if err = json.NewDecoder(resp.Body).Decode(&departures); err != nil { + var data DeparturesResponse + if err = json.NewDecoder(resp.Body).Decode(&data); err != nil { return nil, err } + for i := 0; i < len(data.Departures); i++ { + t, err := time.Parse("20060102T150405", data.Departures[i].StopDateTime.ArrivalDateTime) + if err != nil { // TODO fail better + panic(err) + } + departures = append(departures, model.Departure{data.Departures[i].DisplayInformations.Direction, t.Format("Mon, 02 Jan 2006 15:04:05")}) + } c.cache[request] = cachedResult{ ts: start, result: departures, |