github.com/xzl8028/xenia-server@v0.0.0-20190809101854-18450a97da63/tests/plugin_tests/manual.test_load_configuration_defaults_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 "github.com/xzl8028/xenia-server/model" 8 "github.com/xzl8028/xenia-server/plugin" 9 ) 10 11 type configuration struct { 12 MyStringSetting string 13 MyIntSetting int 14 MyBoolSetting bool 15 } 16 17 type MyPlugin struct { 18 plugin.XeniaPlugin 19 20 configuration configuration 21 } 22 23 func (p *MyPlugin) OnConfigurationChange() error { 24 if err := p.API.LoadPluginConfiguration(&p.configuration); err != nil { 25 return err 26 } 27 28 return nil 29 } 30 31 func (p *MyPlugin) MessageWillBePosted(c *plugin.Context, post *model.Post) (*model.Post, string) { 32 if p.configuration.MyStringSetting != "override" { 33 return nil, "MyStringSetting has invalid value" 34 } 35 if p.configuration.MyIntSetting != 35 { 36 return nil, "MyIntSetting has invalid value" 37 } 38 if p.configuration.MyBoolSetting != true { 39 return nil, "MyBoolSetting has invalid value" 40 } 41 return nil, "" 42 } 43 44 func main() { 45 plugin.ClientMain(&MyPlugin{}) 46 }