github.com/xzl8028/xenia-server@v0.0.0-20190809101854-18450a97da63/tests/plugin_tests/manual.test_load_configuration_plugin/main.go (about) 1 // Copyright (c) 2015-present Xenia, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package main 5 6 import ( 7 "fmt" 8 9 "github.com/xzl8028/xenia-server/model" 10 "github.com/xzl8028/xenia-server/plugin" 11 ) 12 13 type configuration struct { 14 MyStringSetting string 15 MyIntSetting int 16 MyBoolSetting bool 17 } 18 19 type MyPlugin struct { 20 plugin.XeniaPlugin 21 22 configuration configuration 23 } 24 25 func (p *MyPlugin) OnConfigurationChange() error { 26 if err := p.API.LoadPluginConfiguration(&p.configuration); err != nil { 27 return err 28 } 29 30 return nil 31 } 32 33 func (p *MyPlugin) MessageWillBePosted(c *plugin.Context, post *model.Post) (*model.Post, string) { 34 if p.configuration.MyStringSetting != "str" { 35 return nil, "MyStringSetting has invalid value" 36 } 37 if p.configuration.MyIntSetting != 32 { 38 return nil, fmt.Sprintf("MyIntSetting has invalid value %v != %v", p.configuration.MyIntSetting, 32) 39 } 40 if p.configuration.MyBoolSetting != true { 41 return nil, "MyBoolSetting has invalid value" 42 } 43 return nil, "" 44 } 45 46 func main() { 47 plugin.ClientMain(&MyPlugin{}) 48 }