summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
Diffstat (limited to 'model')
-rw-r--r--model/outgoing_webhook.go10
-rw-r--r--model/outgoing_webhook_test.go20
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) {