github.com/vnforks/kid/v5@v5.22.1-0.20200408055009-b89d99c65676/services/searchengine/searchengine.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package searchengine 5 6 import ( 7 "github.com/vnforks/kid/v5/jobs" 8 "github.com/vnforks/kid/v5/model" 9 ) 10 11 func NewBroker(cfg *model.Config, jobServer *jobs.JobServer) *Broker { 12 return &Broker{ 13 cfg: cfg, 14 jobServer: jobServer, 15 } 16 } 17 18 func (seb *Broker) RegisterElasticsearchEngine(es SearchEngineInterface) { 19 seb.ElasticsearchEngine = es 20 } 21 22 type Broker struct { 23 cfg *model.Config 24 jobServer *jobs.JobServer 25 ElasticsearchEngine SearchEngineInterface 26 } 27 28 func (seb *Broker) UpdateConfig(cfg *model.Config) *model.AppError { 29 seb.cfg = cfg 30 if seb.ElasticsearchEngine != nil { 31 seb.ElasticsearchEngine.UpdateConfig(cfg) 32 } 33 34 return nil 35 } 36 37 func (seb *Broker) GetActiveEngines() []SearchEngineInterface { 38 engines := []SearchEngineInterface{} 39 if seb.ElasticsearchEngine != nil && seb.ElasticsearchEngine.IsActive() { 40 engines = append(engines, seb.ElasticsearchEngine) 41 } 42 return engines 43 }