1// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2// See LICENSE.txt for license information. 3 4package main 5 6import ( 7 "github.com/mattermost/mattermost-server/v6/app/plugin_api_tests" 8 "github.com/mattermost/mattermost-server/v6/model" 9 "github.com/mattermost/mattermost-server/v6/plugin" 10) 11 12type configuration struct { 13 plugin_api_tests.BasicConfig 14 MyStringSetting string 15 MyIntSetting int 16 MyBoolSetting bool 17} 18 19type MyPlugin struct { 20 plugin.MattermostPlugin 21 22 configuration configuration 23} 24 25func (p *MyPlugin) OnConfigurationChange() error { 26 if err := p.API.LoadPluginConfiguration(&p.configuration); err != nil { 27 return err 28 } 29 30 return nil 31} 32 33func (p *MyPlugin) MessageWillBePosted(_ *plugin.Context, _ *model.Post) (*model.Post, string) { 34 if p.configuration.MyStringSetting != "override" { 35 return nil, "MyStringSetting has invalid value" 36 } 37 if p.configuration.MyIntSetting != 35 { 38 return nil, "MyIntSetting has invalid value" 39 } 40 if !p.configuration.MyBoolSetting { 41 return nil, "MyBoolSetting has invalid value" 42 } 43 return nil, "OK" 44} 45 46func main() { 47 plugin.ClientMain(&MyPlugin{}) 48} 49