added the custom icon and username for the outgoing webhook and its response (#9141)

* 8272 added the username and icon as part of the model and persisted the same

* 8272 added the custome icon and name when set to the web hook response

* 8272 changed the infinte loop to timeout after 5 seconds

* 8272  fixed review comments
Этот коммит содержится в:
Pradeep Murugesan
2018-07-25 14:31:41 +02:00
коммит произвёл Jesse Hallam
родитель b89ccca929
Коммит b3c2ecd9b9
9 изменённых файлов: 236 добавлений и 2 удалений

Просмотреть файл

@@ -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
}

Просмотреть файл

@@ -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) {