From 441156b91e9f9bac6b5592616551e2920c4cb33b Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Wed, 30 Mar 2016 10:56:20 -0400 Subject: Added DisplayName and Description fields to both types of webhooks and slash commands --- model/command.go | 9 +++++++++ model/command_test.go | 20 ++++++++++++++++++++ model/incoming_webhook.go | 24 +++++++++++++++++------- model/incoming_webhook_test.go | 20 ++++++++++++++++++++ model/outgoing_webhook.go | 10 ++++++++++ model/outgoing_webhook_test.go | 20 ++++++++++++++++++++ 6 files changed, 96 insertions(+), 7 deletions(-) (limited to 'model') diff --git a/model/command.go b/model/command.go index 56d88f13c..ca3038122 100644 --- a/model/command.go +++ b/model/command.go @@ -29,6 +29,7 @@ type Command struct { AutoCompleteDesc string `json:"auto_complete_desc"` AutoCompleteHint string `json:"auto_complete_hint"` DisplayName string `json:"display_name"` + Description string `json:"description"` URL string `json:"url"` } @@ -114,6 +115,14 @@ func (o *Command) IsValid() *AppError { return NewLocAppError("Command.IsValid", "model.command.is_valid.method.app_error", nil, "") } + if len(o.DisplayName) > 64 { + return NewLocAppError("Command.IsValid", "model.command.is_valid.display_name.app_error", nil, "") + } + + if len(o.Description) > 128 { + return NewLocAppError("Command.IsValid", "model.command.is_valid.description.app_error", nil, "") + } + return nil } diff --git a/model/command_test.go b/model/command_test.go index 0581625d9..d362d8f2c 100644 --- a/model/command_test.go +++ b/model/command_test.go @@ -84,6 +84,26 @@ func TestCommandIsValid(t *testing.T) { if err := o.IsValid(); err != nil { t.Fatal(err) } + + o.DisplayName = strings.Repeat("1", 65) + if err := o.IsValid(); err == nil { + t.Fatal("should be invalid") + } + + o.DisplayName = strings.Repeat("1", 64) + if err := o.IsValid(); err != nil { + t.Fatal(err) + } + + o.Description = strings.Repeat("1", 129) + if err := o.IsValid(); err == nil { + t.Fatal("should be invalid") + } + + o.Description = strings.Repeat("1", 128) + if err := o.IsValid(); err != nil { + t.Fatal(err) + } } func TestCommandPreSave(t *testing.T) { diff --git a/model/incoming_webhook.go b/model/incoming_webhook.go index 8432f5fea..0763b443e 100644 --- a/model/incoming_webhook.go +++ b/model/incoming_webhook.go @@ -14,13 +14,15 @@ const ( ) type IncomingWebhook struct { - Id string `json:"id"` - CreateAt int64 `json:"create_at"` - UpdateAt int64 `json:"update_at"` - DeleteAt int64 `json:"delete_at"` - UserId string `json:"user_id"` - ChannelId string `json:"channel_id"` - TeamId string `json:"team_id"` + Id string `json:"id"` + CreateAt int64 `json:"create_at"` + UpdateAt int64 `json:"update_at"` + DeleteAt int64 `json:"delete_at"` + UserId string `json:"user_id"` + ChannelId string `json:"channel_id"` + TeamId string `json:"team_id"` + DisplayName string `json:"display_name"` + Description string `json:"description"` } type IncomingWebhookRequest struct { @@ -99,6 +101,14 @@ func (o *IncomingWebhook) IsValid() *AppError { return NewLocAppError("IncomingWebhook.IsValid", "model.incoming_hook.team_id.app_error", nil, "") } + if len(o.DisplayName) > 64 { + return NewLocAppError("IncomingWebhook.IsValid", "model.incoming_hook.display_name.app_error", nil, "") + } + + if len(o.Description) > 128 { + return NewLocAppError("IncomingWebhook.IsValid", "model.incoming_hook.description.app_error", nil, "") + } + return nil } diff --git a/model/incoming_webhook_test.go b/model/incoming_webhook_test.go index 5297d7d90..3f1754244 100644 --- a/model/incoming_webhook_test.go +++ b/model/incoming_webhook_test.go @@ -69,6 +69,26 @@ func TestIncomingWebhookIsValid(t *testing.T) { if err := o.IsValid(); err != nil { t.Fatal(err) } + + o.DisplayName = strings.Repeat("1", 65) + if err := o.IsValid(); err == nil { + t.Fatal("should be invalid") + } + + o.DisplayName = strings.Repeat("1", 64) + if err := o.IsValid(); err != nil { + t.Fatal(err) + } + + o.Description = strings.Repeat("1", 129) + if err := o.IsValid(); err == nil { + t.Fatal("should be invalid") + } + + o.Description = strings.Repeat("1", 128) + if err := o.IsValid(); err != nil { + t.Fatal(err) + } } func TestIncomingWebhookPreSave(t *testing.T) { diff --git a/model/outgoing_webhook.go b/model/outgoing_webhook.go index 70de4d26e..e13de9080 100644 --- a/model/outgoing_webhook.go +++ b/model/outgoing_webhook.go @@ -20,6 +20,8 @@ type OutgoingWebhook struct { TeamId string `json:"team_id"` TriggerWords StringArray `json:"trigger_words"` CallbackURLs StringArray `json:"callback_urls"` + DisplayName string `json:"display_name"` + Description string `json:"description"` } func (o *OutgoingWebhook) ToJson() string { @@ -106,6 +108,14 @@ func (o *OutgoingWebhook) IsValid() *AppError { } } + if len(o.DisplayName) > 64 { + return NewLocAppError("OutgoingWebhook.IsValid", "model.outgoing_hook.is_valid.display_name.app_error", nil, "") + } + + if len(o.Description) > 128 { + return NewLocAppError("OutgoingWebhook.IsValid", "model.outgoing_hook.is_valid.description.app_error", nil, "") + } + return nil } diff --git a/model/outgoing_webhook_test.go b/model/outgoing_webhook_test.go index 665b85b6f..72c842e03 100644 --- a/model/outgoing_webhook_test.go +++ b/model/outgoing_webhook_test.go @@ -89,6 +89,26 @@ func TestOutgoingWebhookIsValid(t *testing.T) { if err := o.IsValid(); err != nil { t.Fatal(err) } + + o.DisplayName = strings.Repeat("1", 65) + if err := o.IsValid(); err == nil { + t.Fatal("should be invalid") + } + + o.DisplayName = strings.Repeat("1", 64) + if err := o.IsValid(); err != nil { + t.Fatal(err) + } + + o.Description = strings.Repeat("1", 129) + if err := o.IsValid(); err == nil { + t.Fatal("should be invalid") + } + + o.Description = strings.Repeat("1", 128) + if err := o.IsValid(); err != nil { + t.Fatal(err) + } } func TestOutgoingWebhookPreSave(t *testing.T) { -- cgit v1.2.3-1-g7c22