github.com/haalcala/mattermost-server-change-repo@v0.0.0-20210713015153-16753fbeee5f/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/mattermost/mattermost-server/v5/jobs" 8 "github.com/mattermost/mattermost-server/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 func (seb *Broker) RegisterBleveEngine(be SearchEngineInterface) { 23 seb.BleveEngine = be 24 } 25 26 type Broker struct { 27 cfg *model.Config 28 jobServer *jobs.JobServer 29 ElasticsearchEngine SearchEngineInterface 30 BleveEngine SearchEngineInterface 31 } 32 33 func (seb *Broker) UpdateConfig(cfg *model.Config) *model.AppError { 34 seb.cfg = cfg 35 if seb.ElasticsearchEngine != nil { 36 seb.ElasticsearchEngine.UpdateConfig(cfg) 37 } 38 39 if seb.BleveEngine != nil { 40 seb.BleveEngine.UpdateConfig(cfg) 41 } 42 43 return nil 44 } 45 46 func (seb *Broker) GetActiveEngines() []SearchEngineInterface { 47 engines := []SearchEngineInterface{} 48 if seb.ElasticsearchEngine != nil && seb.ElasticsearchEngine.IsActive() { 49 engines = append(engines, seb.ElasticsearchEngine) 50 } 51 if seb.BleveEngine != nil && seb.BleveEngine.IsActive() { 52 engines = append(engines, seb.BleveEngine) 53 } 54 return engines 55 }