diff --git a/client.go b/client.go index 7ece9dc07a3f2e48f9982d799a9866401ce71792..4f61ddde63d034ca50806bf02b48e14b2332e1ab 100644 --- a/client.go +++ b/client.go @@ -22,32 +22,11 @@ type ApiClient struct { const cacheTimestamp = "2006-01-02T15:04" -func (c *ApiClient) loadWithCache(key string, result interface{}, load func() (interface{}, error)) error { - for _, cache := range c.Caches { - if err := cache.Get(key, result); err == nil { - for _, targetCache := range c.Caches { - if targetCache == cache { - break - } - _ = targetCache.Set(key, result) - } - return nil - } - } - var err error - if result, err = load(); err == nil { - for _, cache := range c.Caches { - _ = cache.Set(key, result) - } - } - return err -} - func (c *ApiClient) Station(evaId int64) ([]Station, error) { key := fmt.Sprintf("realtime_recent %d", evaId) var result []Station for _, cache := range c.Caches { - if err := cache.Get(key, result); err == nil { + if err := cache.Get(key, &result); err == nil { for _, targetCache := range c.Caches { if targetCache == cache { break @@ -94,7 +73,7 @@ func (c *ApiClient) Timetable(evaId int64, date time.Time) (Timetable, error) { var result Timetable for _, cache := range c.Caches { - if err := cache.Get(key, result); err == nil { + if err := cache.Get(key, &result); err == nil { for _, targetCache := range c.Caches { if targetCache == cache { break @@ -142,7 +121,7 @@ func (c *ApiClient) RealtimeAll(evaId int64, date time.Time) (Timetable, error) var result Timetable for _, cache := range c.Caches { - if err := cache.Get(key, result); err == nil { + if err := cache.Get(key, &result); err == nil { for _, targetCache := range c.Caches { if targetCache == cache { break @@ -189,7 +168,7 @@ func (c *ApiClient) RealtimeRecent(evaId int64, date time.Time) (Timetable, erro var result Timetable for _, cache := range c.Caches { - if err := cache.Get(key, result); err == nil { + if err := cache.Get(key, &result); err == nil { for _, targetCache := range c.Caches { if targetCache == cache { break @@ -236,7 +215,7 @@ func (c *ApiClient) WingDefinition(parent string, wing string) (WingDefinition, var result WingDefinition for _, cache := range c.Caches { - if err := cache.Get(key, result); err == nil { + if err := cache.Get(key, &result); err == nil { for _, targetCache := range c.Caches { if targetCache == cache { break @@ -283,7 +262,7 @@ func (c *ApiClient) CoachSequence(line string, date time.Time) (CoachSequence, e var result CoachSequence for _, cache := range c.Caches { - if err := cache.Get(key, result); err == nil { + if err := cache.Get(key, &result); err == nil { for _, targetCache := range c.Caches { if targetCache == cache { break @@ -330,7 +309,7 @@ func (c *ApiClient) Suggestions(line string, date time.Time) ([]Suggestion, erro var result []Suggestion for _, cache := range c.Caches { - if err := cache.Get(key, result); err == nil { + if err := cache.Get(key, &result); err == nil { for _, targetCache := range c.Caches { if targetCache == cache { break @@ -398,7 +377,7 @@ func (c *ApiClient) HafasMessages(trainlink string) ([]HafasMessage, error) { var result []HafasMessage for _, cache := range c.Caches { - if err := cache.Get(key, result); err == nil { + if err := cache.Get(key, &result); err == nil { for _, targetCache := range c.Caches { if targetCache == cache { break