diff options
Diffstat (limited to 'model')
-rw-r--r-- | model/plugin_key_value.go | 26 | ||||
-rw-r--r-- | model/plugin_key_value_test.go | 22 |
2 files changed, 48 insertions, 0 deletions
diff --git a/model/plugin_key_value.go b/model/plugin_key_value.go new file mode 100644 index 000000000..b25b4c170 --- /dev/null +++ b/model/plugin_key_value.go @@ -0,0 +1,26 @@ +// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package model + +import ( + "net/http" +) + +type PluginKeyValue struct { + PluginId string `json:"plugin_id"` + Key string `json:"key" db:"PKey"` + Value []byte `json:"value" db:"PValue"` +} + +func (kv *PluginKeyValue) IsValid() *AppError { + if len(kv.PluginId) == 0 { + return NewAppError("PluginKeyValue.IsValid", "model.plugin_key_value.is_valid.plugin_id.app_error", nil, "key="+kv.Key, http.StatusBadRequest) + } + + if len(kv.Key) == 0 { + return NewAppError("PluginKeyValue.IsValid", "model.plugin_key_value.is_valid.key.app_error", nil, "key="+kv.Key, http.StatusBadRequest) + } + + return nil +} diff --git a/model/plugin_key_value_test.go b/model/plugin_key_value_test.go new file mode 100644 index 000000000..82dd7d561 --- /dev/null +++ b/model/plugin_key_value_test.go @@ -0,0 +1,22 @@ +// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package model + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestPluginKeyIsValid(t *testing.T) { + kv := PluginKeyValue{PluginId: "someid", Key: "somekey", Value: []byte("somevalue")} + assert.Nil(t, kv.IsValid()) + + kv.PluginId = "" + assert.NotNil(t, kv.IsValid()) + + kv.PluginId = "someid" + kv.Key = "" + assert.NotNil(t, kv.IsValid()) +} |