func (s SqlWebhookStore) SaveIncoming(webhook *model.IncomingWebhook) StoreChannel { storeChannel := make(StoreChannel) go func() { result := StoreResult{} if len(webhook.Id) > 0 { result.Err = model.NewAppError("SqlWebhookStore.SaveIncoming", "You cannot overwrite an existing IncomingWebhook", "id="+webhook.Id) storeChannel <- result close(storeChannel) return } webhook.PreSave() if result.Err = webhook.IsValid(); result.Err != nil { storeChannel <- result close(storeChannel) return } if err := s.GetMaster().Insert(webhook); err != nil { result.Err = model.NewAppError("SqlWebhookStore.SaveIncoming", "We couldn't save the IncomingWebhook", "id="+webhook.Id+", "+err.Error()) } else { result.Data = webhook } storeChannel <- result close(storeChannel) }() return storeChannel }
func (s SqlWebhookStore) SaveIncoming(webhook *model.IncomingWebhook) StoreChannel { storeChannel := make(StoreChannel) go func() { result := StoreResult{} if len(webhook.Id) > 0 { result.Err = model.NewLocAppError("SqlWebhookStore.SaveIncoming", "store.sql_webhooks.save_incoming.existing.app_error", nil, "id="+webhook.Id) storeChannel <- result close(storeChannel) return } webhook.PreSave() if result.Err = webhook.IsValid(); result.Err != nil { storeChannel <- result close(storeChannel) return } if err := s.GetMaster().Insert(webhook); err != nil { result.Err = model.NewLocAppError("SqlWebhookStore.SaveIncoming", "store.sql_webhooks.save_incoming.app_error", nil, "id="+webhook.Id+", "+err.Error()) } else { result.Data = webhook } storeChannel <- result close(storeChannel) }() return storeChannel }
func TestWebhookStoreSaveIncoming(t *testing.T) { Setup() o1 := model.IncomingWebhook{} o1.ChannelId = model.NewId() o1.UserId = model.NewId() o1.TeamId = model.NewId() if err := (<-store.Webhook().SaveIncoming(&o1)).Err; err != nil { t.Fatal("couldn't save item", err) } if err := (<-store.Webhook().SaveIncoming(&o1)).Err; err == nil { t.Fatal("shouldn't be able to update from save") } }