e4231198d5
* skeleton lifecycle * bare minimum to satisfy mm-server import
113 lines
3.2 KiB
Go
113 lines
3.2 KiB
Go
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
package product
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
|
|
"github.com/mattermost/mattermost-server/v6/app"
|
|
"github.com/mattermost/mattermost-server/v6/product"
|
|
)
|
|
|
|
var errServiceTypeAssert = errors.New("type assertion failed")
|
|
|
|
func init() {
|
|
app.RegisterProduct("boards", app.ProductManifest{
|
|
Initializer: newBoards,
|
|
Dependencies: map[app.ServiceKey]struct{}{},
|
|
})
|
|
}
|
|
|
|
type Boards struct {
|
|
teamService product.TeamService
|
|
channelService product.ChannelService
|
|
userService product.UserService
|
|
postService product.PostService
|
|
botService product.BotService
|
|
clusterService product.ClusterService
|
|
// configService product.ConfigService
|
|
logService product.LogService
|
|
licenseService product.LicenseService
|
|
// filestoreService product.FilestoreService
|
|
routerService product.RouterService
|
|
}
|
|
|
|
func newBoards(mmServer *app.Server, services map[app.ServiceKey]interface{}) (app.Product, error) {
|
|
boards := &Boards{}
|
|
|
|
for key, service := range services {
|
|
switch key {
|
|
case app.TeamKey:
|
|
teamService, ok := service.(product.TeamService)
|
|
if !ok {
|
|
return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert)
|
|
}
|
|
boards.teamService = teamService
|
|
case app.ChannelKey:
|
|
channelService, ok := service.(product.ChannelService)
|
|
if !ok {
|
|
return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert)
|
|
}
|
|
boards.channelService = channelService
|
|
case app.UserKey:
|
|
userService, ok := service.(product.UserService)
|
|
if !ok {
|
|
return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert)
|
|
}
|
|
boards.userService = userService
|
|
case app.PostKey:
|
|
postService, ok := service.(product.PostService)
|
|
if !ok {
|
|
return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert)
|
|
}
|
|
boards.postService = postService
|
|
case app.BotKey:
|
|
botService, ok := service.(product.BotService)
|
|
if !ok {
|
|
return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert)
|
|
}
|
|
boards.botService = botService
|
|
case app.ClusterKey:
|
|
clusterService, ok := service.(product.ClusterService)
|
|
if !ok {
|
|
return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert)
|
|
}
|
|
boards.clusterService = clusterService
|
|
case app.ConfigKey:
|
|
// TODO
|
|
case app.LogKey:
|
|
logService, ok := service.(product.LogService)
|
|
if !ok {
|
|
return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert)
|
|
}
|
|
boards.logService = logService
|
|
case app.LicenseKey:
|
|
licenseService, ok := service.(product.LicenseService)
|
|
if !ok {
|
|
return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert)
|
|
}
|
|
boards.licenseService = licenseService
|
|
case app.FilestoreKey:
|
|
// TODO
|
|
case app.RouterKey:
|
|
routerService, ok := service.(product.RouterService)
|
|
if !ok {
|
|
return nil, fmt.Errorf("invalid service key '%s': %w", key, errServiceTypeAssert)
|
|
}
|
|
boards.routerService = routerService
|
|
case app.HooksKey, app.PermissionsKey:
|
|
// not needed
|
|
}
|
|
}
|
|
return boards, nil
|
|
}
|
|
|
|
func (b *Boards) Start() error {
|
|
return nil
|
|
}
|
|
|
|
func (b *Boards) Stop() error {
|
|
return nil
|
|
}
|