MM-44953: Refactor EnsureBot to be used from plugin.API (#20521)

The mattermost-plugin-api code also needs to use this.
Hence we make it available from plugin.API.

https://mattermost.atlassian.net/browse/MM-44953

```release-note
NONE
```
Этот коммит содержится в:
Agniva De Sarker
2022-06-22 14:06:00 +05:30
коммит произвёл GitHub
родитель b5dec4f4d9
Коммит 4dd2b5f039
8 изменённых файлов: 108 добавлений и 10 удалений

Просмотреть файл

@@ -1152,6 +1152,11 @@ type API interface {
//
// Minimum server version: 7.0
GetCloudLimits() (*model.ProductLimits, error)
// EnsureBotUser updates the bot if it exists, otherwise creates it.
//
// Minimum server version: 7.1
EnsureBotUser(bot *model.Bot) (string, error)
}
var handshake = plugin.HandshakeConfig{

Просмотреть файл

@@ -1232,3 +1232,10 @@ func (api *apiTimerLayer) GetCloudLimits() (*model.ProductLimits, error) {
api.recordTime(startTime, "GetCloudLimits", _returnsB == nil)
return _returnsA, _returnsB
}
func (api *apiTimerLayer) EnsureBotUser(bot *model.Bot) (string, error) {
startTime := timePkg.Now()
_returnsA, _returnsB := api.apiImpl.EnsureBotUser(bot)
api.recordTime(startTime, "EnsureBotUser", _returnsB == nil)
return _returnsA, _returnsB
}

Просмотреть файл

@@ -5678,3 +5678,33 @@ func (s *apiRPCServer) GetCloudLimits(args *Z_GetCloudLimitsArgs, returns *Z_Get
}
return nil
}
type Z_EnsureBotUserArgs struct {
A *model.Bot
}
type Z_EnsureBotUserReturns struct {
A string
B error
}
func (g *apiRPCClient) EnsureBotUser(bot *model.Bot) (string, error) {
_args := &Z_EnsureBotUserArgs{bot}
_returns := &Z_EnsureBotUserReturns{}
if err := g.client.Call("Plugin.EnsureBotUser", _args, _returns); err != nil {
log.Printf("RPC call to EnsureBotUser API failed: %s", err.Error())
}
return _returns.A, _returns.B
}
func (s *apiRPCServer) EnsureBotUser(args *Z_EnsureBotUserArgs, returns *Z_EnsureBotUserReturns) error {
if hook, ok := s.impl.(interface {
EnsureBotUser(bot *model.Bot) (string, error)
}); ok {
returns.A, returns.B = hook.EnsureBotUser(args.A)
returns.B = encodableError(returns.B)
} else {
return encodableError(fmt.Errorf("API EnsureBotUser called but not implemented."))
}
return nil
}

Просмотреть файл

@@ -620,6 +620,27 @@ func (_m *API) EnablePlugin(id string) *model.AppError {
return r0
}
// EnsureBotUser provides a mock function with given fields: bot
func (_m *API) EnsureBotUser(bot *model.Bot) (string, error) {
ret := _m.Called(bot)
var r0 string
if rf, ok := ret.Get(0).(func(*model.Bot) string); ok {
r0 = rf(bot)
} else {
r0 = ret.Get(0).(string)
}
var r1 error
if rf, ok := ret.Get(1).(func(*model.Bot) error); ok {
r1 = rf(bot)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// ExecuteSlashCommand provides a mock function with given fields: commandArgs
func (_m *API) ExecuteSlashCommand(commandArgs *model.CommandArgs) (*model.CommandResponse, error) {
ret := _m.Called(commandArgs)