diff options
Diffstat (limited to 'model')
-rw-r--r-- | model/outgoing_webhook.go | 10 | ||||
-rw-r--r-- | model/outgoing_webhook_test.go | 20 |
2 files changed, 30 insertions, 0 deletions
diff --git a/model/outgoing_webhook.go b/model/outgoing_webhook.go index b5dbf34d9..698a226e3 100644 --- a/model/outgoing_webhook.go +++ b/model/outgoing_webhook.go @@ -28,6 +28,8 @@ type OutgoingWebhook struct { DisplayName string `json:"display_name"` Description string `json:"description"` ContentType string `json:"content_type"` + Username string `json:"username"` + IconURL string `json:"icon_url"` } type OutgoingWebhookPayload struct { @@ -181,6 +183,14 @@ func (o *OutgoingWebhook) IsValid() *AppError { return NewAppError("OutgoingWebhook.IsValid", "model.outgoing_hook.is_valid.content_type.app_error", nil, "", http.StatusBadRequest) } + if len(o.Username) > 64 { + return NewAppError("OutgoingWebhook.IsValid", "model.outgoing_hook.username.app_error", nil, "", http.StatusBadRequest) + } + + if len(o.IconURL) > 1024 { + return NewAppError("OutgoingWebhook.IsValid", "model.outgoing_hook.icon_url.app_error", nil, "", http.StatusBadRequest) + } + return nil } diff --git a/model/outgoing_webhook_test.go b/model/outgoing_webhook_test.go index 49441cfea..3241e649f 100644 --- a/model/outgoing_webhook_test.go +++ b/model/outgoing_webhook_test.go @@ -121,6 +121,26 @@ func TestOutgoingWebhookIsValid(t *testing.T) { if err := o.IsValid(); err != nil { t.Fatal(err) } + + o.Username = strings.Repeat("1", 65) + if err := o.IsValid(); err == nil { + t.Fatal("should be invalid") + } + + o.Username = strings.Repeat("1", 64) + if err := o.IsValid(); err != nil { + t.Fatal("should be invalid") + } + + o.IconURL = strings.Repeat("1", 1025) + if err := o.IsValid(); err == nil { + t.Fatal(err) + } + + o.IconURL = strings.Repeat("1", 1024) + if err := o.IsValid(); err != nil { + t.Fatal(err) + } } func TestOutgoingWebhookPayloadToFormValues(t *testing.T) { |