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  }