From 5ab462408f16c2607650c368a31c64e37e5c3372 Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Thu, 9 May 2019 11:05:44 +0200 Subject: [PATCH] Implemented optional caches --- config.go | 4 ++-- main.go | 21 +++++++++++++-------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/config.go b/config.go index 020ab1e..3149d20 100644 --- a/config.go +++ b/config.go @@ -16,8 +16,8 @@ type EndpointConfig struct { } type CacheConfig struct { - Redis RedisCacheConfig `yaml:"redis"` - Memory MemoryCacheConfig `yaml:"memory"` + Redis *RedisCacheConfig `yaml:"redis"` + Memory *MemoryCacheConfig `yaml:"memory"` } type RedisCacheConfig struct { diff --git a/main.go b/main.go index ddffa64..9c9e2ac 100644 --- a/main.go +++ b/main.go @@ -56,6 +56,18 @@ func main() { autocompleteStations := loadAutocompleteStations() + var caches []bahn.CacheBackend + if config.Caches.Memory != nil { + caches = append(caches, NewMemoryCache(config.Caches.Memory.Timeout)) + } + if config.Caches.Redis != nil { + caches = append(caches, NewRedisCache( + config.Caches.Redis.Address, + config.Caches.Redis.Password, + config.Caches.Redis.Timeout, + )) + } + apiClient := bahn.ApiClient{ IrisBaseUrl: config.Endpoints.Iris, CoachSequenceBaseUrl: config.Endpoints.CoachSequence, @@ -63,14 +75,7 @@ func main() { HttpClient: &http.Client{ Timeout: config.RequestTimeout, }, - Caches: []bahn.CacheBackend{ - NewMemoryCache(config.Caches.Memory.Timeout), - NewRedisCache( - config.Caches.Redis.Address, - config.Caches.Redis.Password, - config.Caches.Redis.Timeout, - ), - }, + Caches: caches, } http.HandleFunc("/autocomplete/", func(w http.ResponseWriter, r *http.Request) { -- GitLab