New returns a new memory store provider
(cfg *config.Config, deps *Dependencies)
| 18 | |
| 19 | // New returns a new memory store provider |
| 20 | func New(cfg *config.Config, deps *Dependencies) (Provider, error) { |
| 21 | if cfg.RedisURL != "" { |
| 22 | return redis.NewRedisProvider(cfg, &redis.Dependencies{ |
| 23 | Log: deps.Log, |
| 24 | }) |
| 25 | } |
| 26 | // If database is configured, use database-backed memory store |
| 27 | if cfg.DatabaseType != "" && deps.StorageProvider != nil { |
| 28 | return db.NewDBProvider(cfg, &db.Dependencies{ |
| 29 | Log: deps.Log, |
| 30 | StorageProvider: deps.StorageProvider, |
| 31 | }) |
| 32 | } |
| 33 | // Fallback to in-memory store |
| 34 | return in_memory.NewInMemoryProvider(cfg, &in_memory.Dependencies{ |
| 35 | Log: deps.Log, |
| 36 | }) |
| 37 | } |
| 38 | |
| 39 | // Provider defines current memory store provider |
| 40 | type Provider interface { |