You've already forked focalboard
mirror of
https://github.com/mattermost/focalboard.git
synced 2025-07-15 23:54:29 +02:00
Multi product architecture (#3381)
- provides support for compiling Boards directly into the Mattermost suite server - a ServicesAPI interface replaces the PluginAPI to allow for implementations coming from pluginAPI and suite server. - a new product package provides a place to register Boards as a suite product and handles life-cycle events - a new boards package replaces much of the mattermost-plugin logic, allowing this to be shared between plugin and product - Boards now uses module workspaces; run make setup-go-work
This commit is contained in:
committed by
GitHub
parent
3d753a15e5
commit
4b0fb92fba
70
server/model/services_api.go
Normal file
70
server/model/services_api.go
Normal file
@ -0,0 +1,70 @@
|
||||
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
||||
// See LICENSE.txt for license information.
|
||||
|
||||
//go:generate mockgen --build_flags= -destination=mocks/mockservicesapi.go -package mocks . ServicesAPI
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
|
||||
mm_model "github.com/mattermost/mattermost-server/v6/model"
|
||||
"github.com/mattermost/mattermost-server/v6/shared/mlog"
|
||||
)
|
||||
|
||||
type ServicesAPI interface {
|
||||
// Channels service
|
||||
GetDirectChannel(userID1, userID2 string) (*mm_model.Channel, error)
|
||||
GetChannelByID(channelID string) (*mm_model.Channel, error)
|
||||
GetChannelMember(channelID string, userID string) (*mm_model.ChannelMember, error)
|
||||
GetChannelsForTeamForUser(teamID string, userID string, includeDeleted bool) (mm_model.ChannelList, error)
|
||||
|
||||
// Post service
|
||||
CreatePost(post *mm_model.Post) (*mm_model.Post, error)
|
||||
|
||||
// User service
|
||||
GetUserByID(userID string) (*mm_model.User, error)
|
||||
GetUserByUsername(name string) (*mm_model.User, error)
|
||||
GetUserByEmail(email string) (*mm_model.User, error)
|
||||
UpdateUser(user *mm_model.User) (*mm_model.User, error)
|
||||
GetUsersFromProfiles(options *mm_model.UserGetOptions) ([]*mm_model.User, error)
|
||||
|
||||
// Team service
|
||||
GetTeamMember(teamID string, userID string) (*mm_model.TeamMember, error)
|
||||
CreateMember(teamID string, userID string) (*mm_model.TeamMember, error)
|
||||
|
||||
// Permissions service
|
||||
HasPermissionToTeam(userID, teamID string, permission *mm_model.Permission) bool
|
||||
HasPermissionToChannel(askingUserID string, channelID string, permission *mm_model.Permission) bool
|
||||
|
||||
// Bot service
|
||||
EnsureBot(bot *mm_model.Bot) (string, error)
|
||||
|
||||
// License service
|
||||
GetLicense() *mm_model.License
|
||||
|
||||
// FileInfoStore service
|
||||
GetFileInfo(fileID string) (*mm_model.FileInfo, error)
|
||||
|
||||
// Cluster service
|
||||
PublishWebSocketEvent(event string, payload map[string]interface{}, broadcast *mm_model.WebsocketBroadcast)
|
||||
PublishPluginClusterEvent(ev mm_model.PluginClusterEvent, opts mm_model.PluginClusterEventSendOptions) error
|
||||
|
||||
// Cloud service
|
||||
GetCloudLimits() (*mm_model.ProductLimits, error)
|
||||
|
||||
// Config service
|
||||
GetConfig() *mm_model.Config
|
||||
|
||||
// Logger service
|
||||
GetLogger() mlog.LoggerIFace
|
||||
|
||||
// KVStore service
|
||||
KVSetWithOptions(key string, value []byte, options mm_model.PluginKVSetOptions) (bool, error)
|
||||
|
||||
// Store service
|
||||
GetMasterDB() (*sql.DB, error)
|
||||
|
||||
// System service
|
||||
GetDiagnosticID() string
|
||||
}
|
Reference in New Issue
Block a user