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