Move setting plugin helpers to a seperate function to avoid breaking changes. (#10809)
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
6ce3cc6921
Коммит
66cb36f5dc
@@ -17,11 +17,13 @@ const (
|
|||||||
// Call this when your plugin is ready to start.
|
// Call this when your plugin is ready to start.
|
||||||
func ClientMain(pluginImplementation interface{}) {
|
func ClientMain(pluginImplementation interface{}) {
|
||||||
if impl, ok := pluginImplementation.(interface {
|
if impl, ok := pluginImplementation.(interface {
|
||||||
SetAPI(api API, helpers Helpers)
|
SetAPI(api API)
|
||||||
|
SetHelpers(helpers Helpers)
|
||||||
}); !ok {
|
}); !ok {
|
||||||
panic("Plugin implementation given must embed plugin.MattermostPlugin")
|
panic("Plugin implementation given must embed plugin.MattermostPlugin")
|
||||||
} else {
|
} else {
|
||||||
impl.SetAPI(nil, nil)
|
impl.SetAPI(nil)
|
||||||
|
impl.SetHelpers(nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
pluginMap := map[string]plugin.Plugin{
|
pluginMap := map[string]plugin.Plugin{
|
||||||
@@ -42,7 +44,11 @@ type MattermostPlugin struct {
|
|||||||
|
|
||||||
// SetAPI persists the given API interface to the plugin. It is invoked just prior to the
|
// SetAPI persists the given API interface to the plugin. It is invoked just prior to the
|
||||||
// OnActivate hook, exposing the API for use by the plugin.
|
// OnActivate hook, exposing the API for use by the plugin.
|
||||||
func (p *MattermostPlugin) SetAPI(api API, helpers Helpers) {
|
func (p *MattermostPlugin) SetAPI(api API) {
|
||||||
p.API = api
|
p.API = api
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetHelpers does the same thing as SetAPI except for the plugin helpers.
|
||||||
|
func (p *MattermostPlugin) SetHelpers(helpers Helpers) {
|
||||||
p.Helpers = helpers
|
p.Helpers = helpers
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -196,9 +196,11 @@ func (s *hooksRPCServer) OnActivate(args *Z_OnActivateArgs, returns *Z_OnActivat
|
|||||||
}
|
}
|
||||||
|
|
||||||
if mmplugin, ok := s.impl.(interface {
|
if mmplugin, ok := s.impl.(interface {
|
||||||
SetAPI(api API, helpers Helpers)
|
SetAPI(api API)
|
||||||
|
SetHelpers(helpers Helpers)
|
||||||
}); ok {
|
}); ok {
|
||||||
mmplugin.SetAPI(s.apiRPCClient, &HelpersImpl{API: s.apiRPCClient})
|
mmplugin.SetAPI(s.apiRPCClient)
|
||||||
|
mmplugin.SetHelpers(&HelpersImpl{API: s.apiRPCClient})
|
||||||
}
|
}
|
||||||
|
|
||||||
if mmplugin, ok := s.impl.(interface {
|
if mmplugin, ok := s.impl.(interface {
|
||||||
|
|||||||
@@ -46,7 +46,8 @@ func Example() {
|
|||||||
defer helpers.AssertExpectations(t)
|
defer helpers.AssertExpectations(t)
|
||||||
|
|
||||||
p := &HelloUserPlugin{}
|
p := &HelloUserPlugin{}
|
||||||
p.SetAPI(api, helpers)
|
p.SetAPI(api)
|
||||||
|
p.SetHelpers(helpers)
|
||||||
|
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
r := httptest.NewRequest("GET", "/", nil)
|
r := httptest.NewRequest("GET", "/", nil)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user