From 729a84a3e6dd5daa20a2483f0db5453e64115885 Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Tue, 12 May 2020 21:23:41 +0530 Subject: [PATCH] MM-24135: Migrate AppError from SaveChannel/channel_store.go (#14299) * MM-24135: Migrate AppError from SaveChannel/channel_store.go This is the first POC of migration of store app errors to plain error. We create a few basic error types in the store package and use them to return the errors from store methods. In the app layer, we inspect the error and re-create the exact app errors. This lets us preserve the same error content, but yet move to plain errors. Since this is a gradual migration, this means that the error inspection code will be duplicated across the app layer whenever a store method is invoked. But all of that should go away once we start propagating the errors higher up the hierarchy. There have been a significant amount of changes in the storetest and searchtest layer, primarily because we have to rename the err variable now that it is of a different type. * Addressed review comments * Made all appError origins to be CreateChannel * Remove typed internal error * Fix translations * fix layer generation Co-authored-by: mattermod --- api4/scheme_test.go | 4 +- app/channel.go | 59 ++- i18n/en.json | 28 +- store/errors.go | 73 +++ store/opentracing_layer.go | 2 +- store/searchlayer/channel_layer.go | 2 +- store/searchtest/channel_layer.go | 1 + store/sqlstore/channel_store.go | 72 ++- store/store.go | 2 +- store/storetest/channel_store.go | 703 +++++++++++++------------- store/storetest/compliance_store.go | 36 +- store/storetest/group_store.go | 52 +- store/storetest/mocks/ChannelStore.go | 10 +- store/storetest/post_store.go | 16 +- store/storetest/role_store.go | 12 +- store/storetest/scheme_store.go | 4 +- store/storetest/team_store.go | 16 +- store/storetest/user_store.go | 130 ++--- store/timer_layer.go | 2 +- 19 files changed, 678 insertions(+), 546 deletions(-) create mode 100644 store/errors.go diff --git a/api4/scheme_test.go b/api4/scheme_test.go index 8981ac8af5..07a4db7bee 100644 --- a/api4/scheme_test.go +++ b/api4/scheme_test.go @@ -424,8 +424,8 @@ func TestGetChannelsForScheme(t *testing.T) { Type: model.CHANNEL_OPEN, SchemeId: &scheme1.Id, } - channel2, err = th.App.Srv().Store.Channel().Save(channel2, 1000000) - assert.Nil(t, err) + channel2, nErr := th.App.Srv().Store.Channel().Save(channel2, 1000000) + assert.Nil(t, nErr) l4, r4 := th.SystemAdminClient.GetChannelsForScheme(scheme1.Id, 0, 100) CheckNoError(t, r4) diff --git a/app/channel.go b/app/channel.go index 308c64f530..eb4332a475 100644 --- a/app/channel.go +++ b/app/channel.go @@ -4,6 +4,7 @@ package app import ( + "errors" "fmt" "net/http" "strings" @@ -205,10 +206,31 @@ func (a *App) RenameChannel(channel *model.Channel, newChannelName string, newDi func (a *App) CreateChannel(channel *model.Channel, addMember bool) (*model.Channel, *model.AppError) { channel.DisplayName = strings.TrimSpace(channel.DisplayName) - - sc, err := a.Srv().Store.Channel().Save(channel, *a.Config().TeamSettings.MaxChannelsPerTeam) - if err != nil { - return nil, err + sc, nErr := a.Srv().Store.Channel().Save(channel, *a.Config().TeamSettings.MaxChannelsPerTeam) + if nErr != nil { + var invErr *store.ErrInvalidInput + var cErr *store.ErrConflict + var ltErr *store.ErrLimitExceeded + var appErr *model.AppError + switch { + case errors.As(nErr, &invErr): + switch { + case invErr.Entity == "Channel" && invErr.Field == "DeleteAt": + return nil, model.NewAppError("CreateChannel", "store.sql_channel.save.archived_channel.app_error", nil, "", http.StatusBadRequest) + case invErr.Entity == "Channel" && invErr.Field == "Type": + return nil, model.NewAppError("CreateChannel", "store.sql_channel.save.direct_channel.app_error", nil, "", http.StatusBadRequest) + case invErr.Entity == "Channel" && invErr.Field == "Id": + return nil, model.NewAppError("CreateChannel", "store.sql_channel.save_channel.existing.app_error", nil, "id="+invErr.Value.(string), http.StatusBadRequest) + } + case errors.As(nErr, &cErr): + return channel, model.NewAppError("CreateChannel", store.CHANNEL_EXISTS_ERROR, nil, cErr.Error(), http.StatusBadRequest) + case errors.As(nErr, <Err): + return nil, model.NewAppError("CreateChannel", "store.sql_channel.save_channel.limit.app_error", nil, ltErr.Error(), http.StatusBadRequest) + case errors.As(nErr, &appErr): // in case we haven't converted to plain error. + return nil, appErr + default: // last fallback in case it doesn't map to an existing app error. + return nil, model.NewAppError("CreateChannel", "app.channel.create_channel.internal_error", nil, nErr.Error(), http.StatusInternalServerError) + } } if addMember { @@ -407,12 +429,31 @@ func (a *App) createGroupChannel(userIds []string, creatorId string) (*model.Cha Type: model.CHANNEL_GROUP, } - channel, err := a.Srv().Store.Channel().Save(group, *a.Config().TeamSettings.MaxChannelsPerTeam) - if err != nil { - if err.Id == store.CHANNEL_EXISTS_ERROR { - return channel, err + channel, nErr := a.Srv().Store.Channel().Save(group, *a.Config().TeamSettings.MaxChannelsPerTeam) + if nErr != nil { + var invErr *store.ErrInvalidInput + var cErr *store.ErrConflict + var ltErr *store.ErrLimitExceeded + var appErr *model.AppError + switch { + case errors.As(nErr, &invErr): + switch { + case invErr.Entity == "Channel" && invErr.Field == "DeleteAt": + return nil, model.NewAppError("CreateChannel", "store.sql_channel.save.archived_channel.app_error", nil, "", http.StatusBadRequest) + case invErr.Entity == "Channel" && invErr.Field == "Type": + return nil, model.NewAppError("CreateChannel", "store.sql_channel.save.direct_channel.app_error", nil, "", http.StatusBadRequest) + case invErr.Entity == "Channel" && invErr.Field == "Id": + return nil, model.NewAppError("CreateChannel", "store.sql_channel.save_channel.existing.app_error", nil, "id="+invErr.Value.(string), http.StatusBadRequest) + } + case errors.As(nErr, &cErr): + return channel, model.NewAppError("CreateChannel", store.CHANNEL_EXISTS_ERROR, nil, cErr.Error(), http.StatusBadRequest) + case errors.As(nErr, <Err): + return nil, model.NewAppError("CreateChannel", "store.sql_channel.save_channel.limit.app_error", nil, ltErr.Error(), http.StatusBadRequest) + case errors.As(nErr, &appErr): // in case we haven't converted to plain error. + return nil, appErr + default: // last fallback in case it doesn't map to an existing app error. + return nil, model.NewAppError("CreateChannel", "app.channel.create_channel.internal_error", nil, nErr.Error(), http.StatusInternalServerError) } - return nil, err } for _, user := range users { diff --git a/i18n/en.json b/i18n/en.json index f3491e69f0..743b691982 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -2930,6 +2930,10 @@ "id": "app.bot.get_disable_bot_sysadmin_message", "translation": "{{if .disableBotsSetting}}{{if .printAllBots}}{{.UserName}} was deactivated. They managed the following bot accounts which have now been disabled.\n\n{{.BotNames}}{{else}}{{.UserName}} was deactivated. They managed {{.NumBots}} bot accounts which have now been disabled, including the following:\n\n{{.BotNames}}{{end}}You can take ownership of each bot by enabling it at **Integrations > Bot Accounts** and creating new tokens for the bot.\n\nFor more information, see our [documentation](https://docs.mattermost.com/developer/bot-accounts.html#what-happens-when-a-user-who-owns-bot-accounts-is-disabled).{{else}}{{if .printAllBots}}{{.UserName}} was deactivated. They managed the following bot accounts which are still enabled.\n\n{{.BotNames}}\n{{else}}{{.UserName}} was deactivated. They managed {{.NumBots}} bot accounts which are still enabled, including the following:\n\n{{.BotNames}}{{end}}We strongly recommend you to take ownership of each bot by re-enabling it at **Integrations > Bot Accounts** and creating new tokens for the bot.\n\nFor more information, see our [documentation](https://docs.mattermost.com/developer/bot-accounts.html#what-happens-when-a-user-who-owns-bot-accounts-is-disabled).\n\nIf you want bot accounts to disable automatically after owner deactivation, set “Disable bot accounts when owner is deactivated” in **System Console > Integrations > Bot Accounts** to true.{{end}}" }, + { + "id": "app.channel.create_channel.internal_error", + "translation": "Unable to save channel." + }, { "id": "app.channel.create_channel.no_team_id.app_error", "translation": "Must specify the team ID to create a channel." @@ -6042,26 +6046,10 @@ "id": "store.sql_channel.save.archived_channel.app_error", "translation": "You can not modify an archived channel." }, - { - "id": "store.sql_channel.save.commit_transaction.app_error", - "translation": "Unable to commit transaction." - }, { "id": "store.sql_channel.save.direct_channel.app_error", "translation": "Use SaveDirectChannel to create a direct channel." }, - { - "id": "store.sql_channel.save.open_transaction.app_error", - "translation": "Unable to open transaction." - }, - { - "id": "store.sql_channel.save.upsert_public_channel.app_error", - "translation": "Unable to upsert materialized public channel." - }, - { - "id": "store.sql_channel.save_channel.current_count.app_error", - "translation": "Failed to get current channel count." - }, { "id": "store.sql_channel.save_channel.existing.app_error", "translation": "Must call update for existing channel." @@ -6074,10 +6062,6 @@ "id": "store.sql_channel.save_channel.limit.app_error", "translation": "You've reached the limit of the number of allowed channels." }, - { - "id": "store.sql_channel.save_channel.save.app_error", - "translation": "Unable to save the channel." - }, { "id": "store.sql_channel.save_direct_channel.add_members.app_error", "translation": "Unable to add direct channel members." @@ -6086,6 +6070,10 @@ "id": "store.sql_channel.save_direct_channel.commit.app_error", "translation": "Unable to commit transaction." }, + { + "id": "store.sql_channel.save_direct_channel.internal_error", + "translation": "Unable to save direct channel." + }, { "id": "store.sql_channel.save_direct_channel.not_direct.app_error", "translation": "Not a direct channel attempted to be created with SaveDirectChannel." diff --git a/store/errors.go b/store/errors.go new file mode 100644 index 0000000000..7fb7a25085 --- /dev/null +++ b/store/errors.go @@ -0,0 +1,73 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +package store + +import ( + "fmt" +) + +// ErrInvalidInput indicates an error that has occured due to an invalid input. +type ErrInvalidInput struct { + Entity string // The entity which was sent as the input. + Field string // The field of the entity which was invalid. + Value interface{} // The actual value of the field. +} + +func NewErrInvalidInput(entity, field string, value interface{}) *ErrInvalidInput { + return &ErrInvalidInput{ + Entity: entity, + Field: field, + Value: value, + } +} + +func (e *ErrInvalidInput) Error() string { + return fmt.Sprintf("invalid input: entity: %s field: %s value: %s", e.Entity, e.Field, e.Value) +} + +// ErrLimitExceeded indicates an error that has occured because some value exceeded a limit. +type ErrLimitExceeded struct { + What string // What was the object that exceeded. + Count int // The value of the object. + meta string // Any additional metadata. +} + +func NewErrLimitExceeded(what string, count int, meta string) *ErrLimitExceeded { + return &ErrLimitExceeded{ + What: what, + Count: count, + meta: meta, + } +} + +func (e *ErrLimitExceeded) Error() string { + return fmt.Sprintf("limit exceeded: what: %s count: %d metadata: %s", e.What, e.Count, e.meta) +} + +// ErrConflict indicates a conflict that occured. +type ErrConflict struct { + Resource string // The resource which created the conflict. + err error // Internal error. + meta string // Any additional metadata. +} + +func NewErrConflict(resource string, err error, meta string) *ErrConflict { + return &ErrConflict{ + Resource: resource, + err: err, + meta: meta, + } +} + +func (e *ErrConflict) Error() string { + return e.Resource + "exists " + e.meta + " " + e.err.Error() +} + +func (e *ErrConflict) Unwrap() error { + return e.err +} + +// TODO: +// type ErrNotFound struct { +// } diff --git a/store/opentracing_layer.go b/store/opentracing_layer.go index 020e08778f..6a8e0ba636 100644 --- a/store/opentracing_layer.go +++ b/store/opentracing_layer.go @@ -1665,7 +1665,7 @@ func (s *OpenTracingLayerChannelStore) Restore(channelId string, time int64) *mo return resultVar0 } -func (s *OpenTracingLayerChannelStore) Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, *model.AppError) { +func (s *OpenTracingLayerChannelStore) Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error) { origCtx := s.Root.Store.Context() span, newCtx := tracing.StartSpanWithParentByContext(s.Root.Store.Context(), "ChannelStore.Save") s.Root.Store.SetContext(newCtx) diff --git a/store/searchlayer/channel_layer.go b/store/searchlayer/channel_layer.go index a7c500990d..4c4b67f0a2 100644 --- a/store/searchlayer/channel_layer.go +++ b/store/searchlayer/channel_layer.go @@ -45,7 +45,7 @@ func (c *SearchChannelStore) indexChannel(channel *model.Channel) { } } -func (c *SearchChannelStore) Save(channel *model.Channel, maxChannels int64) (*model.Channel, *model.AppError) { +func (c *SearchChannelStore) Save(channel *model.Channel, maxChannels int64) (*model.Channel, error) { newChannel, err := c.ChannelStore.Save(channel, maxChannels) if err == nil { c.indexChannel(newChannel) diff --git a/store/searchtest/channel_layer.go b/store/searchtest/channel_layer.go index 5169c121ad..f5fc38722a 100644 --- a/store/searchtest/channel_layer.go +++ b/store/searchtest/channel_layer.go @@ -113,6 +113,7 @@ func testAutocompleteChannelByNameSplittedWithUnderscoreChar(t *testing.T, th *S func testAutocompleteChannelByDisplayNameSplittedByWhitespaces(t *testing.T, th *SearchTestHelper) { alternate, err := th.createChannel(th.Team.Id, "channel-alternate", "Channel Alternate", "", model.CHANNEL_OPEN, false) require.Nil(t, err) + defer th.deleteChannel(alternate) res, apperr := th.Store.Channel().AutocompleteInTeam(th.Team.Id, "Channel A", false) require.Nil(t, apperr) diff --git a/store/sqlstore/channel_store.go b/store/sqlstore/channel_store.go index 849066c0f3..0bc6e86210 100644 --- a/store/sqlstore/channel_store.go +++ b/store/sqlstore/channel_store.go @@ -502,35 +502,33 @@ func (s SqlChannelStore) upsertPublicChannelT(transaction *gorp.Transaction, cha } // Save writes the (non-direct) channel channel to the database. -func (s SqlChannelStore) Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, *model.AppError) { - +func (s SqlChannelStore) Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error) { if channel.DeleteAt != 0 { - return nil, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save.archived_channel.app_error", nil, "", http.StatusBadRequest) + return nil, store.NewErrInvalidInput("Channel", "DeleteAt", channel.DeleteAt) } if channel.Type == model.CHANNEL_DIRECT { - return nil, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save.direct_channel.app_error", nil, "", http.StatusBadRequest) + return nil, store.NewErrInvalidInput("Channel", "Type", channel.Type) } transaction, err := s.GetMaster().Begin() if err != nil { - return nil, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save.open_transaction.app_error", nil, err.Error(), http.StatusInternalServerError) + return nil, errors.Wrapf(err, "begin_transaction: ") } defer finalizeTransaction(transaction) - newChannel, appErr := s.saveChannelT(transaction, channel, maxChannelsPerTeam) - if appErr != nil { - return newChannel, appErr + newChannel, err := s.saveChannelT(transaction, channel, maxChannelsPerTeam) + if err != nil { + return newChannel, err } // Additionally propagate the write to the PublicChannels table. if err := s.upsertPublicChannelT(transaction, newChannel); err != nil { - return nil, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save.upsert_public_channel.app_error", nil, err.Error(), http.StatusInternalServerError) - + return nil, errors.Wrapf(err, "upsert_public_channel: ") } if err := transaction.Commit(); err != nil { - return nil, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save.commit_transaction.app_error", nil, err.Error(), http.StatusInternalServerError) + return nil, errors.Wrapf(err, "commit_transaction: ") } return newChannel, nil @@ -577,9 +575,39 @@ func (s SqlChannelStore) SaveDirectChannel(directchannel *model.Channel, member1 defer finalizeTransaction(transaction) directchannel.TeamId = "" - newChannel, appErr := s.saveChannelT(transaction, directchannel, 0) - if appErr != nil { - return newChannel, appErr + newChannel, err := s.saveChannelT(transaction, directchannel, 0) + if err != nil { + // TODO: This will go away once SaveDirectChannel returns error + var invErr *store.ErrInvalidInput + var cErr *store.ErrConflict + var ltErr *store.ErrLimitExceeded + var appErr *model.AppError + if errors.As(err, &invErr) { + if invErr.Entity == "Channel" && invErr.Field == "DeleteAt" { + return newChannel, model.NewAppError("CreateChannel", "store.sql_channel.save.archived_channel.app_error", nil, "", http.StatusBadRequest) + } + if invErr.Entity == "Channel" && invErr.Field == "Type" { + return newChannel, model.NewAppError("CreateChannel", "store.sql_channel.save.direct_channel.app_error", nil, "", http.StatusBadRequest) + } + if invErr.Entity == "Channel" && invErr.Field == "Id" { + return newChannel, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save_channel.existing.app_error", nil, "id="+invErr.Value.(string), http.StatusBadRequest) + } + } + if errors.As(err, &cErr) { + if cErr.Resource == "Channel" { + return newChannel, model.NewAppError("CreateChannel", store.CHANNEL_EXISTS_ERROR, nil, cErr.Error(), http.StatusBadRequest) + } + } + if errors.As(err, <Err) { + if ltErr.What == "channels_per_team" { + return newChannel, model.NewAppError("CreateChannel", "store.sql_channel.save_channel.limit.app_error", nil, ltErr.Error(), http.StatusBadRequest) + } + } + if errors.As(err, &appErr) { + return nil, appErr + } else { + return nil, model.NewAppError("SqlChannelStore.SaveDirectChannel", "store.sql_channel.save_direct_channel.internal_error", nil, err.Error(), http.StatusInternalServerError) + } } // Members need new channel ID @@ -605,21 +633,21 @@ func (s SqlChannelStore) SaveDirectChannel(directchannel *model.Channel, member1 } -func (s SqlChannelStore) saveChannelT(transaction *gorp.Transaction, channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, *model.AppError) { +func (s SqlChannelStore) saveChannelT(transaction *gorp.Transaction, channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error) { if len(channel.Id) > 0 { - return nil, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save_channel.existing.app_error", nil, "id="+channel.Id, http.StatusBadRequest) + return nil, store.NewErrInvalidInput("Channel", "Id", channel.Id) } channel.PreSave() - if err := channel.IsValid(); err != nil { - return nil, err + if err := channel.IsValid(); err != nil { // TODO: this needs to return plain error + return nil, err // we just pass through the error as-is for now. } if channel.Type != model.CHANNEL_DIRECT && channel.Type != model.CHANNEL_GROUP && maxChannelsPerTeam >= 0 { if count, err := transaction.SelectInt("SELECT COUNT(0) FROM Channels WHERE TeamId = :TeamId AND DeleteAt = 0 AND (Type = 'O' OR Type = 'P')", map[string]interface{}{"TeamId": channel.TeamId}); err != nil { - return nil, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save_channel.current_count.app_error", nil, "teamId="+channel.TeamId+", "+err.Error(), http.StatusInternalServerError) + return nil, errors.Wrapf(err, "save_channel_count: teamId=%s", channel.TeamId) } else if count >= maxChannelsPerTeam { - return nil, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save_channel.limit.app_error", nil, "teamId="+channel.TeamId, http.StatusBadRequest) + return nil, store.NewErrLimitExceeded("channels_per_team", int(count), "teamId="+channel.TeamId) } } @@ -627,9 +655,9 @@ func (s SqlChannelStore) saveChannelT(transaction *gorp.Transaction, channel *mo if IsUniqueConstraintError(err, []string{"Name", "channels_name_teamid_key"}) { dupChannel := model.Channel{} s.GetMaster().SelectOne(&dupChannel, "SELECT * FROM Channels WHERE TeamId = :TeamId AND Name = :Name", map[string]interface{}{"TeamId": channel.TeamId, "Name": channel.Name}) - return &dupChannel, model.NewAppError("SqlChannelStore.Save", store.CHANNEL_EXISTS_ERROR, nil, "id="+channel.Id+", "+err.Error(), http.StatusBadRequest) + return &dupChannel, store.NewErrConflict("Channel", err, "id="+channel.Id) } - return nil, model.NewAppError("SqlChannelStore.Save", "store.sql_channel.save_channel.save.app_error", nil, "id="+channel.Id+", "+err.Error(), http.StatusInternalServerError) + return nil, errors.Wrapf(err, "save_channel: id=%s", channel.Id) } return channel, nil } diff --git a/store/store.go b/store/store.go index 814ee7d392..5fe1ab85b4 100644 --- a/store/store.go +++ b/store/store.go @@ -127,7 +127,7 @@ type TeamStore interface { } type ChannelStore interface { - Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, *model.AppError) + Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error) CreateDirectChannel(userId *model.User, otherUserId *model.User) (*model.Channel, *model.AppError) SaveDirectChannel(channel *model.Channel, member1 *model.ChannelMember, member2 *model.ChannelMember) (*model.Channel, *model.AppError) Update(channel *model.Channel) (*model.Channel, *model.AppError) diff --git a/store/storetest/channel_store.go b/store/storetest/channel_store.go index 2db7997181..938c7ca372 100644 --- a/store/storetest/channel_store.go +++ b/store/storetest/channel_store.go @@ -4,6 +4,7 @@ package storetest import ( + "errors" "sort" "strconv" "strings" @@ -107,21 +108,21 @@ func testChannelStoreSave(t *testing.T, ss store.Store) { o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err, "couldn't save item", err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr, "couldn't save item", nErr) - _, err = ss.Channel().Save(&o1, -1) - require.NotNil(t, err, "shouldn't be able to update from save") + _, nErr = ss.Channel().Save(&o1, -1) + require.NotNil(t, nErr, "shouldn't be able to update from save") o1.Id = "" - _, err = ss.Channel().Save(&o1, -1) - require.NotNil(t, err, "should be unique name") + _, nErr = ss.Channel().Save(&o1, -1) + require.NotNil(t, nErr, "should be unique name") o1.Id = "" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_DIRECT - _, err = ss.Channel().Save(&o1, -1) - require.NotNil(t, err, "should not be able to save direct channel") + _, nErr = ss.Channel().Save(&o1, -1) + require.NotNil(t, nErr, "should not be able to save direct channel") o1 = model.Channel{} o1.TeamId = teamId @@ -129,23 +130,24 @@ func testChannelStoreSave(t *testing.T, ss store.Store) { o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o1, -1) - require.Nil(t, err, "should have saved channel") + _, nErr = ss.Channel().Save(&o1, -1) + require.Nil(t, nErr, "should have saved channel") o2 := o1 o2.Id = "" - _, err = ss.Channel().Save(&o2, -1) - require.NotNil(t, err, "should have failed to save a duplicate channel") - require.Equal(t, store.CHANNEL_EXISTS_ERROR, err.Id) + _, nErr = ss.Channel().Save(&o2, -1) + require.NotNil(t, nErr, "should have failed to save a duplicate channel") + var cErr *store.ErrConflict + require.True(t, errors.As(nErr, &cErr)) - err = ss.Channel().Delete(o1.Id, 100) + err := ss.Channel().Delete(o1.Id, 100) require.Nil(t, err, "should have deleted channel") o2.Id = "" - _, err = ss.Channel().Save(&o2, -1) - require.NotNil(t, err, "should have failed to save a duplicate of an archived channel") - require.Equal(t, store.CHANNEL_EXISTS_ERROR, err.Id) + _, nErr = ss.Channel().Save(&o2, -1) + require.NotNil(t, nErr, "should have failed to save a duplicate of an archived channel") + require.True(t, errors.As(nErr, &cErr)) } func testChannelStoreSaveDirectChannel(t *testing.T, ss store.Store, s SqlSupplier) { @@ -265,8 +267,8 @@ func testChannelStoreUpdate(t *testing.T, ss store.Store) { o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) o2 := model.Channel{} o2.TeamId = o1.TeamId @@ -274,12 +276,12 @@ func testChannelStoreUpdate(t *testing.T, ss store.Store) { o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) time.Sleep(100 * time.Millisecond) - _, err = ss.Channel().Update(&o1) + _, err := ss.Channel().Update(&o1) require.Nil(t, err, err) o1.DeleteAt = 100 @@ -315,8 +317,8 @@ func testGetChannelUnread(t *testing.T, ss store.Store) { // Setup Channel 1 c1 := &model.Channel{TeamId: m1.TeamId, Name: model.NewId(), DisplayName: "Downtown", Type: model.CHANNEL_OPEN, TotalMsgCount: 100} - _, err = ss.Channel().Save(c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) cm1 := &model.ChannelMember{ChannelId: c1.Id, UserId: m1.UserId, NotifyProps: notifyPropsModel, MsgCount: 90} _, err = ss.Channel().SaveMember(cm1) @@ -324,8 +326,8 @@ func testGetChannelUnread(t *testing.T, ss store.Store) { // Setup Channel 2 c2 := &model.Channel{TeamId: m2.TeamId, Name: model.NewId(), DisplayName: "Cultural", Type: model.CHANNEL_OPEN, TotalMsgCount: 100} - _, err = ss.Channel().Save(c2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(c2, -1) + require.Nil(t, nErr) cm2 := &model.ChannelMember{ChannelId: c2.Id, UserId: m2.UserId, NotifyProps: notifyPropsModel, MsgCount: 90, MentionCount: 5} _, err = ss.Channel().SaveMember(cm2) @@ -357,11 +359,11 @@ func testChannelStoreGet(t *testing.T, ss store.Store, s SqlSupplier) { o1.DisplayName = "Name" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) c1 := &model.Channel{} - c1, err = ss.Channel().Get(o1.Id, false) + c1, err := ss.Channel().Get(o1.Id, false) require.Nil(t, err, err) require.Equal(t, o1.ToJson(), c1.ToJson(), "invalid returned channel") @@ -429,13 +431,13 @@ func testChannelStoreGetChannelsByIds(t *testing.T, ss store.Store) { o1.DisplayName = "Name" o1.Name = "aa" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) u1 := &model.User{} u1.Email = MakeEmail() u1.Nickname = model.NewId() - _, err = ss.User().Save(u1) + _, err := ss.User().Save(u1) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1) require.Nil(t, err) @@ -459,8 +461,8 @@ func testChannelStoreGetChannelsByIds(t *testing.T, ss store.Store) { o3.DisplayName = "Deleted channel" o3.Name = "cc" + model.NewId() + "b" o3.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) err = ss.Channel().Delete(o3.Id, 123) require.Nil(t, err) o3.DeleteAt = 123 @@ -513,8 +515,8 @@ func testChannelStoreGetForPost(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - o1, err := ss.Channel().Save(ch, -1) - require.Nil(t, err) + o1, nErr := ss.Channel().Save(ch, -1) + require.Nil(t, nErr) p1, err := ss.Post().Save(&model.Post{ UserId: model.NewId(), @@ -534,10 +536,10 @@ func testChannelStoreRestore(t *testing.T, ss store.Store) { o1.DisplayName = "Channel1" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) - err = ss.Channel().Delete(o1.Id, model.GetMillis()) + err := ss.Channel().Delete(o1.Id, model.GetMillis()) require.Nil(t, err, err) c, _ := ss.Channel().Get(o1.Id, false) @@ -556,38 +558,38 @@ func testChannelStoreDelete(t *testing.T, ss store.Store) { o1.DisplayName = "Channel1" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) o2 := model.Channel{} o2.TeamId = o1.TeamId o2.DisplayName = "Channel2" o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) o3 := model.Channel{} o3.TeamId = o1.TeamId o3.DisplayName = "Channel3" o3.Name = "zz" + model.NewId() + "b" o3.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) o4 := model.Channel{} o4.TeamId = o1.TeamId o4.DisplayName = "Channel4" o4.Name = "zz" + model.NewId() + "b" o4.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o4, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{} m1.ChannelId = o1.Id m1.UserId = model.NewId() m1.NotifyProps = model.GetDefaultChannelNotifyProps() - _, err = ss.Channel().SaveMember(&m1) + _, err := ss.Channel().SaveMember(&m1) require.Nil(t, err) m2 := model.ChannelMember{} @@ -634,8 +636,8 @@ func testChannelStoreGetByName(t *testing.T, ss store.Store) { o1.DisplayName = "Name" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) result, err := ss.Channel().GetByName(o1.TeamId, o1.Name, true) require.Nil(t, err) @@ -667,8 +669,8 @@ func testChannelStoreGetByNames(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) o2 := model.Channel{ TeamId: o1.TeamId, @@ -676,8 +678,8 @@ func testChannelStoreGetByNames(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) for index, tc := range []struct { TeamId string @@ -693,7 +695,7 @@ func testChannelStoreGetByNames(t *testing.T, ss store.Store) { {"asd", []string{o1.Name, "foo", o2.Name, o2.Name}, nil}, } { var channels []*model.Channel - channels, err = ss.Channel().GetByNames(tc.TeamId, tc.Names, true) + channels, err := ss.Channel().GetByNames(tc.TeamId, tc.Names, true) require.Nil(t, err) var ids []string for _, channel := range channels { @@ -704,7 +706,7 @@ func testChannelStoreGetByNames(t *testing.T, ss store.Store) { assert.Equal(t, tc.ExpectedIds, ids, "tc %v", index) } - err = ss.Channel().Delete(o1.Id, model.GetMillis()) + err := ss.Channel().Delete(o1.Id, model.GetMillis()) require.Nil(t, err, "channel should have been deleted") err = ss.Channel().Delete(o2.Id, model.GetMillis()) @@ -721,11 +723,11 @@ func testChannelStoreGetDeletedByName(t *testing.T, ss store.Store) { o1.DisplayName = "Name" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(o1, -1) + require.Nil(t, nErr) now := model.GetMillis() - err = ss.Channel().Delete(o1.Id, now) + err := ss.Channel().Delete(o1.Id, now) require.Nil(t, err, "channel should have been deleted") o1.DeleteAt = now o1.UpdateAt = now @@ -747,10 +749,10 @@ func testChannelStoreGetDeleted(t *testing.T, ss store.Store) { userId := model.NewId() - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) - err = ss.Channel().Delete(o1.Id, model.GetMillis()) + err := ss.Channel().Delete(o1.Id, model.GetMillis()) require.Nil(t, err, "channel should have been deleted") list, err := ss.Channel().GetDeleted(o1.TeamId, 0, 100, userId) @@ -763,8 +765,8 @@ func testChannelStoreGetDeleted(t *testing.T, ss store.Store) { o2.DisplayName = "Channel2" o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) list, err = ss.Channel().GetDeleted(o1.TeamId, 0, 100, userId) require.Nil(t, err, err) @@ -776,8 +778,8 @@ func testChannelStoreGetDeleted(t *testing.T, ss store.Store) { o3.Name = "zz" + model.NewId() + "b" o3.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) err = ss.Channel().Delete(o3.Id, model.GetMillis()) require.Nil(t, err, "channel should have been deleted") @@ -802,8 +804,8 @@ func testChannelMemberStore(t *testing.T, ss store.Store) { c1.DisplayName = "NameName" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - c1, err := ss.Channel().Save(c1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) c1t1, _ := ss.Channel().Get(c1.Id, false) assert.EqualValues(t, 0, c1t1.ExtraUpdateAt, "ExtraUpdateAt should be 0") @@ -811,7 +813,7 @@ func testChannelMemberStore(t *testing.T, ss store.Store) { u1 := model.User{} u1.Email = MakeEmail() u1.Nickname = model.NewId() - _, err = ss.User().Save(&u1) + _, err := ss.User().Save(&u1) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1) require.Nil(t, err) @@ -924,8 +926,8 @@ func testChannelSaveMember(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, TeamId: team.Id, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() testCases := []struct { @@ -1085,8 +1087,8 @@ func testChannelSaveMember(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, TeamId: team.Id, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() testCases := []struct { @@ -1239,14 +1241,14 @@ func testChannelSaveMember(t *testing.T, ss store.Store) { team, err = ss.Team().Save(team) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ DisplayName: "DisplayName", Name: "z-z-z" + model.NewId() + "b", Type: model.CHANNEL_OPEN, TeamId: team.Id, SchemeId: &cs.Id, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() testCases := []struct { @@ -1421,8 +1423,8 @@ func testChannelSaveMultipleMembers(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, TeamId: team.Id, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() testCases := []struct { @@ -1596,8 +1598,8 @@ func testChannelSaveMultipleMembers(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, TeamId: team.Id, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() testCases := []struct { @@ -1764,14 +1766,14 @@ func testChannelSaveMultipleMembers(t *testing.T, ss store.Store) { team, err = ss.Team().Save(team) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ DisplayName: "DisplayName", Name: "z-z-z" + model.NewId() + "b", Type: model.CHANNEL_OPEN, TeamId: team.Id, SchemeId: &cs.Id, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() testCases := []struct { @@ -1947,8 +1949,8 @@ func testChannelUpdateMember(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, TeamId: team.Id, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() member := &model.ChannelMember{ @@ -2110,8 +2112,8 @@ func testChannelUpdateMember(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, TeamId: team.Id, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() member := &model.ChannelMember{ @@ -2266,14 +2268,14 @@ func testChannelUpdateMember(t *testing.T, ss store.Store) { team, err = ss.Team().Save(team) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ DisplayName: "DisplayName", Name: "z-z-z" + model.NewId() + "b", Type: model.CHANNEL_OPEN, TeamId: team.Id, SchemeId: &cs.Id, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() member := &model.ChannelMember{ @@ -2450,8 +2452,8 @@ func testChannelUpdateMultipleMembers(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, TeamId: team.Id, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() member := &model.ChannelMember{ChannelId: channel.Id, UserId: u1.Id, NotifyProps: defaultNotifyProps} @@ -2620,8 +2622,8 @@ func testChannelUpdateMultipleMembers(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, TeamId: team.Id, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() member := &model.ChannelMember{ChannelId: channel.Id, UserId: u1.Id, NotifyProps: defaultNotifyProps} @@ -2783,14 +2785,14 @@ func testChannelUpdateMultipleMembers(t *testing.T, ss store.Store) { team, err = ss.Team().Save(team) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ DisplayName: "DisplayName", Name: "z-z-z" + model.NewId() + "b", Type: model.CHANNEL_OPEN, TeamId: team.Id, SchemeId: &cs.Id, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) defer func() { ss.Channel().PermanentDelete(channel.Id) }() member := &model.ChannelMember{ChannelId: channel.Id, UserId: u1.Id, NotifyProps: defaultNotifyProps} @@ -3039,8 +3041,8 @@ func testChannelDeleteMemberStore(t *testing.T, ss store.Store) { c1.DisplayName = "NameName" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - c1, err := ss.Channel().Save(c1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) c1t1, _ := ss.Channel().Get(c1.Id, false) assert.EqualValues(t, 0, c1t1.ExtraUpdateAt, "ExtraUpdateAt should be 0") @@ -3048,7 +3050,7 @@ func testChannelDeleteMemberStore(t *testing.T, ss store.Store) { u1 := model.User{} u1.Email = MakeEmail() u1.Nickname = model.NewId() - _, err = ss.User().Save(&u1) + _, err := ss.User().Save(&u1) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1) require.Nil(t, err) @@ -3103,22 +3105,22 @@ func testChannelStoreGetChannels(t *testing.T, ss store.Store) { o2.DisplayName = "Channel2" o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) o1 := model.Channel{} o1.TeamId = model.NewId() o1.DisplayName = "Channel1" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{} m1.ChannelId = o1.Id m1.UserId = model.NewId() m1.NotifyProps = model.GetDefaultChannelNotifyProps() - _, err = ss.Channel().SaveMember(&m1) + _, err := ss.Channel().SaveMember(&m1) require.Nil(t, err) m2 := model.ChannelMember{} @@ -3196,8 +3198,8 @@ func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlSupplier) c1.DisplayName = "Channel1" + model.NewId() c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr) group := &model.Group{ Name: model.NewId(), @@ -3216,8 +3218,8 @@ func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlSupplier) c2.DisplayName = "Channel2" + model.NewId() c2.Name = "zz" + model.NewId() + "b" c2.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&c2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&c2, -1) + require.Nil(t, nErr) c2.DeleteAt = model.GetMillis() c2.UpdateAt = c2.DeleteAt err = ss.Channel().Delete(c2.Id, c2.DeleteAt) @@ -3228,8 +3230,8 @@ func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlSupplier) c3.DisplayName = "Channel3" + model.NewId() c3.Name = "zz" + model.NewId() + "b" c3.Type = model.CHANNEL_PRIVATE - _, err = ss.Channel().Save(&c3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&c3, -1) + require.Nil(t, nErr) u1 := model.User{Id: model.NewId()} u2 := model.User{Id: model.NewId()} @@ -3243,8 +3245,8 @@ func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlSupplier) c5.DisplayName = "GroupChannel" + model.NewId() c5.Name = "zz" + model.NewId() + "b" c5.Type = model.CHANNEL_GROUP - _, err = ss.Channel().Save(&c5, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&c5, -1) + require.Nil(t, nErr) list, err := ss.Channel().GetAllChannels(0, 10, store.ChannelSearchOpts{}) require.Nil(t, err) @@ -3305,10 +3307,10 @@ func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) - _, err = ss.Channel().SaveMember(&model.ChannelMember{ + _, err := ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: o1.Id, UserId: userId, NotifyProps: model.GetDefaultChannelNotifyProps(), @@ -3329,8 +3331,8 @@ func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: o2.Id, @@ -3347,8 +3349,8 @@ func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) // o4 is a private channel on the team to which the user does not belong o4 := model.Channel{ @@ -3357,8 +3359,8 @@ func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o4, -1) + require.Nil(t, nErr) // o5 is another private channel on the team to which the user does belong o5 := model.Channel{ @@ -3367,8 +3369,8 @@ func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o5, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o5, -1) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: o5.Id, @@ -3391,8 +3393,8 @@ func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o6, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o6, -1) + require.Nil(t, nErr) // o7 is another channel on the team to which the user does not belong, but is deleted, // and thus would not start showing up in "more channels" @@ -3402,8 +3404,8 @@ func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o7, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o7, -1) + require.Nil(t, nErr) err = ss.Channel().Delete(o7.Id, model.GetMillis()) require.Nil(t, err, "channel should have been deleted") @@ -3449,8 +3451,8 @@ func testChannelStoreGetPublicChannelsForTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) // o2 is a public channel on another team o2 := model.Channel{ @@ -3459,8 +3461,8 @@ func testChannelStoreGetPublicChannelsForTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) // o3 is a private channel on the team o3 := model.Channel{ @@ -3469,8 +3471,8 @@ func testChannelStoreGetPublicChannelsForTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) t.Run("only o1 initially listed in public channels", func(t *testing.T) { list, channelErr := ss.Channel().GetPublicChannelsForTeam(teamId, 0, 100) @@ -3485,8 +3487,8 @@ func testChannelStoreGetPublicChannelsForTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o4, -1) + require.Nil(t, nErr) // o5 is another public, but deleted channel on the team o5 := model.Channel{ @@ -3495,9 +3497,9 @@ func testChannelStoreGetPublicChannelsForTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o5, -1) - require.Nil(t, err) - err = ss.Channel().Delete(o5.Id, model.GetMillis()) + _, nErr = ss.Channel().Save(&o5, -1) + require.Nil(t, nErr) + err := ss.Channel().Delete(o5.Id, model.GetMillis()) require.Nil(t, err, "channel should have been deleted") t.Run("both o1 and o4 listed in public channels", func(t *testing.T) { @@ -3541,8 +3543,8 @@ func testChannelStoreGetPublicChannelsByIdsForTeam(t *testing.T, ss store.Store) Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&oc1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&oc1, -1) + require.Nil(t, nErr) // oc2 is a public channel on another team oc2 := model.Channel{ @@ -3551,8 +3553,8 @@ func testChannelStoreGetPublicChannelsByIdsForTeam(t *testing.T, ss store.Store) Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&oc2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&oc2, -1) + require.Nil(t, nErr) // pc3 is a private channel on the team pc3 := model.Channel{ @@ -3561,8 +3563,8 @@ func testChannelStoreGetPublicChannelsByIdsForTeam(t *testing.T, ss store.Store) Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&pc3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&pc3, -1) + require.Nil(t, nErr) t.Run("oc1 by itself should be found as a public channel in the team", func(t *testing.T) { list, channelErr := ss.Channel().GetPublicChannelsByIdsForTeam(teamId, []string{oc1.Id}) @@ -3583,8 +3585,8 @@ func testChannelStoreGetPublicChannelsByIdsForTeam(t *testing.T, ss store.Store) Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&oc4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&oc4, -1) + require.Nil(t, nErr) // oc4 is another public, but deleted channel on the team oc5 := model.Channel{ @@ -3593,10 +3595,10 @@ func testChannelStoreGetPublicChannelsByIdsForTeam(t *testing.T, ss store.Store) Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&oc5, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&oc5, -1) + require.Nil(t, nErr) - err = ss.Channel().Delete(oc5.Id, model.GetMillis()) + err := ss.Channel().Delete(oc5.Id, model.GetMillis()) require.Nil(t, err, "channel should have been deleted") t.Run("only oc1 and oc4, among others, should be found as a public channel in the team", func(t *testing.T) { @@ -3618,22 +3620,22 @@ func testChannelStoreGetChannelCounts(t *testing.T, ss store.Store) { o2.DisplayName = "Channel2" o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) o1 := model.Channel{} o1.TeamId = model.NewId() o1.DisplayName = "Channel1" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{} m1.ChannelId = o1.Id m1.UserId = model.NewId() m1.NotifyProps = model.GetDefaultChannelNotifyProps() - _, err = ss.Channel().SaveMember(&m1) + _, err := ss.Channel().SaveMember(&m1) require.Nil(t, err) m2 := model.ChannelMember{} @@ -3670,16 +3672,16 @@ func testChannelStoreGetMembersForUser(t *testing.T, ss store.Store) { o1.DisplayName = "Channel1" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) o2 := model.Channel{} o2.TeamId = o1.TeamId o2.DisplayName = "Channel2" o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{} m1.ChannelId = o1.Id @@ -3732,8 +3734,8 @@ func testChannelStoreGetMembersForUser(t *testing.T, ss store.Store) { Type: model.CHANNEL_GROUP, } var channel *model.Channel - channel, err = ss.Channel().Save(group, 10000) - require.Nil(t, err) + channel, nErr = ss.Channel().Save(group, 10000) + require.Nil(t, nErr) for _, userId := range userIds { cm := &model.ChannelMember{ UserId: userId, @@ -3767,16 +3769,16 @@ func testChannelStoreGetMembersForUserWithPagination(t *testing.T, ss store.Stor o1.DisplayName = "Channel1" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) o2 := model.Channel{} o2.TeamId = o1.TeamId o2.DisplayName = "Channel2" o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{} m1.ChannelId = o1.Id @@ -3953,14 +3955,14 @@ func testChannelStoreUpdateLastViewedAt(t *testing.T, ss store.Store) { o1.Type = model.CHANNEL_OPEN o1.TotalMsgCount = 25 o1.LastPostAt = 12345 - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{} m1.ChannelId = o1.Id m1.UserId = model.NewId() m1.NotifyProps = model.GetDefaultChannelNotifyProps() - _, err = ss.Channel().SaveMember(&m1) + _, err := ss.Channel().SaveMember(&m1) require.Nil(t, err) o2 := model.Channel{} @@ -3970,8 +3972,8 @@ func testChannelStoreUpdateLastViewedAt(t *testing.T, ss store.Store) { o2.Type = model.CHANNEL_OPEN o2.TotalMsgCount = 26 o2.LastPostAt = 123456 - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) m2 := model.ChannelMember{} m2.ChannelId = o2.Id @@ -4012,14 +4014,14 @@ func testChannelStoreIncrementMentionCount(t *testing.T, ss store.Store) { o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN o1.TotalMsgCount = 25 - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{} m1.ChannelId = o1.Id m1.UserId = model.NewId() m1.NotifyProps = model.GetDefaultChannelNotifyProps() - _, err = ss.Channel().SaveMember(&m1) + _, err := ss.Channel().SaveMember(&m1) require.Nil(t, err) err = ss.Channel().IncrementMentionCount(m1.ChannelId, m1.UserId) @@ -4044,15 +4046,15 @@ func testUpdateChannelMember(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) m1 := &model.ChannelMember{ ChannelId: c1.Id, UserId: userId, NotifyProps: model.GetDefaultChannelNotifyProps(), } - _, err = ss.Channel().SaveMember(m1) + _, err := ss.Channel().SaveMember(m1) require.Nil(t, err) m1.NotifyProps["test"] = "sometext" @@ -4073,8 +4075,8 @@ func testGetMember(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) c2 := &model.Channel{ TeamId: c1.TeamId, @@ -4082,15 +4084,15 @@ func testGetMember(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(c2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(c2, -1) + require.Nil(t, nErr) m1 := &model.ChannelMember{ ChannelId: c1.Id, UserId: userId, NotifyProps: model.GetDefaultChannelNotifyProps(), } - _, err = ss.Channel().SaveMember(m1) + _, err := ss.Channel().SaveMember(m1) require.Nil(t, err) m2 := &model.ChannelMember{ @@ -4136,8 +4138,8 @@ func testChannelStoreGetMemberForPost(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, } - o1, err := ss.Channel().Save(ch, -1) - require.Nil(t, err) + o1, nErr := ss.Channel().Save(ch, -1) + require.Nil(t, nErr) m1, err := ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: o1.Id, @@ -4170,8 +4172,8 @@ func testGetMemberCount(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr) c2 := model.Channel{ TeamId: teamId, @@ -4179,14 +4181,14 @@ func testGetMemberCount(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&c2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&c2, -1) + require.Nil(t, nErr) u1 := &model.User{ Email: MakeEmail(), DeleteAt: 0, } - _, err = ss.User().Save(u1) + _, err := ss.User().Save(u1) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u1.Id}, -1) require.Nil(t, err) @@ -4287,8 +4289,8 @@ func testGetMemberCountsByGroup(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr) u1 := &model.User{ Timezone: timezones.DefaultUserTimezone(), @@ -4479,8 +4481,8 @@ func testGetGuestCount(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr) c2 := model.Channel{ TeamId: teamId, @@ -4488,8 +4490,8 @@ func testGetGuestCount(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&c2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&c2, -1) + require.Nil(t, nErr) t.Run("Regular member doesn't count", func(t *testing.T) { u1 := &model.User{ @@ -4497,7 +4499,7 @@ func testGetGuestCount(t *testing.T, ss store.Store) { DeleteAt: 0, Roles: model.SYSTEM_USER_ROLE_ID, } - _, err = ss.User().Save(u1) + _, err := ss.User().Save(u1) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u1.Id}, -1) require.Nil(t, err) @@ -4522,7 +4524,7 @@ func testGetGuestCount(t *testing.T, ss store.Store) { DeleteAt: 0, Roles: model.SYSTEM_GUEST_ROLE_ID, } - _, err = ss.User().Save(&u2) + _, err := ss.User().Save(&u2) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u2.Id}, -1) require.Nil(t, err) @@ -4547,7 +4549,7 @@ func testGetGuestCount(t *testing.T, ss store.Store) { DeleteAt: 0, Roles: model.SYSTEM_GUEST_ROLE_ID, } - _, err = ss.User().Save(&u3) + _, err := ss.User().Save(&u3) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u3.Id}, -1) require.Nil(t, err) @@ -4572,7 +4574,7 @@ func testGetGuestCount(t *testing.T, ss store.Store) { DeleteAt: 10000, Roles: model.SYSTEM_GUEST_ROLE_ID, } - _, err = ss.User().Save(u4) + _, err := ss.User().Save(u4) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u4.Id}, -1) require.Nil(t, err) @@ -4602,15 +4604,15 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{ ChannelId: o1.Id, UserId: model.NewId(), NotifyProps: model.GetDefaultChannelNotifyProps(), } - _, err = ss.Channel().SaveMember(&m1) + _, err := ss.Channel().SaveMember(&m1) require.Nil(t, err) m2 := model.ChannelMember{ @@ -4627,8 +4629,8 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) m3 := model.ChannelMember{ ChannelId: o2.Id, @@ -4644,8 +4646,8 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) o4 := model.Channel{ TeamId: teamId, @@ -4653,8 +4655,8 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o4, -1) + require.Nil(t, nErr) o5 := model.Channel{ TeamId: teamId, @@ -4662,8 +4664,8 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o5, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o5, -1) + require.Nil(t, nErr) o6 := model.Channel{ TeamId: teamId, @@ -4671,8 +4673,8 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "off-topic", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o6, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o6, -1) + require.Nil(t, nErr) o7 := model.Channel{ TeamId: teamId, @@ -4680,8 +4682,8 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "off-set", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o7, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o7, -1) + require.Nil(t, nErr) o8 := model.Channel{ TeamId: teamId, @@ -4689,8 +4691,8 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "off-limit", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o8, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o8, -1) + require.Nil(t, nErr) o9 := model.Channel{ TeamId: teamId, @@ -4699,8 +4701,8 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "with-purpose", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o9, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o9, -1) + require.Nil(t, nErr) o10 := model.Channel{ TeamId: teamId, @@ -4708,8 +4710,8 @@ func testChannelStoreSearchMore(t *testing.T, ss store.Store) { Name: "channel-a-deleted", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o10, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o10, -1) + require.Nil(t, nErr) o10.DeleteAt = model.GetMillis() o10.UpdateAt = o10.DeleteAt @@ -4771,8 +4773,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) o2 := model.Channel{ TeamId: otherTeamId, @@ -4780,15 +4782,15 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{ ChannelId: o1.Id, UserId: model.NewId(), NotifyProps: model.GetDefaultChannelNotifyProps(), } - _, err = ss.Channel().SaveMember(&m1) + _, err := ss.Channel().SaveMember(&m1) require.Nil(t, err) m2 := model.ChannelMember{ @@ -4813,8 +4815,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) o4 := model.Channel{ TeamId: teamId, @@ -4822,8 +4824,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o4, -1) + require.Nil(t, nErr) o5 := model.Channel{ TeamId: teamId, @@ -4831,8 +4833,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o5, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o5, -1) + require.Nil(t, nErr) o6 := model.Channel{ TeamId: teamId, @@ -4840,8 +4842,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "off-topic", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o6, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o6, -1) + require.Nil(t, nErr) o7 := model.Channel{ TeamId: teamId, @@ -4849,8 +4851,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "off-set", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o7, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o7, -1) + require.Nil(t, nErr) o8 := model.Channel{ TeamId: teamId, @@ -4858,8 +4860,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "off-limit", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o8, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o8, -1) + require.Nil(t, nErr) o9 := model.Channel{ TeamId: teamId, @@ -4867,8 +4869,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "town-square", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o9, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o9, -1) + require.Nil(t, nErr) o10 := model.Channel{ TeamId: teamId, @@ -4876,8 +4878,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "the", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o10, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o10, -1) + require.Nil(t, nErr) o11 := model.Channel{ TeamId: teamId, @@ -4885,8 +4887,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "native-mobile-apps", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o11, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o11, -1) + require.Nil(t, nErr) o12 := model.Channel{ TeamId: teamId, @@ -4895,8 +4897,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: "with-purpose", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o12, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o12, -1) + require.Nil(t, nErr) o13 := model.Channel{ TeamId: teamId, @@ -4904,8 +4906,8 @@ func testChannelStoreSearchInTeam(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o13, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o13, -1) + require.Nil(t, nErr) o13.DeleteAt = model.GetMillis() o13.UpdateAt = o13.DeleteAt err = ss.Channel().Delete(o13.Id, o13.DeleteAt) @@ -4964,8 +4966,8 @@ func testChannelStoreSearchForUserInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) o2 := model.Channel{ TeamId: teamId, @@ -4973,8 +4975,8 @@ func testChannelStoreSearchForUserInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) o3 := model.Channel{ TeamId: teamId, @@ -4982,8 +4984,8 @@ func testChannelStoreSearchForUserInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) o4 := model.Channel{ TeamId: teamId, @@ -4991,8 +4993,8 @@ func testChannelStoreSearchForUserInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o4, -1) + require.Nil(t, nErr) o5 := model.Channel{ TeamId: otherTeamId, @@ -5000,12 +5002,12 @@ func testChannelStoreSearchForUserInTeam(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o5, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o5, -1) + require.Nil(t, nErr) // add the user to the first 3 channels and the other team channel for _, c := range []model.Channel{o1, o2, o3, o5} { - _, err = ss.Channel().SaveMember(&model.ChannelMember{ + _, err := ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: c.Id, UserId: userId, NotifyProps: model.GetDefaultChannelNotifyProps(), @@ -5034,7 +5036,7 @@ func testChannelStoreSearchForUserInTeam(t *testing.T, ss store.Store) { }) t.Run("After adding user to channel 4, search for dev, get channels 1, 2, 3 and 4", func(t *testing.T) { - _, err = ss.Channel().SaveMember(&model.ChannelMember{ + _, err := ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: o4.Id, UserId: userId, NotifyProps: model.GetDefaultChannelNotifyProps(), @@ -5047,7 +5049,7 @@ func testChannelStoreSearchForUserInTeam(t *testing.T, ss store.Store) { t.Run("Mark channel 1 as deleted, search for dev, get channels 2, 3 and 4", func(t *testing.T) { o1.DeleteAt = model.GetMillis() o1.UpdateAt = o1.DeleteAt - err = ss.Channel().Delete(o1.Id, o1.DeleteAt) + err := ss.Channel().Delete(o1.Id, o1.DeleteAt) require.Nil(t, err) searchAndCheck(t, "dev", false, []string{o2.DisplayName, o3.DisplayName, o4.DisplayName}) @@ -5083,8 +5085,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) o2 := model.Channel{ TeamId: t2.Id, @@ -5092,8 +5094,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) m1 := model.ChannelMember{ ChannelId: o1.Id, @@ -5125,8 +5127,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) o4 := model.Channel{ TeamId: t1.Id, @@ -5134,8 +5136,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o4, -1) + require.Nil(t, nErr) o5 := model.Channel{ TeamId: t1.Id, @@ -5143,8 +5145,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o5, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o5, -1) + require.Nil(t, nErr) o6 := model.Channel{ TeamId: t1.Id, @@ -5152,8 +5154,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "off-topic", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o6, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o6, -1) + require.Nil(t, nErr) o7 := model.Channel{ TeamId: t1.Id, @@ -5161,8 +5163,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "off-set", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o7, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o7, -1) + require.Nil(t, nErr) group := &model.Group{ Name: model.NewId(), @@ -5182,8 +5184,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "off-limit", Type: model.CHANNEL_PRIVATE, } - _, err = ss.Channel().Save(&o8, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o8, -1) + require.Nil(t, nErr) o9 := model.Channel{ TeamId: t1.Id, @@ -5191,8 +5193,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "town-square", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o9, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o9, -1) + require.Nil(t, nErr) o10 := model.Channel{ TeamId: t1.Id, @@ -5200,8 +5202,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "the", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o10, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o10, -1) + require.Nil(t, nErr) o11 := model.Channel{ TeamId: t1.Id, @@ -5209,8 +5211,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "native-mobile-apps", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o11, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o11, -1) + require.Nil(t, nErr) o12 := model.Channel{ TeamId: t1.Id, @@ -5219,8 +5221,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: "with-purpose", Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o12, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o12, -1) + require.Nil(t, nErr) o13 := model.Channel{ TeamId: t1.Id, @@ -5228,8 +5230,8 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o13, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o13, -1) + require.Nil(t, nErr) o13.DeleteAt = model.GetMillis() o13.UpdateAt = o13.DeleteAt @@ -5282,11 +5284,11 @@ func testChannelStoreGetMembersByIds(t *testing.T, ss store.Store) { o1.DisplayName = "ChannelA" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) m1 := &model.ChannelMember{ChannelId: o1.Id, UserId: model.NewId(), NotifyProps: model.GetDefaultChannelNotifyProps()} - _, err = ss.Channel().SaveMember(m1) + _, err := ss.Channel().SaveMember(m1) require.Nil(t, err) var members *model.ChannelMembers @@ -5345,8 +5347,8 @@ func testChannelStoreSearchGroupChannels(t *testing.T, ss store.Store) { gc1.Name = model.GetGroupNameFromUserIds(userIds) gc1.DisplayName = "GroupChannel" + model.NewId() gc1.Type = model.CHANNEL_GROUP - _, err = ss.Channel().Save(&gc1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&gc1, -1) + require.Nil(t, nErr) for _, userId := range userIds { _, err = ss.Channel().SaveMember(&model.ChannelMember{ @@ -5362,11 +5364,11 @@ func testChannelStoreSearchGroupChannels(t *testing.T, ss store.Store) { gc2.Name = model.GetGroupNameFromUserIds(userIds) gc2.DisplayName = "GroupChannel" + model.NewId() gc2.Type = model.CHANNEL_GROUP - _, err = ss.Channel().Save(&gc2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&gc2, -1) + require.Nil(t, nErr) for _, userId := range userIds { - _, err = ss.Channel().SaveMember(&model.ChannelMember{ + _, err := ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: gc2.Id, UserId: userId, NotifyProps: model.GetDefaultChannelNotifyProps(), @@ -5379,8 +5381,8 @@ func testChannelStoreSearchGroupChannels(t *testing.T, ss store.Store) { gc3.Name = model.GetGroupNameFromUserIds(userIds) gc3.DisplayName = "GroupChannel" + model.NewId() gc3.Type = model.CHANNEL_GROUP - _, err = ss.Channel().Save(&gc3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&gc3, -1) + require.Nil(t, nErr) for _, userId := range userIds { _, err := ss.Channel().SaveMember(&model.ChannelMember{ @@ -5469,29 +5471,29 @@ func testChannelStoreAnalyticsDeletedTypeCount(t *testing.T, ss store.Store) { o1.DisplayName = "ChannelA" o1.Name = "zz" + model.NewId() + "b" o1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) o2 := model.Channel{} o2.TeamId = model.NewId() o2.DisplayName = "Channel2" o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) p3 := model.Channel{} p3.TeamId = model.NewId() p3.DisplayName = "Channel3" p3.Name = "zz" + model.NewId() + "b" p3.Type = model.CHANNEL_PRIVATE - _, err = ss.Channel().Save(&p3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&p3, -1) + require.Nil(t, nErr) u1 := &model.User{} u1.Email = MakeEmail() u1.Nickname = model.NewId() - _, err = ss.User().Save(u1) + _, err := ss.User().Save(u1) require.Nil(t, err) u2 := &model.User{} @@ -5551,8 +5553,8 @@ func testChannelStoreGetPinnedPosts(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, } - o1, err := ss.Channel().Save(ch1, -1) - require.Nil(t, err) + o1, nErr := ss.Channel().Save(ch1, -1) + require.Nil(t, nErr) p1, err := ss.Post().Save(&model.Post{ UserId: model.NewId(), @@ -5573,8 +5575,8 @@ func testChannelStoreGetPinnedPosts(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, } - o2, err := ss.Channel().Save(ch2, -1) - require.Nil(t, err) + o2, nErr := ss.Channel().Save(ch2, -1) + require.Nil(t, nErr) _, err = ss.Post().Save(&model.Post{ UserId: model.NewId(), @@ -5596,10 +5598,10 @@ func testChannelStoreGetPinnedPostCount(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, } - o1, err := ss.Channel().Save(ch1, -1) - require.Nil(t, err) + o1, nErr := ss.Channel().Save(ch1, -1) + require.Nil(t, nErr) - _, err = ss.Post().Save(&model.Post{ + _, err := ss.Post().Save(&model.Post{ UserId: model.NewId(), ChannelId: o1.Id, Message: "test", @@ -5626,8 +5628,8 @@ func testChannelStoreGetPinnedPostCount(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, } - o2, err := ss.Channel().Save(ch2, -1) - require.Nil(t, err) + o2, nErr := ss.Channel().Save(ch2, -1) + require.Nil(t, nErr) _, err = ss.Post().Save(&model.Post{ UserId: model.NewId(), @@ -5655,13 +5657,14 @@ func testChannelStoreMaxChannelsPerTeam(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(channel, 0) - assert.NotNil(t, err) - assert.Equal(t, "store.sql_channel.save_channel.limit.app_error", err.Id) + _, nErr := ss.Channel().Save(channel, 0) + assert.NotNil(t, nErr) + var ltErr *store.ErrLimitExceeded + assert.True(t, errors.As(nErr, <Err)) channel.Id = "" - _, err = ss.Channel().Save(channel, 1) - assert.Nil(t, err) + _, nErr = ss.Channel().Save(channel, 1) + assert.Nil(t, nErr) } func testChannelStoreGetChannelsByScheme(t *testing.T, ss store.Store) { @@ -5918,8 +5921,8 @@ func testMaterializedPublicChannels(t *testing.T, ss store.Store, s SqlSupplier) Name: model.NewId(), Type: model.CHANNEL_OPEN, } - _, err := ss.Channel().Save(&o1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o1, -1) + require.Nil(t, nErr) // o2 is another public channel on the team o2 := model.Channel{ @@ -5928,8 +5931,8 @@ func testMaterializedPublicChannels(t *testing.T, ss store.Store, s SqlSupplier) Name: model.NewId(), Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) t.Run("o1 and o2 initially listed in public channels", func(t *testing.T) { channels, channelErr := ss.Channel().SearchInTeam(teamId, "", true) @@ -6041,8 +6044,8 @@ func testMaterializedPublicChannels(t *testing.T, ss store.Store, s SqlSupplier) Type: model.CHANNEL_OPEN, } - _, err = ss.Channel().Save(&o4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o4, -1) + require.Nil(t, nErr) _, execerr = s.GetMaster().ExecNoTimeout(` DELETE FROM @@ -6079,8 +6082,8 @@ func testChannelStoreGetAllChannelsForExportAfter(t *testing.T, ss store.Store) c1.DisplayName = "Channel1" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr) d1, err := ss.Channel().GetAllChannelsForExportAfter(10000, strings.Repeat("0", 26)) assert.Nil(t, err) @@ -6111,16 +6114,16 @@ func testChannelStoreGetChannelMembersForExport(t *testing.T, ss store.Store) { c1.DisplayName = "Channel1" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr) c2 := model.Channel{} c2.TeamId = model.NewId() c2.DisplayName = "Channel2" c2.Name = "zz" + model.NewId() + "b" c2.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&c2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&c2, -1) + require.Nil(t, nErr) u1 := model.User{} u1.Email = MakeEmail() @@ -6168,8 +6171,8 @@ func testChannelStoreRemoveAllDeactivatedMembers(t *testing.T, ss store.Store, s c1.DisplayName = "Channel1" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr) u1 := model.User{} u1.Email = MakeEmail() @@ -6252,13 +6255,13 @@ func testChannelStoreExportAllDirectChannels(t *testing.T, ss store.Store, s Sql o2.DisplayName = "GroupChannel" + model.NewId() o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_GROUP - _, err := ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) u1 := &model.User{} u1.Email = MakeEmail() u1.Nickname = model.NewId() - _, err = ss.User().Save(u1) + _, err := ss.User().Save(u1) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1) require.Nil(t, err) @@ -6307,21 +6310,21 @@ func testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t *testing.T o2.DisplayName = "Channel2" + model.NewId() o2.Name = "zz" + model.NewId() + "b" o2.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(&o2, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&o2, -1) + require.Nil(t, nErr) o3 := model.Channel{} o3.TeamId = teamId o3.DisplayName = "Channel3" + model.NewId() o3.Name = "zz" + model.NewId() + "b" o3.Type = model.CHANNEL_PRIVATE - _, err = ss.Channel().Save(&o3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(&o3, -1) + require.Nil(t, nErr) u1 := &model.User{} u1.Email = MakeEmail() u1.Nickname = model.NewId() - _, err = ss.User().Save(u1) + _, err := ss.User().Save(u1) require.Nil(t, err) _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: model.NewId(), UserId: u1.Id}, -1) require.Nil(t, err) @@ -6411,8 +6414,8 @@ func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, ss store.Store) { c1.DisplayName = "Channel1" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - _, err := ss.Channel().Save(c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) time.Sleep(10 * time.Millisecond) @@ -6420,8 +6423,8 @@ func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, ss store.Store) { c2.DisplayName = "Channel2" c2.Name = "zz" + model.NewId() + "b" c2.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(c2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(c2, -1) + require.Nil(t, nErr) time.Sleep(10 * time.Millisecond) startTime := c2.CreateAt @@ -6430,22 +6433,22 @@ func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, ss store.Store) { c3.DisplayName = "Channel3" c3.Name = "zz" + model.NewId() + "b" c3.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(c3, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(c3, -1) + require.Nil(t, nErr) c4 := &model.Channel{} c4.DisplayName = "Channel4" c4.Name = "zz" + model.NewId() + "b" c4.Type = model.CHANNEL_PRIVATE - _, err = ss.Channel().Save(c4, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(c4, -1) + require.Nil(t, nErr) c5 := &model.Channel{} c5.DisplayName = "Channel5" c5.Name = "zz" + model.NewId() + "b" c5.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(c5, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(c5, -1) + require.Nil(t, nErr) time.Sleep(10 * time.Millisecond) @@ -6453,8 +6456,8 @@ func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, ss store.Store) { c6.DisplayName = "Channel6" c6.Name = "zz" + model.NewId() + "b" c6.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(c6, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(c6, -1) + require.Nil(t, nErr) endTime := c6.CreateAt @@ -6476,22 +6479,22 @@ func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, ss store.Store) { } func testGroupSyncedChannelCount(t *testing.T, ss store.Store) { - channel1, err := ss.Channel().Save(&model.Channel{ + channel1, nErr := ss.Channel().Save(&model.Channel{ DisplayName: model.NewId(), Name: model.NewId(), Type: model.CHANNEL_PRIVATE, GroupConstrained: model.NewBool(true), }, 999) - require.Nil(t, err) + require.Nil(t, nErr) require.True(t, channel1.IsGroupConstrained()) defer ss.Channel().PermanentDelete(channel1.Id) - channel2, err := ss.Channel().Save(&model.Channel{ + channel2, nErr := ss.Channel().Save(&model.Channel{ DisplayName: model.NewId(), Name: model.NewId(), Type: model.CHANNEL_PRIVATE, }, 999) - require.Nil(t, err) + require.Nil(t, nErr) require.False(t, channel2.IsGroupConstrained()) defer ss.Channel().PermanentDelete(channel2.Id) diff --git a/store/storetest/compliance_store.go b/store/storetest/compliance_store.go index 8c0b683037..8de08ff8d6 100644 --- a/store/storetest/compliance_store.go +++ b/store/storetest/compliance_store.go @@ -127,8 +127,8 @@ func testComplianceExport(t *testing.T, ss store.Store) { c1.DisplayName = "Channel2" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - c1, err = ss.Channel().Save(c1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) o1 := &model.Post{} o1.ChannelId = c1.Id @@ -236,8 +236,8 @@ func testComplianceExportDirectMessages(t *testing.T, ss store.Store) { c1.DisplayName = "Channel2" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - c1, err = ss.Channel().Save(c1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) cDM, err := ss.Channel().CreateDirectChannel(u1, u2) require.Nil(t, err) @@ -342,8 +342,8 @@ func testMessageExportPublicChannel(t *testing.T, ss store.Store) { DisplayName: "Public Channel", Type: model.CHANNEL_OPEN, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) // user1 posts twice in the public channel post1 := &model.Post{ @@ -446,8 +446,8 @@ func testMessageExportPrivateChannel(t *testing.T, ss store.Store) { DisplayName: "Private Channel", Type: model.CHANNEL_PRIVATE, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) // user1 posts twice in the private channel post1 := &model.Post{ @@ -644,8 +644,8 @@ func testMessageExportGroupMessageChannel(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_GROUP, } - groupMessageChannel, err = ss.Channel().Save(groupMessageChannel, -1) - require.Nil(t, err) + groupMessageChannel, nErr := ss.Channel().Save(groupMessageChannel, -1) + require.Nil(t, nErr) // user1 posts in the GM post := &model.Post{ @@ -718,8 +718,8 @@ func testEditExportMessage(t *testing.T, ss store.Store) { DisplayName: "Public Channel", Type: model.CHANNEL_OPEN, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) // user1 posts in the public channel post1 := &model.Post{ @@ -811,8 +811,8 @@ func testEditAfterExportMessage(t *testing.T, ss store.Store) { DisplayName: "Public Channel", Type: model.CHANNEL_OPEN, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) // user1 posts in the public channel post1 := &model.Post{ @@ -923,8 +923,8 @@ func testDeleteExportMessage(t *testing.T, ss store.Store) { DisplayName: "Public Channel", Type: model.CHANNEL_OPEN, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) // user1 posts in the public channel post1 := &model.Post{ @@ -1008,8 +1008,8 @@ func testDeleteAfterExportMessage(t *testing.T, ss store.Store) { DisplayName: "Public Channel", Type: model.CHANNEL_OPEN, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) // user1 posts in the public channel post1 := &model.Post{ diff --git a/store/storetest/group_store.go b/store/storetest/group_store.go index 42999dbd46..9213506744 100644 --- a/store/storetest/group_store.go +++ b/store/storetest/group_store.go @@ -847,8 +847,8 @@ func testGroupGetMemberUsersNotInChannel(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, // Query does not look at type so this shouldn't matter. } - channel, err = ss.Channel().Save(channel, 9999) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, 9999) + require.Nil(t, nErr) // returns no members when channel does not exist groupMembers, err := ss.Group().GetMemberUsersNotInChannel(group.Id, "non-existant-channel-id") @@ -1606,8 +1606,8 @@ func testChannelMembersToAdd(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, // Query does not look at type so this shouldn't matter. } - channel, err = ss.Channel().Save(channel, 9999) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, 9999) + require.Nil(t, nErr) // Create GroupChannel syncable, err := ss.Group().CreateGroupSyncable(model.NewGroupChannel(group.Id, channel.Id, true)) @@ -1796,16 +1796,16 @@ func testChannelMembersToAddSingleChannel(t *testing.T, ss store.Store) { Name: "z-z-" + model.NewId() + "a", Type: model.CHANNEL_OPEN, } - channel1, err = ss.Channel().Save(channel1, 999) - require.Nil(t, err) + channel1, nErr := ss.Channel().Save(channel1, 999) + require.Nil(t, nErr) channel2 := &model.Channel{ DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Type: model.CHANNEL_OPEN, } - channel2, err = ss.Channel().Save(channel2, 999) - require.Nil(t, err) + channel2, nErr = ss.Channel().Save(channel2, 999) + require.Nil(t, nErr) _, err = ss.Group().CreateGroupSyncable(model.NewGroupChannel(group1.Id, channel1.Id, true)) require.Nil(t, err) @@ -2081,8 +2081,8 @@ func testChannelMembersToRemoveSingleChannel(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, GroupConstrained: model.NewBool(true), } - channel1, err = ss.Channel().Save(channel1, 999) - require.Nil(t, err) + channel1, nErr := ss.Channel().Save(channel1, 999) + require.Nil(t, nErr) channel2 := &model.Channel{ DisplayName: "Name", @@ -2090,8 +2090,8 @@ func testChannelMembersToRemoveSingleChannel(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, GroupConstrained: model.NewBool(true), } - channel2, err = ss.Channel().Save(channel2, 999) - require.Nil(t, err) + channel2, nErr = ss.Channel().Save(channel2, 999) + require.Nil(t, nErr) for _, user := range []*model.User{user1, user2} { _, err = ss.Channel().SaveMember(&model.ChannelMember{ @@ -2183,8 +2183,8 @@ func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData Type: model.CHANNEL_PRIVATE, GroupConstrained: model.NewBool(true), } - channelConstrained, err = ss.Channel().Save(channelConstrained, 9999) - require.Nil(t, err) + channelConstrained, nErr := ss.Channel().Save(channelConstrained, 9999) + require.Nil(t, nErr) channelUnconstrained := &model.Channel{ TeamId: model.NewId(), @@ -2192,8 +2192,8 @@ func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData Name: model.NewId(), Type: model.CHANNEL_PRIVATE, } - channelUnconstrained, err = ss.Channel().Save(channelUnconstrained, 9999) - require.Nil(t, err) + channelUnconstrained, nErr = ss.Channel().Save(channelUnconstrained, 9999) + require.Nil(t, nErr) // create teams teamConstrained := &model.Team{ @@ -2344,8 +2344,8 @@ func testGetGroupsByChannel(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, } - channel2, err = ss.Channel().Save(channel2, 9999) - require.Nil(t, err) + channel2, nErr := ss.Channel().Save(channel2, 9999) + require.Nil(t, nErr) // Create Group3 group3, err := ss.Group().Create(&model.Group{ @@ -3033,8 +3033,8 @@ func testGetGroups(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_PRIVATE, } - channel1, err = ss.Channel().Save(channel1, 9999) - require.Nil(t, err) + channel1, nErr := ss.Channel().Save(channel1, 9999) + require.Nil(t, nErr) // Create Groups 1 and 2 group1, err := ss.Group().Create(&model.Group{ @@ -3097,8 +3097,8 @@ func testGetGroups(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_PRIVATE, } - channel2, err = ss.Channel().Save(channel2, 9999) - require.Nil(t, err) + channel2, nErr = ss.Channel().Save(channel2, 9999) + require.Nil(t, nErr) // Create Group3 group3, err := ss.Group().Create(&model.Group{ @@ -3761,8 +3761,8 @@ func groupTestAdminRoleGroupsForSyncableMemberChannel(t *testing.T, ss store.Sto Name: model.NewId(), Type: model.CHANNEL_OPEN, } - channel, err = ss.Channel().Save(channel, 9999) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, 9999) + require.Nil(t, nErr) _, err = ss.Group().CreateGroupSyncable(&model.GroupSyncable{ AutoAdd: true, @@ -4058,8 +4058,8 @@ func groupTestPermittedSyncableAdminsChannel(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, } - channel, err = ss.Channel().Save(channel, 9999) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, 9999) + require.Nil(t, nErr) _, err = ss.Group().CreateGroupSyncable(&model.GroupSyncable{ AutoAdd: true, diff --git a/store/storetest/mocks/ChannelStore.go b/store/storetest/mocks/ChannelStore.go index ae596400c5..04a4eaa754 100644 --- a/store/storetest/mocks/ChannelStore.go +++ b/store/storetest/mocks/ChannelStore.go @@ -1424,7 +1424,7 @@ func (_m *ChannelStore) Restore(channelId string, time int64) *model.AppError { } // Save provides a mock function with given fields: channel, maxChannelsPerTeam -func (_m *ChannelStore) Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, *model.AppError) { +func (_m *ChannelStore) Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error) { ret := _m.Called(channel, maxChannelsPerTeam) var r0 *model.Channel @@ -1436,13 +1436,11 @@ func (_m *ChannelStore) Save(channel *model.Channel, maxChannelsPerTeam int64) ( } } - var r1 *model.AppError - if rf, ok := ret.Get(1).(func(*model.Channel, int64) *model.AppError); ok { + var r1 error + if rf, ok := ret.Get(1).(func(*model.Channel, int64) error); ok { r1 = rf(channel, maxChannelsPerTeam) } else { - if ret.Get(1) != nil { - r1 = ret.Get(1).(*model.AppError) - } + r1 = ret.Error(1) } return r0, r1 diff --git a/store/storetest/post_store.go b/store/storetest/post_store.go index 1a4d15819c..637f1a80d0 100644 --- a/store/storetest/post_store.go +++ b/store/storetest/post_store.go @@ -1445,8 +1445,8 @@ func testUserCountsWithPostsByDay(t *testing.T, ss store.Store) { c1.DisplayName = "Channel2" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - c1, err = ss.Channel().Save(c1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) o1 := &model.Post{} o1.ChannelId = c1.Id @@ -1504,8 +1504,8 @@ func testPostCountsByDay(t *testing.T, ss store.Store) { c1.DisplayName = "Channel2" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - c1, err = ss.Channel().Save(c1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) o1 := &model.Post{} o1.ChannelId = c1.Id @@ -2415,8 +2415,8 @@ func testPostStoreGetParentsForExportAfter(t *testing.T, ss store.Store) { c1.DisplayName = "Channel1" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr) u1 := model.User{} u1.Username = model.NewId() @@ -2464,8 +2464,8 @@ func testPostStoreGetRepliesForExport(t *testing.T, ss store.Store) { c1.DisplayName = "Channel1" c1.Name = "zz" + model.NewId() + "b" c1.Type = model.CHANNEL_OPEN - _, err = ss.Channel().Save(&c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr) u1 := model.User{} u1.Email = MakeEmail() diff --git a/store/storetest/role_store.go b/store/storetest/role_store.go index 83ce7d462f..71ed48adb7 100644 --- a/store/storetest/role_store.go +++ b/store/storetest/role_store.go @@ -432,8 +432,8 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, SchemeId: &channelScheme1.Id, } - channel1, err = ss.Channel().Save(channel1, -1) - require.Nil(t, err) + channel1, nErr := ss.Channel().Save(channel1, -1) + require.Nil(t, nErr) defer ss.Channel().Delete(channel1.Id, 0) channel2 := &model.Channel{ @@ -443,8 +443,8 @@ func testRoleStoreLowerScopedChannelSchemeRoles(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, SchemeId: &channelScheme2.Id, } - channel2, err = ss.Channel().Save(channel2, -1) - require.Nil(t, err) + channel2, nErr = ss.Channel().Save(channel2, -1) + require.Nil(t, nErr) defer ss.Channel().Delete(channel2.Id, 0) t.Run("ChannelRolesUnderTeamRole", func(t *testing.T) { @@ -555,8 +555,8 @@ func testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t *t Type: model.CHANNEL_OPEN, SchemeId: &channelScheme.Id, } - channel, err = ss.Channel().Save(channel, -1) - require.Nil(t, err) + channel, nErr := ss.Channel().Save(channel, -1) + require.Nil(t, nErr) defer ss.Channel().Delete(channel.Id, 0) channelSchemeUserRole, err := ss.Role().GetByName(channelScheme.DefaultChannelUserRole) diff --git a/store/storetest/scheme_store.go b/store/storetest/scheme_store.go index a3780c0d21..4273283424 100644 --- a/store/storetest/scheme_store.go +++ b/store/storetest/scheme_store.go @@ -444,8 +444,8 @@ func testSchemeStoreDelete(t *testing.T, ss store.Store) { Type: model.CHANNEL_OPEN, SchemeId: &d5.Id, } - c5, err = ss.Channel().Save(c5, -1) - assert.Nil(t, err) + c5, nErr := ss.Channel().Save(c5, -1) + assert.Nil(t, nErr) _, err = ss.Scheme().Delete(d5.Id) assert.Nil(t, err) diff --git a/store/storetest/team_store.go b/store/storetest/team_store.go index c11d24308a..537e531422 100644 --- a/store/storetest/team_store.go +++ b/store/storetest/team_store.go @@ -2808,12 +2808,12 @@ func testGetChannelUnreadsForAllTeams(t *testing.T, ss store.Store) { require.Nil(t, err) c1 := &model.Channel{TeamId: m1.TeamId, Name: model.NewId(), DisplayName: "Town Square", Type: model.CHANNEL_OPEN, TotalMsgCount: 100} - _, err = ss.Channel().Save(c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) c2 := &model.Channel{TeamId: m2.TeamId, Name: model.NewId(), DisplayName: "Town Square", Type: model.CHANNEL_OPEN, TotalMsgCount: 100} - _, err = ss.Channel().Save(c2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(c2, -1) + require.Nil(t, nErr) cm1 := &model.ChannelMember{ChannelId: c1.Id, UserId: m1.UserId, NotifyProps: model.GetDefaultChannelNotifyProps(), MsgCount: 90} _, err = ss.Channel().SaveMember(cm1) @@ -2862,12 +2862,12 @@ func testGetChannelUnreadsForTeam(t *testing.T, ss store.Store) { require.Nil(t, err) c1 := &model.Channel{TeamId: m1.TeamId, Name: model.NewId(), DisplayName: "Town Square", Type: model.CHANNEL_OPEN, TotalMsgCount: 100} - _, err = ss.Channel().Save(c1, -1) - require.Nil(t, err) + _, nErr := ss.Channel().Save(c1, -1) + require.Nil(t, nErr) c2 := &model.Channel{TeamId: m1.TeamId, Name: model.NewId(), DisplayName: "Town Square", Type: model.CHANNEL_OPEN, TotalMsgCount: 100} - _, err = ss.Channel().Save(c2, -1) - require.Nil(t, err) + _, nErr = ss.Channel().Save(c2, -1) + require.Nil(t, nErr) cm1 := &model.ChannelMember{ChannelId: c1.Id, UserId: m1.UserId, NotifyProps: model.GetDefaultChannelNotifyProps(), MsgCount: 90} _, err = ss.Channel().SaveMember(cm1) diff --git a/store/storetest/user_store.go b/store/storetest/user_store.go index 6fc8b35452..c857fa5834 100644 --- a/store/storetest/user_store.go +++ b/store/storetest/user_store.go @@ -700,8 +700,8 @@ func testUserStoreGetProfilesInChannel(t *testing.T, ss store.Store) { Name: "profiles-" + model.NewId(), Type: model.CHANNEL_OPEN, } - c1, err := ss.Channel().Save(ch1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(ch1, -1) + require.Nil(t, nErr) ch2 := &model.Channel{ TeamId: teamId, @@ -709,8 +709,8 @@ func testUserStoreGetProfilesInChannel(t *testing.T, ss store.Store) { Name: "profiles-" + model.NewId(), Type: model.CHANNEL_PRIVATE, } - c2, err := ss.Channel().Save(ch2, -1) - require.Nil(t, err) + c2, nErr := ss.Channel().Save(ch2, -1) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: c1.Id, @@ -805,8 +805,8 @@ func testUserStoreGetProfilesInChannelByStatus(t *testing.T, ss store.Store, s S Name: "profiles-" + model.NewId(), Type: model.CHANNEL_OPEN, } - c1, err := ss.Channel().Save(ch1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(ch1, -1) + require.Nil(t, nErr) ch2 := &model.Channel{ TeamId: teamId, @@ -814,8 +814,8 @@ func testUserStoreGetProfilesInChannelByStatus(t *testing.T, ss store.Store, s S Name: "profiles-" + model.NewId(), Type: model.CHANNEL_PRIVATE, } - c2, err := ss.Channel().Save(ch2, -1) - require.Nil(t, err) + c2, nErr := ss.Channel().Save(ch2, -1) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: c1.Id, @@ -981,8 +981,8 @@ func testUserStoreGetAllProfilesInChannel(t *testing.T, ss store.Store) { Name: "profiles-" + model.NewId(), Type: model.CHANNEL_OPEN, } - c1, err := ss.Channel().Save(ch1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(ch1, -1) + require.Nil(t, nErr) ch2 := &model.Channel{ TeamId: teamId, @@ -990,8 +990,8 @@ func testUserStoreGetAllProfilesInChannel(t *testing.T, ss store.Store) { Name: "profiles-" + model.NewId(), Type: model.CHANNEL_PRIVATE, } - c2, err := ss.Channel().Save(ch2, -1) - require.Nil(t, err) + c2, nErr := ss.Channel().Save(ch2, -1) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: c1.Id, @@ -1109,8 +1109,8 @@ func testUserStoreGetProfilesNotInChannel(t *testing.T, ss store.Store) { Name: "profiles-" + model.NewId(), Type: model.CHANNEL_OPEN, } - c1, err := ss.Channel().Save(ch1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(ch1, -1) + require.Nil(t, nErr) ch2 := &model.Channel{ TeamId: teamId, @@ -1118,8 +1118,8 @@ func testUserStoreGetProfilesNotInChannel(t *testing.T, ss store.Store) { Name: "profiles-" + model.NewId(), Type: model.CHANNEL_PRIVATE, } - c2, err := ss.Channel().Save(ch2, -1) - require.Nil(t, err) + c2, nErr := ss.Channel().Save(ch2, -1) + require.Nil(t, nErr) t.Run("get team 1, channel 1, offset 0, limit 100", func(t *testing.T) { var profiles []*model.User @@ -1343,12 +1343,12 @@ func testUserStoreGetProfileByGroupChannelIdsForUser(t *testing.T, ss store.Stor require.Nil(t, err) defer func() { require.Nil(t, ss.User().PermanentDelete(u4.Id)) }() - gc1, err := ss.Channel().Save(&model.Channel{ + gc1, nErr := ss.Channel().Save(&model.Channel{ DisplayName: "Profiles in private", Name: "profiles-" + model.NewId(), Type: model.CHANNEL_GROUP, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) for _, uId := range []string{u1.Id, u2.Id, u3.Id} { _, err = ss.Channel().SaveMember(&model.ChannelMember{ @@ -1359,12 +1359,12 @@ func testUserStoreGetProfileByGroupChannelIdsForUser(t *testing.T, ss store.Stor require.Nil(t, err) } - gc2, err := ss.Channel().Save(&model.Channel{ + gc2, nErr := ss.Channel().Save(&model.Channel{ DisplayName: "Profiles in private", Name: "profiles-" + model.NewId(), Type: model.CHANNEL_GROUP, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) for _, uId := range []string{u1.Id, u3.Id, u4.Id} { _, err = ss.Channel().SaveMember(&model.ChannelMember{ @@ -1952,8 +1952,8 @@ func testUserUnreadCount(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: u2.Id}, -1) require.Nil(t, err) - _, err = ss.Channel().Save(&c1, -1) - require.Nil(t, err, "couldn't save item") + _, nErr := ss.Channel().Save(&c1, -1) + require.Nil(t, nErr, "couldn't save item") m1 := model.ChannelMember{} m1.ChannelId = c1.Id @@ -2289,8 +2289,8 @@ func testUserStoreSearchNotInChannel(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - c1, err := ss.Channel().Save(&ch1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(&ch1, -1) + require.Nil(t, nErr) ch2 := model.Channel{ TeamId: tid, @@ -2298,8 +2298,8 @@ func testUserStoreSearchNotInChannel(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - c2, err := ss.Channel().Save(&ch2, -1) - require.Nil(t, err) + c2, nErr := ss.Channel().Save(&ch2, -1) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: c2.Id, @@ -2515,8 +2515,8 @@ func testUserStoreSearchInChannel(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - c1, err := ss.Channel().Save(&ch1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(&ch1, -1) + require.Nil(t, nErr) ch2 := model.Channel{ TeamId: tid, @@ -2524,8 +2524,8 @@ func testUserStoreSearchInChannel(t *testing.T, ss store.Store) { Name: "zz" + model.NewId() + "b", Type: model.CHANNEL_OPEN, } - c2, err := ss.Channel().Save(&ch2, -1) - require.Nil(t, err) + c2, nErr := ss.Channel().Save(&ch2, -1) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: c1.Id, @@ -3524,23 +3524,23 @@ func testUserStoreGetUsersBatchForIndexing(t *testing.T, ss store.Store) { Name: model.NewId(), Type: model.CHANNEL_OPEN, } - cPub1, err := ss.Channel().Save(ch1, -1) - require.Nil(t, err) + cPub1, nErr := ss.Channel().Save(ch1, -1) + require.Nil(t, nErr) ch2 := &model.Channel{ Name: model.NewId(), Type: model.CHANNEL_OPEN, } - cPub2, err := ss.Channel().Save(ch2, -1) - require.Nil(t, err) + cPub2, nErr := ss.Channel().Save(ch2, -1) + require.Nil(t, nErr) ch3 := &model.Channel{ Name: model.NewId(), Type: model.CHANNEL_PRIVATE, } - cPriv, err := ss.Channel().Save(ch3, -1) - require.Nil(t, err) + cPriv, nErr := ss.Channel().Save(ch3, -1) + require.Nil(t, nErr) u1, err := ss.User().Save(&model.User{ Email: MakeEmail(), @@ -3770,12 +3770,12 @@ func testUserStoreGetTeamGroupUsers(t *testing.T, ss store.Store) { func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) { // create channel id := model.NewId() - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ DisplayName: "dn_" + id, Name: "n-" + id, Type: model.CHANNEL_PRIVATE, }, 999) - require.Nil(t, err) + require.Nil(t, nErr) require.NotNil(t, channel) // create users @@ -3798,7 +3798,7 @@ func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) { userGroupA, userGroupB, userNoGroup := testUsers[0], testUsers[1], testUsers[2] // add non-group-member to the channel (to prove that the query isn't just returning all members) - _, err = ss.Channel().SaveMember(&model.ChannelMember{ + _, err := ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: channel.Id, UserId: userNoGroup.Id, NotifyProps: model.GetDefaultChannelNotifyProps(), @@ -3908,13 +3908,13 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: user.Id, SchemeGuest: true, SchemeUser: false}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user.Id, SchemeGuest: true, SchemeUser: false, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -3954,13 +3954,13 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: user.Id, SchemeGuest: true, SchemeUser: false}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user.Id, SchemeGuest: true, SchemeUser: false, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -4050,13 +4050,13 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: user.Id, SchemeGuest: true, SchemeUser: false}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user.Id, SchemeGuest: true, SchemeUser: false, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -4095,13 +4095,13 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: user.Id, SchemeGuest: true, SchemeUser: false}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user.Id, SchemeGuest: true, SchemeUser: false, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -4140,13 +4140,13 @@ func testUserStorePromoteGuestToUser(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId1, UserId: user1.Id, SchemeGuest: true, SchemeUser: false}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId1, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user1.Id, SchemeGuest: true, SchemeUser: false, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -4223,13 +4223,13 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: user.Id, SchemeGuest: false, SchemeUser: true}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user.Id, SchemeGuest: false, SchemeUser: true, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -4269,13 +4269,13 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: user.Id, SchemeGuest: true, SchemeUser: false}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user.Id, SchemeGuest: true, SchemeUser: false, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -4365,13 +4365,13 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: user.Id, SchemeGuest: false, SchemeUser: true}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user.Id, SchemeGuest: false, SchemeUser: true, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -4410,13 +4410,13 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId, UserId: user.Id, SchemeGuest: false, SchemeUser: true}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user.Id, SchemeGuest: false, SchemeUser: true, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -4455,13 +4455,13 @@ func testUserStoreDemoteUserToGuest(t *testing.T, ss store.Store) { _, err = ss.Team().SaveMember(&model.TeamMember{TeamId: teamId1, UserId: user1.Id, SchemeGuest: false, SchemeUser: true}, 999) require.Nil(t, err) - channel, err := ss.Channel().Save(&model.Channel{ + channel, nErr := ss.Channel().Save(&model.Channel{ TeamId: teamId1, DisplayName: "Channel name", Name: "channel-" + model.NewId(), Type: model.CHANNEL_OPEN, }, -1) - require.Nil(t, err) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ChannelId: channel.Id, UserId: user1.Id, SchemeGuest: false, SchemeUser: true, NotifyProps: model.GetDefaultChannelNotifyProps()}) require.Nil(t, err) @@ -4680,8 +4680,8 @@ func testGetKnownUsers(t *testing.T, ss store.Store) { Name: "profiles-" + model.NewId(), Type: model.CHANNEL_OPEN, } - c1, err := ss.Channel().Save(ch1, -1) - require.Nil(t, err) + c1, nErr := ss.Channel().Save(ch1, -1) + require.Nil(t, nErr) ch2 := &model.Channel{ TeamId: teamId, @@ -4689,8 +4689,8 @@ func testGetKnownUsers(t *testing.T, ss store.Store) { Name: "profiles-" + model.NewId(), Type: model.CHANNEL_PRIVATE, } - c2, err := ss.Channel().Save(ch2, -1) - require.Nil(t, err) + c2, nErr := ss.Channel().Save(ch2, -1) + require.Nil(t, nErr) ch3 := &model.Channel{ TeamId: teamId, @@ -4698,8 +4698,8 @@ func testGetKnownUsers(t *testing.T, ss store.Store) { Name: "profiles-" + model.NewId(), Type: model.CHANNEL_PRIVATE, } - c3, err := ss.Channel().Save(ch3, -1) - require.Nil(t, err) + c3, nErr := ss.Channel().Save(ch3, -1) + require.Nil(t, nErr) _, err = ss.Channel().SaveMember(&model.ChannelMember{ ChannelId: c1.Id, diff --git a/store/timer_layer.go b/store/timer_layer.go index ddb9191190..57790b201d 100644 --- a/store/timer_layer.go +++ b/store/timer_layer.go @@ -1553,7 +1553,7 @@ func (s *TimerLayerChannelStore) Restore(channelId string, time int64) *model.Ap return resultVar0 } -func (s *TimerLayerChannelStore) Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, *model.AppError) { +func (s *TimerLayerChannelStore) Save(channel *model.Channel, maxChannelsPerTeam int64) (*model.Channel, error) { start := timemodule.Now() resultVar0, resultVar1 := s.ChannelStore.Save(channel, maxChannelsPerTeam)