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  }