diff --git a/app/group.go b/app/group.go index 33f58a0925..d87b861b40 100644 --- a/app/group.go +++ b/app/group.go @@ -10,51 +10,27 @@ import ( ) func (a *App) GetGroup(id string) (*model.Group, *model.AppError) { - result := <-a.Srv.Store.Group().Get(id) - if result.Err != nil { - return nil, result.Err - } - return result.Data.(*model.Group), nil + return a.Srv.Store.Group().Get(id) } func (a *App) GetGroupByRemoteID(remoteID string, groupSource model.GroupSource) (*model.Group, *model.AppError) { - result := <-a.Srv.Store.Group().GetByRemoteID(remoteID, groupSource) - if result.Err != nil { - return nil, result.Err - } - return result.Data.(*model.Group), nil + return a.Srv.Store.Group().GetByRemoteID(remoteID, groupSource) } func (a *App) GetGroupsBySource(groupSource model.GroupSource) ([]*model.Group, *model.AppError) { - result := <-a.Srv.Store.Group().GetAllBySource(groupSource) - if result.Err != nil { - return nil, result.Err - } - return result.Data.([]*model.Group), nil + return a.Srv.Store.Group().GetAllBySource(groupSource) } func (a *App) CreateGroup(group *model.Group) (*model.Group, *model.AppError) { - result := <-a.Srv.Store.Group().Create(group) - if result.Err != nil { - return nil, result.Err - } - return result.Data.(*model.Group), nil + return a.Srv.Store.Group().Create(group) } func (a *App) UpdateGroup(group *model.Group) (*model.Group, *model.AppError) { - result := <-a.Srv.Store.Group().Update(group) - if result.Err != nil { - return nil, result.Err - } - return result.Data.(*model.Group), nil + return a.Srv.Store.Group().Update(group) } func (a *App) DeleteGroup(groupID string) (*model.Group, *model.AppError) { - result := <-a.Srv.Store.Group().Delete(groupID) - if result.Err != nil { - return nil, result.Err - } - return result.Data.(*model.Group), nil + return a.Srv.Store.Group().Delete(groupID) } func (a *App) GetGroupMemberUsers(groupID string) ([]*model.User, *model.AppError) { diff --git a/store/sqlstore/group_store.go b/store/sqlstore/group_store.go index cb9c78d0b9..d4c3606960 100644 --- a/store/sqlstore/group_store.go +++ b/store/sqlstore/group_store.go @@ -84,53 +84,39 @@ func (s *SqlGroupStore) CreateIndexesIfNotExists() { s.CreateIndexIfNotExists("idx_usergroups_delete_at", "UserGroups", "DeleteAt") } -func (s *SqlGroupStore) Create(group *model.Group) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { +func (s *SqlGroupStore) Create(group *model.Group) (*model.Group, *model.AppError) { + if len(group.Id) != 0 { + return nil, model.NewAppError("SqlGroupStore.GroupCreate", "model.group.id.app_error", nil, "", http.StatusBadRequest) + } - if len(group.Id) != 0 { - result.Err = model.NewAppError("SqlGroupStore.GroupCreate", "model.group.id.app_error", nil, "", http.StatusBadRequest) - return + if err := group.IsValidForCreate(); err != nil { + return nil, err + } + + group.Id = model.NewId() + group.CreateAt = model.GetMillis() + group.UpdateAt = group.CreateAt + + if err := s.GetMaster().Insert(group); err != nil { + if IsUniqueConstraintError(err, []string{"Name", "groups_name_key"}) { + return nil, model.NewAppError("SqlGroupStore.GroupCreate", "store.sql_group.unique_constraint", nil, err.Error(), http.StatusInternalServerError) } + return nil, model.NewAppError("SqlGroupStore.GroupCreate", "store.insert_error", nil, err.Error(), http.StatusInternalServerError) + } - if err := group.IsValidForCreate(); err != nil { - result.Err = err - return - } - - group.Id = model.NewId() - group.CreateAt = model.GetMillis() - group.UpdateAt = group.CreateAt - - if err := s.GetMaster().Insert(group); err != nil { - if IsUniqueConstraintError(err, []string{"Name", "groups_name_key"}) { - result.Err = model.NewAppError("SqlGroupStore.GroupCreate", "store.sql_group.unique_constraint", nil, err.Error(), http.StatusInternalServerError) - } else { - result.Err = model.NewAppError("SqlGroupStore.GroupCreate", "store.insert_error", nil, err.Error(), http.StatusInternalServerError) - } - return - } - - result.Data = group - return - }) + return group, nil } -func (s *SqlGroupStore) Get(groupId string) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - - var group *model.Group - if err := s.GetReplica().SelectOne(&group, "SELECT * from UserGroups WHERE Id = :Id", map[string]interface{}{"Id": groupId}); err != nil { - if err == sql.ErrNoRows { - result.Err = model.NewAppError("SqlGroupStore.GroupGet", "store.sql_group.no_rows", nil, err.Error(), http.StatusNotFound) - } else { - result.Err = model.NewAppError("SqlGroupStore.GroupGet", "store.select_error", nil, err.Error(), http.StatusInternalServerError) - } - return +func (s *SqlGroupStore) Get(groupId string) (*model.Group, *model.AppError) { + var group *model.Group + if err := s.GetReplica().SelectOne(&group, "SELECT * from UserGroups WHERE Id = :Id", map[string]interface{}{"Id": groupId}); err != nil { + if err == sql.ErrNoRows { + return nil, model.NewAppError("SqlGroupStore.GroupGet", "store.sql_group.no_rows", nil, err.Error(), http.StatusNotFound) } + return nil, model.NewAppError("SqlGroupStore.GroupGet", "store.select_error", nil, err.Error(), http.StatusInternalServerError) + } - result.Data = group - return - }) + return group, nil } func (s *SqlGroupStore) GetByIDs(groupIDs []string) ([]*model.Group, *model.AppError) { @@ -146,108 +132,79 @@ func (s *SqlGroupStore) GetByIDs(groupIDs []string) ([]*model.Group, *model.AppE return groups, nil } -func (s *SqlGroupStore) GetByRemoteID(remoteID string, groupSource model.GroupSource) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - - var group *model.Group - if err := s.GetReplica().SelectOne(&group, "SELECT * from UserGroups WHERE RemoteId = :RemoteId AND Source = :Source", map[string]interface{}{"RemoteId": remoteID, "Source": groupSource}); err != nil { - if err == sql.ErrNoRows { - result.Err = model.NewAppError("SqlGroupStore.GroupGetByRemoteID", "store.sql_group.no_rows", nil, err.Error(), http.StatusNotFound) - } else { - result.Err = model.NewAppError("SqlGroupStore.GroupGetByRemoteID", "store.select_error", nil, err.Error(), http.StatusInternalServerError) - } - return +func (s *SqlGroupStore) GetByRemoteID(remoteID string, groupSource model.GroupSource) (*model.Group, *model.AppError) { + var group *model.Group + if err := s.GetReplica().SelectOne(&group, "SELECT * from UserGroups WHERE RemoteId = :RemoteId AND Source = :Source", map[string]interface{}{"RemoteId": remoteID, "Source": groupSource}); err != nil { + if err == sql.ErrNoRows { + return nil, model.NewAppError("SqlGroupStore.GroupGetByRemoteID", "store.sql_group.no_rows", nil, err.Error(), http.StatusNotFound) } + return nil, model.NewAppError("SqlGroupStore.GroupGetByRemoteID", "store.select_error", nil, err.Error(), http.StatusInternalServerError) + } - result.Data = group - return - }) + return group, nil } -func (s *SqlGroupStore) GetAllBySource(groupSource model.GroupSource) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { +func (s *SqlGroupStore) GetAllBySource(groupSource model.GroupSource) ([]*model.Group, *model.AppError) { + var groups []*model.Group - var groups []*model.Group + if _, err := s.GetReplica().Select(&groups, "SELECT * from UserGroups WHERE DeleteAt = 0 AND Source = :Source", map[string]interface{}{"Source": groupSource}); err != nil { + return nil, model.NewAppError("SqlGroupStore.GroupGetAllBySource", "store.select_error", nil, err.Error(), http.StatusInternalServerError) + } - if _, err := s.GetReplica().Select(&groups, "SELECT * from UserGroups WHERE DeleteAt = 0 AND Source = :Source", map[string]interface{}{"Source": groupSource}); err != nil { - result.Err = model.NewAppError("SqlGroupStore.GroupGetAllBySource", "store.select_error", nil, err.Error(), http.StatusInternalServerError) - return - } - - result.Data = groups - - return - }) + return groups, nil } -func (s *SqlGroupStore) Update(group *model.Group) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - - var retrievedGroup *model.Group - if err := s.GetMaster().SelectOne(&retrievedGroup, "SELECT * FROM UserGroups WHERE Id = :Id", map[string]interface{}{"Id": group.Id}); err != nil { - if err == sql.ErrNoRows { - result.Err = model.NewAppError("SqlGroupStore.GroupUpdate", "store.sql_group.no_rows", nil, "id="+group.Id+","+err.Error(), http.StatusNotFound) - } else { - result.Err = model.NewAppError("SqlGroupStore.GroupUpdate", "store.select_error", nil, "id="+group.Id+","+err.Error(), http.StatusInternalServerError) - } - return +func (s *SqlGroupStore) Update(group *model.Group) (*model.Group, *model.AppError) { + var retrievedGroup *model.Group + if err := s.GetMaster().SelectOne(&retrievedGroup, "SELECT * FROM UserGroups WHERE Id = :Id", map[string]interface{}{"Id": group.Id}); err != nil { + if err == sql.ErrNoRows { + return nil, model.NewAppError("SqlGroupStore.GroupUpdate", "store.sql_group.no_rows", nil, "id="+group.Id+","+err.Error(), http.StatusNotFound) } + return nil, model.NewAppError("SqlGroupStore.GroupUpdate", "store.select_error", nil, "id="+group.Id+","+err.Error(), http.StatusInternalServerError) + } - // If updating DeleteAt it can only be to 0 - if group.DeleteAt != retrievedGroup.DeleteAt && group.DeleteAt != 0 { - result.Err = model.NewAppError("SqlGroupStore.GroupUpdate", "model.group.delete_at.app_error", nil, "", http.StatusInternalServerError) - return - } + // If updating DeleteAt it can only be to 0 + if group.DeleteAt != retrievedGroup.DeleteAt && group.DeleteAt != 0 { + return nil, model.NewAppError("SqlGroupStore.GroupUpdate", "model.group.delete_at.app_error", nil, "", http.StatusInternalServerError) + } - // Reset these properties, don't update them based on input - group.CreateAt = retrievedGroup.CreateAt - group.UpdateAt = model.GetMillis() + // Reset these properties, don't update them based on input + group.CreateAt = retrievedGroup.CreateAt + group.UpdateAt = model.GetMillis() - if err := group.IsValidForUpdate(); err != nil { - result.Err = err - return - } + if err := group.IsValidForUpdate(); err != nil { + return nil, err + } - rowsChanged, err := s.GetMaster().Update(group) - if err != nil { - result.Err = model.NewAppError("SqlGroupStore.GroupUpdate", "store.update_error", nil, err.Error(), http.StatusInternalServerError) - return - } - if rowsChanged != 1 { - result.Err = model.NewAppError("SqlGroupStore.GroupUpdate", "store.sql_group.no_rows_changed", nil, "", http.StatusInternalServerError) - return - } + rowsChanged, err := s.GetMaster().Update(group) + if err != nil { + return nil, model.NewAppError("SqlGroupStore.GroupUpdate", "store.update_error", nil, err.Error(), http.StatusInternalServerError) + } + if rowsChanged != 1 { + return nil, model.NewAppError("SqlGroupStore.GroupUpdate", "store.sql_group.no_rows_changed", nil, "", http.StatusInternalServerError) + } - result.Data = group - return - }) + return group, nil } -func (s *SqlGroupStore) Delete(groupID string) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - - var group *model.Group - if err := s.GetReplica().SelectOne(&group, "SELECT * from UserGroups WHERE Id = :Id AND DeleteAt = 0", map[string]interface{}{"Id": groupID}); err != nil { - if err == sql.ErrNoRows { - result.Err = model.NewAppError("SqlGroupStore.GroupDelete", "store.sql_group.no_rows", nil, "Id="+groupID+", "+err.Error(), http.StatusNotFound) - } else { - result.Err = model.NewAppError("SqlGroupStore.GroupDelete", "store.select_error", nil, err.Error(), http.StatusInternalServerError) - } - - return +func (s *SqlGroupStore) Delete(groupID string) (*model.Group, *model.AppError) { + var group *model.Group + if err := s.GetReplica().SelectOne(&group, "SELECT * from UserGroups WHERE Id = :Id AND DeleteAt = 0", map[string]interface{}{"Id": groupID}); err != nil { + if err == sql.ErrNoRows { + return nil, model.NewAppError("SqlGroupStore.GroupDelete", "store.sql_group.no_rows", nil, "Id="+groupID+", "+err.Error(), http.StatusNotFound) } + return nil, model.NewAppError("SqlGroupStore.GroupDelete", "store.select_error", nil, err.Error(), http.StatusInternalServerError) + } - time := model.GetMillis() - group.DeleteAt = time - group.UpdateAt = time + time := model.GetMillis() + group.DeleteAt = time + group.UpdateAt = time - if _, err := s.GetMaster().Update(group); err != nil { - result.Err = model.NewAppError("SqlGroupStore.GroupDelete", "store.update_error", nil, err.Error(), http.StatusInternalServerError) - } + if _, err := s.GetMaster().Update(group); err != nil { + return nil, model.NewAppError("SqlGroupStore.GroupDelete", "store.update_error", nil, err.Error(), http.StatusInternalServerError) + } - result.Data = group - return - }) + return group, nil } func (s *SqlGroupStore) GetMemberUsers(groupID string) store.StoreChannel { diff --git a/store/store.go b/store/store.go index c3fc01dc12..f7bce55f50 100644 --- a/store/store.go +++ b/store/store.go @@ -573,13 +573,13 @@ type UserTermsOfServiceStore interface { } type GroupStore interface { - Create(group *model.Group) StoreChannel - Get(groupID string) StoreChannel + Create(group *model.Group) (*model.Group, *model.AppError) + Get(groupID string) (*model.Group, *model.AppError) GetByIDs(groupIDs []string) ([]*model.Group, *model.AppError) - GetByRemoteID(remoteID string, groupSource model.GroupSource) StoreChannel - GetAllBySource(groupSource model.GroupSource) StoreChannel - Update(group *model.Group) StoreChannel - Delete(groupID string) StoreChannel + GetByRemoteID(remoteID string, groupSource model.GroupSource) (*model.Group, *model.AppError) + GetAllBySource(groupSource model.GroupSource) ([]*model.Group, *model.AppError) + Update(group *model.Group) (*model.Group, *model.AppError) + Delete(groupID string) (*model.Group, *model.AppError) GetMemberUsers(groupID string) StoreChannel GetMemberUsersPage(groupID string, offset int, limit int) StoreChannel diff --git a/store/storetest/channel_store.go b/store/storetest/channel_store.go index 9d9eff2839..062216dbe5 100644 --- a/store/storetest/channel_store.go +++ b/store/storetest/channel_store.go @@ -1113,7 +1113,9 @@ func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlSupplier) Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - store.Must(ss.Group().Create(group)) + _, err = ss.Group().Create(group) + require.Nil(t, err) + _, err = ss.Group().CreateGroupSyncable(model.NewGroupChannel(group.Id, c1.Id, true)) require.Nil(t, err) @@ -2457,7 +2459,9 @@ func testChannelStoreSearchAllChannels(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - store.Must(ss.Group().Create(group)) + _, err = ss.Group().Create(group) + require.Nil(t, err) + _, err = ss.Group().CreateGroupSyncable(model.NewGroupChannel(group.Id, o7.Id, true)) require.Nil(t, err) diff --git a/store/storetest/group_store.go b/store/storetest/group_store.go index 0526cc99fe..cea3910aea 100644 --- a/store/storetest/group_store.go +++ b/store/storetest/group_store.go @@ -61,9 +61,8 @@ func testGroupStoreCreate(t *testing.T, ss store.Store) { } // Happy path - res1 := <-ss.Group().Create(g1) - require.Nil(t, res1.Err) - d1 := res1.Data.(*model.Group) + d1, err := ss.Group().Create(g1) + require.Nil(t, err) require.Len(t, d1.Id, 26) require.Equal(t, g1.Name, d1.Name) require.Equal(t, g1.DisplayName, d1.DisplayName) @@ -80,17 +79,17 @@ func testGroupStoreCreate(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res2 := <-ss.Group().Create(g2) - require.Nil(t, res2.Data) - require.NotNil(t, res2.Err) - require.Equal(t, res2.Err.Id, "model.group.name.app_error") + data, err := ss.Group().Create(g2) + require.Nil(t, data) + require.NotNil(t, err) + require.Equal(t, err.Id, "model.group.name.app_error") g2.Name = model.NewId() g2.DisplayName = "" - res3 := <-ss.Group().Create(g2) - require.Nil(t, res3.Data) - require.NotNil(t, res3.Err) - require.Equal(t, res3.Err.Id, "model.group.display_name.app_error") + data, err = ss.Group().Create(g2) + require.Nil(t, data) + require.NotNil(t, err) + require.Equal(t, err.Id, "model.group.display_name.app_error") // Won't accept a duplicate name g4 := &model.Group{ @@ -99,17 +98,17 @@ func testGroupStoreCreate(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res5 := <-ss.Group().Create(g4) - require.Nil(t, res5.Err) + _, err = ss.Group().Create(g4) + require.Nil(t, err) g4b := &model.Group{ Name: g4.Name, DisplayName: model.NewId(), Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res5b := <-ss.Group().Create(g4b) - require.Nil(t, res5b.Data) - require.Equal(t, res5b.Err.Id, "store.sql_group.unique_constraint") + data, err = ss.Group().Create(g4b) + require.Nil(t, data) + require.Equal(t, err.Id, "store.sql_group.unique_constraint") // Fields cannot be greater than max values g5 := &model.Group{ @@ -156,15 +155,13 @@ func testGroupStoreGet(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res1 := <-ss.Group().Create(g1) - require.Nil(t, res1.Err) - d1 := res1.Data.(*model.Group) + d1, err := ss.Group().Create(g1) + require.Nil(t, err) require.Len(t, d1.Id, 26) // Get the group - res2 := <-ss.Group().Get(d1.Id) - require.Nil(t, res2.Err) - d2 := res2.Data.(*model.Group) + d2, err := ss.Group().Get(d1.Id) + require.Nil(t, err) require.Equal(t, d1.Id, d2.Id) require.Equal(t, d1.Name, d2.Name) require.Equal(t, d1.DisplayName, d2.DisplayName) @@ -175,9 +172,9 @@ func testGroupStoreGet(t *testing.T, ss store.Store) { require.Equal(t, d1.DeleteAt, d2.DeleteAt) // Get an invalid group - res3 := <-ss.Group().Get(model.NewId()) - require.NotNil(t, res3.Err) - require.Equal(t, res3.Err.Id, "store.sql_group.no_rows") + _, err = ss.Group().Get(model.NewId()) + require.NotNil(t, err) + require.Equal(t, err.Id, "store.sql_group.no_rows") } func testGroupStoreGetByIDs(t *testing.T, ss store.Store) { @@ -192,9 +189,8 @@ func testGroupStoreGetByIDs(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res := <-ss.Group().Create(group) - require.Nil(t, res.Err) - group = res.Data.(*model.Group) + group, err := ss.Group().Create(group) + require.Nil(t, err) switch i { case 0: group1 = group @@ -223,15 +219,13 @@ func testGroupStoreGetByRemoteID(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res1 := <-ss.Group().Create(g1) - require.Nil(t, res1.Err) - d1 := res1.Data.(*model.Group) + d1, err := ss.Group().Create(g1) + require.Nil(t, err) require.Len(t, d1.Id, 26) // Get the group - res2 := <-ss.Group().GetByRemoteID(d1.RemoteId, model.GroupSourceLdap) - require.Nil(t, res2.Err) - d2 := res2.Data.(*model.Group) + d2, err := ss.Group().GetByRemoteID(d1.RemoteId, model.GroupSourceLdap) + require.Nil(t, err) require.Equal(t, d1.Id, d2.Id) require.Equal(t, d1.Name, d2.Name) require.Equal(t, d1.DisplayName, d2.DisplayName) @@ -242,9 +236,9 @@ func testGroupStoreGetByRemoteID(t *testing.T, ss store.Store) { require.Equal(t, d1.DeleteAt, d2.DeleteAt) // Get an invalid group - res3 := <-ss.Group().GetByRemoteID(model.NewId(), model.GroupSource("fake")) - require.NotNil(t, res3.Err) - require.Equal(t, res3.Err.Id, "store.sql_group.no_rows") + _, err = ss.Group().GetByRemoteID(model.NewId(), model.GroupSource("fake")) + require.NotNil(t, err) + require.Equal(t, err.Id, "store.sql_group.no_rows") } func testGroupStoreGetAllByType(t *testing.T, ss store.Store) { @@ -262,13 +256,13 @@ func testGroupStoreGetAllByType(t *testing.T, ss store.Store) { RemoteId: model.NewId(), } groups = append(groups, g) - res := <-ss.Group().Create(g) - require.Nil(t, res.Err) + _, err := ss.Group().Create(g) + require.Nil(t, err) } // Returns all the groups - res1 := <-ss.Group().GetAllBySource(model.GroupSourceLdap) - d1 := res1.Data.([]*model.Group) + d1, err := ss.Group().GetAllBySource(model.GroupSourceLdap) + require.Nil(t, err) require.Condition(t, func() bool { return len(d1) >= numGroups }) for _, expectedGroup := range groups { present := false @@ -293,9 +287,8 @@ func testGroupStoreUpdate(t *testing.T, ss store.Store) { } // Create a group - res := <-ss.Group().Create(g1) - require.Nil(t, res.Err) - d1 := res.Data.(*model.Group) + d1, err := ss.Group().Create(g1) + require.Nil(t, err) // Update happy path g1Update := &model.Group{} @@ -305,9 +298,8 @@ func testGroupStoreUpdate(t *testing.T, ss store.Store) { g1Update.Description = model.NewId() g1Update.RemoteId = model.NewId() - res2 := <-ss.Group().Update(g1Update) - require.Nil(t, res2.Err) - ud1 := res2.Data.(*model.Group) + ud1, err := ss.Group().Update(g1Update) + require.Nil(t, err) // Not changed... require.Equal(t, d1.Id, ud1.Id) require.Equal(t, d1.CreateAt, ud1.CreateAt) @@ -321,7 +313,7 @@ func testGroupStoreUpdate(t *testing.T, ss store.Store) { require.Equal(t, g1Update.RemoteId, ud1.RemoteId) // Requires name and display name - res3 := <-ss.Group().Update(&model.Group{ + data, err := ss.Group().Update(&model.Group{ Id: d1.Id, Name: "", DisplayName: model.NewId(), @@ -329,20 +321,20 @@ func testGroupStoreUpdate(t *testing.T, ss store.Store) { RemoteId: model.NewId(), Description: model.NewId(), }) - require.Nil(t, res3.Data) - require.NotNil(t, res3.Err) - require.Equal(t, res3.Err.Id, "model.group.name.app_error") + require.Nil(t, data) + require.NotNil(t, err) + require.Equal(t, err.Id, "model.group.name.app_error") - res4 := <-ss.Group().Update(&model.Group{ + data, err = ss.Group().Update(&model.Group{ Id: d1.Id, Name: model.NewId(), DisplayName: "", Source: model.GroupSourceLdap, RemoteId: model.NewId(), }) - require.Nil(t, res4.Data) - require.NotNil(t, res4.Err) - require.Equal(t, res4.Err.Id, "model.group.display_name.app_error") + require.Nil(t, data) + require.NotNil(t, err) + require.Equal(t, err.Id, "model.group.display_name.app_error") // Create another Group g2 := &model.Group{ @@ -352,12 +344,11 @@ func testGroupStoreUpdate(t *testing.T, ss store.Store) { Description: model.NewId(), RemoteId: model.NewId(), } - res5 := <-ss.Group().Create(g2) - require.Nil(t, res5.Err) - d2 := res5.Data.(*model.Group) + d2, err := ss.Group().Create(g2) + require.Nil(t, err) // Can't update the name to be a duplicate of an existing group's name - res6 := <-ss.Group().Update(&model.Group{ + _, err = ss.Group().Update(&model.Group{ Id: d2.Id, Name: g1Update.Name, DisplayName: model.NewId(), @@ -365,25 +356,24 @@ func testGroupStoreUpdate(t *testing.T, ss store.Store) { Description: model.NewId(), RemoteId: model.NewId(), }) - require.Equal(t, res6.Err.Id, "store.update_error") + require.Equal(t, err.Id, "store.update_error") // Cannot update CreateAt someVal := model.GetMillis() d1.CreateAt = someVal - res7 := <-ss.Group().Update(d1) - d3 := res7.Data.(*model.Group) + d3, err := ss.Group().Update(d1) + require.Nil(t, err) require.NotEqual(t, someVal, d3.CreateAt) // Cannot update DeleteAt to non-zero d1.DeleteAt = 1 - res9 := <-ss.Group().Update(d1) - require.Equal(t, "model.group.delete_at.app_error", res9.Err.Id) + _, err = ss.Group().Update(d1) + require.Equal(t, "model.group.delete_at.app_error", err.Id) //...except for 0 for DeleteAt d1.DeleteAt = 0 - res8 := <-ss.Group().Update(d1) - require.Nil(t, res8.Err) - d4 := res8.Data.(*model.Group) + d4, err := ss.Group().Update(d1) + require.Nil(t, err) require.Zero(t, d4.DeleteAt) } @@ -397,43 +387,42 @@ func testGroupStoreDelete(t *testing.T, ss store.Store) { RemoteId: model.NewId(), } - res1 := <-ss.Group().Create(g1) - require.Nil(t, res1.Err) - d1 := res1.Data.(*model.Group) + d1, err := ss.Group().Create(g1) + require.Nil(t, err) require.Len(t, d1.Id, 26) // Check the group is retrievable - res2 := <-ss.Group().Get(d1.Id) - require.Nil(t, res2.Err) + _, err = ss.Group().Get(d1.Id) + require.Nil(t, err) // Get the before count - res7 := <-ss.Group().GetAllBySource(model.GroupSourceLdap) - d7 := res7.Data.([]*model.Group) + d7, err := ss.Group().GetAllBySource(model.GroupSourceLdap) + require.Nil(t, err) beforeCount := len(d7) // Delete the group - res3 := <-ss.Group().Delete(d1.Id) - require.Nil(t, res3.Err) + _, err = ss.Group().Delete(d1.Id) + require.Nil(t, err) // Check the group is deleted - res4 := <-ss.Group().Get(d1.Id) - d4 := res4.Data.(*model.Group) + d4, err := ss.Group().Get(d1.Id) + require.Nil(t, err) require.NotZero(t, d4.DeleteAt) // Check the after count - res5 := <-ss.Group().GetAllBySource(model.GroupSourceLdap) - d5 := res5.Data.([]*model.Group) + d5, err := ss.Group().GetAllBySource(model.GroupSourceLdap) + require.Nil(t, err) afterCount := len(d5) require.Condition(t, func() bool { return beforeCount == afterCount+1 }) // Try and delete a nonexistent group - res6 := <-ss.Group().Delete(model.NewId()) - require.NotNil(t, res6.Err) - require.Equal(t, res6.Err.Id, "store.sql_group.no_rows") + _, err = ss.Group().Delete(model.NewId()) + require.NotNil(t, err) + require.Equal(t, err.Id, "store.sql_group.no_rows") // Cannot delete again - res8 := <-ss.Group().Delete(d1.Id) - require.Equal(t, res8.Err.Id, "store.sql_group.no_rows") + _, err = ss.Group().Delete(d1.Id) + require.Equal(t, err.Id, "store.sql_group.no_rows") } func testGroupGetMemberUsers(t *testing.T, ss store.Store) { @@ -445,15 +434,14 @@ func testGroupGetMemberUsers(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res := <-ss.Group().Create(g1) - require.Nil(t, res.Err) - group := res.Data.(*model.Group) + group, err := ss.Group().Create(g1) + require.Nil(t, err) u1 := &model.User{ Email: MakeEmail(), Username: model.NewId(), } - res = <-ss.User().Save(u1) + res := <-ss.User().Save(u1) require.Nil(t, res.Err) user1 := res.Data.(*model.User) @@ -499,15 +487,14 @@ func testGroupGetMemberUsersPage(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res := <-ss.Group().Create(g1) - require.Nil(t, res.Err) - group := res.Data.(*model.Group) + group, err := ss.Group().Create(g1) + require.Nil(t, err) u1 := &model.User{ Email: MakeEmail(), Username: model.NewId(), } - res = <-ss.User().Save(u1) + res := <-ss.User().Save(u1) require.Nil(t, res.Err) user1 := res.Data.(*model.User) @@ -566,9 +553,8 @@ func testGroupCreateOrRestoreMember(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res1 := <-ss.Group().Create(g1) - require.Nil(t, res1.Err) - group := res1.Data.(*model.Group) + group, err := ss.Group().Create(g1) + require.Nil(t, err) // Create user u1 := &model.User{ @@ -623,9 +609,8 @@ func testGroupDeleteMember(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res1 := <-ss.Group().Create(g1) - require.Nil(t, res1.Err) - group := res1.Data.(*model.Group) + group, err := ss.Group().Create(g1) + require.Nil(t, err) // Create user u1 := &model.User{ @@ -675,9 +660,8 @@ func testCreateGroupSyncable(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res4 := <-ss.Group().Create(g1) - require.Nil(t, res4.Err) - group := res4.Data.(*model.Group) + group, err := ss.Group().Create(g1) + require.Nil(t, err) // Create Team t1 := &model.Team{ @@ -713,9 +697,8 @@ func testGetGroupSyncable(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res1 := <-ss.Group().Create(g1) - require.Nil(t, res1.Err) - group := res1.Data.(*model.Group) + group, err := ss.Group().Create(g1) + require.Nil(t, err) // Create Team t1 := &model.Team{ @@ -758,9 +741,8 @@ func testGetAllGroupSyncablesByGroup(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res1 := <-ss.Group().Create(g) - require.Nil(t, res1.Err) - group := res1.Data.(*model.Group) + group, err := ss.Group().Create(g) + require.Nil(t, err) groupTeams := []*model.GroupSyncable{} @@ -777,11 +759,13 @@ func testGetAllGroupSyncablesByGroup(t *testing.T, ss store.Store) { Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN, } - team, err := ss.Team().Save(t1) + var team *model.Team + team, err = ss.Team().Save(t1) require.Nil(t, err) // create groupteam - groupTeam, err := ss.Group().CreateGroupSyncable(model.NewGroupTeam(group.Id, team.Id, false)) + var groupTeam *model.GroupSyncable + groupTeam, err = ss.Group().CreateGroupSyncable(model.NewGroupTeam(group.Id, team.Id, false)) require.Nil(t, err) groupTeams = append(groupTeams, groupTeam) } @@ -810,9 +794,8 @@ func testUpdateGroupSyncable(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res4 := <-ss.Group().Create(g1) - require.Nil(t, res4.Err) - group := res4.Data.(*model.Group) + group, err := ss.Group().Create(g1) + require.Nil(t, err) // Create Team t1 := &model.Team{ @@ -877,9 +860,8 @@ func testDeleteGroupSyncable(t *testing.T, ss store.Store) { Source: model.GroupSourceLdap, RemoteId: model.NewId(), } - res1 := <-ss.Group().Create(g1) - require.Nil(t, res1.Err) - group := res1.Data.(*model.Group) + group, err := ss.Group().Create(g1) + require.Nil(t, err) // Create Team t1 := &model.Team{ @@ -926,21 +908,20 @@ func testDeleteGroupSyncable(t *testing.T, ss store.Store) { func testPendingAutoAddTeamMembers(t *testing.T, ss store.Store) { // Create Group - res := <-ss.Group().Create(&model.Group{ + group, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "TeamMembersToAdd Test Group", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group := res.Data.(*model.Group) + require.Nil(t, err) // Create User user := &model.User{ Email: MakeEmail(), Username: model.NewId(), } - res = <-ss.User().Save(user) + res := <-ss.User().Save(user) require.Nil(t, res.Err) user = res.Data.(*model.User) @@ -959,7 +940,7 @@ func testPendingAutoAddTeamMembers(t *testing.T, ss store.Store) { Email: "success+" + model.NewId() + "@simulator.amazonses.com", Type: model.TEAM_OPEN, } - team, err := ss.Team().Save(team) + team, err = ss.Team().Save(team) require.Nil(t, err) // Create GroupTeam @@ -1020,15 +1001,16 @@ func testPendingAutoAddTeamMembers(t *testing.T, ss store.Store) { require.Len(t, teamMembers, 1) // No result if Group deleted - res = <-ss.Group().Delete(group.Id) - require.Nil(t, res.Err) + _, err = ss.Group().Delete(group.Id) + require.Nil(t, err) teamMembers, err = ss.Group().TeamMembersToAdd(0) require.Nil(t, err) require.Len(t, teamMembers, 0) // reset state of group and verify group.DeleteAt = 0 - res = <-ss.Group().Update(group) + _, err = ss.Group().Update(group) + require.Nil(t, err) teamMembers, err = ss.Group().TeamMembersToAdd(0) require.Nil(t, err) require.Len(t, teamMembers, 1) @@ -1089,21 +1071,20 @@ func testPendingAutoAddTeamMembers(t *testing.T, ss store.Store) { func testPendingAutoAddChannelMembers(t *testing.T, ss store.Store) { // Create Group - res := <-ss.Group().Create(&model.Group{ + group, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "ChannelMembersToAdd Test Group", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group := res.Data.(*model.Group) + require.Nil(t, err) // Create User user := &model.User{ Email: MakeEmail(), Username: model.NewId(), } - res = <-ss.User().Save(user) + res := <-ss.User().Save(user) require.Nil(t, res.Err) user = res.Data.(*model.User) @@ -1118,7 +1099,7 @@ func testPendingAutoAddChannelMembers(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) + channel, err = ss.Channel().Save(channel, 9999) require.Nil(t, err) // Create GroupChannel @@ -1179,15 +1160,16 @@ func testPendingAutoAddChannelMembers(t *testing.T, ss store.Store) { require.Len(t, channelMembers, 1) // No result if Group deleted - res = <-ss.Group().Delete(group.Id) - require.Nil(t, res.Err) + _, err = ss.Group().Delete(group.Id) + require.Nil(t, err) channelMembers, err = ss.Group().ChannelMembersToAdd(0) require.Nil(t, err) require.Len(t, channelMembers, 0) // reset state of group and verify group.DeleteAt = 0 - res = <-ss.Group().Update(group) + _, err = ss.Group().Update(group) + require.Nil(t, err) channelMembers, err = ss.Group().ChannelMembersToAdd(0) require.Nil(t, err) require.Len(t, channelMembers, 1) @@ -1420,14 +1402,13 @@ type removalsData struct { func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData { // create group - res := <-ss.Group().Create(&model.Group{ + group, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "Pending[Channel|Team]MemberRemovals Test Group", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group := res.Data.(*model.Group) + require.Nil(t, err) // create users // userA will get removed from the group @@ -1435,7 +1416,7 @@ func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData Email: MakeEmail(), Username: model.NewId(), } - res = <-ss.User().Save(userA) + res := <-ss.User().Save(userA) require.Nil(t, res.Err) userA = res.Data.(*model.User) @@ -1472,7 +1453,7 @@ func pendingMemberRemovalsDataSetup(t *testing.T, ss store.Store) *removalsData Type: model.CHANNEL_PRIVATE, GroupConstrained: model.NewBool(true), } - channelConstrained, err := ss.Channel().Save(channelConstrained, 9999) + channelConstrained, err = ss.Channel().Save(channelConstrained, 9999) require.Nil(t, err) channelUnconstrained := &model.Channel{ @@ -1587,23 +1568,21 @@ func testGetGroupsByChannel(t *testing.T, ss store.Store) { require.Nil(t, err) // Create Groups 1 and 2 - res := <-ss.Group().Create(&model.Group{ + group1, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "group-1", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group1 := res.Data.(*model.Group) + require.Nil(t, err) - res = <-ss.Group().Create(&model.Group{ + group2, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "group-2", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group2 := res.Data.(*model.Group) + require.Nil(t, err) // And associate them with Channel1 for _, g := range []*model.Group{group1, group2} { @@ -1627,14 +1606,13 @@ func testGetGroupsByChannel(t *testing.T, ss store.Store) { require.Nil(t, err) // Create Group3 - res = <-ss.Group().Create(&model.Group{ + group3, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "group-3", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group3 := res.Data.(*model.Group) + require.Nil(t, err) // And associate it to Channel2 _, err = ss.Group().CreateGroupSyncable(&model.GroupSyncable{ @@ -1650,7 +1628,7 @@ func testGetGroupsByChannel(t *testing.T, ss store.Store) { Email: MakeEmail(), Username: model.NewId(), } - res = <-ss.User().Save(u1) + res := <-ss.User().Save(u1) require.Nil(t, res.Err) user1 := res.Data.(*model.User) <-ss.Group().UpsertMember(group1.Id, user1.Id) @@ -1784,23 +1762,21 @@ func testGetGroupsByTeam(t *testing.T, ss store.Store) { require.Nil(t, err) // Create Groups 1 and 2 - res := <-ss.Group().Create(&model.Group{ + group1, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "group-1", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group1 := res.Data.(*model.Group) + require.Nil(t, err) - res = <-ss.Group().Create(&model.Group{ + group2, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "group-2", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group2 := res.Data.(*model.Group) + require.Nil(t, err) // And associate them with Team1 for _, g := range []*model.Group{group1, group2} { @@ -1828,14 +1804,13 @@ func testGetGroupsByTeam(t *testing.T, ss store.Store) { require.Nil(t, err) // Create Group3 - res = <-ss.Group().Create(&model.Group{ + group3, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "group-3", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group3 := res.Data.(*model.Group) + require.Nil(t, err) // And associate it to Team2 _, err = ss.Group().CreateGroupSyncable(&model.GroupSyncable{ @@ -1851,7 +1826,7 @@ func testGetGroupsByTeam(t *testing.T, ss store.Store) { Email: MakeEmail(), Username: model.NewId(), } - res = <-ss.User().Save(u1) + res := <-ss.User().Save(u1) require.Nil(t, res.Err) user1 := res.Data.(*model.User) <-ss.Group().UpsertMember(group1.Id, user1.Id) @@ -1996,23 +1971,21 @@ func testGetGroups(t *testing.T, ss store.Store) { require.Nil(t, err) // Create Groups 1 and 2 - res := <-ss.Group().Create(&model.Group{ + group1, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "group-1", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group1 := res.Data.(*model.Group) + require.Nil(t, err) - res = <-ss.Group().Create(&model.Group{ + group2, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "group-2", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group2 := res.Data.(*model.Group) + require.Nil(t, err) // And associate them with Team1 for _, g := range []*model.Group{group1, group2} { @@ -2050,14 +2023,13 @@ func testGetGroups(t *testing.T, ss store.Store) { require.Nil(t, err) // Create Group3 - res = <-ss.Group().Create(&model.Group{ + group3, err := ss.Group().Create(&model.Group{ Name: model.NewId(), DisplayName: "group-3", RemoteId: model.NewId(), Source: model.GroupSourceLdap, }) - require.Nil(t, res.Err) - group3 := res.Data.(*model.Group) + require.Nil(t, err) // And associate it to Team2 _, err = ss.Group().CreateGroupSyncable(&model.GroupSyncable{ @@ -2093,7 +2065,7 @@ func testGetGroups(t *testing.T, ss store.Store) { Email: MakeEmail(), Username: model.NewId(), } - res = <-ss.User().Save(u1) + res := <-ss.User().Save(u1) require.Nil(t, res.Err) user1 := res.Data.(*model.User) <-ss.Group().UpsertMember(group1.Id, user1.Id) @@ -2286,9 +2258,8 @@ func testTeamMembersMinusGroupMembers(t *testing.T, ss store.Store) { Description: model.NewId(), RemoteId: model.NewId(), } - res := <-ss.Group().Create(group) - require.Nil(t, res.Err) - group = res.Data.(*model.Group) + group, err := ss.Group().Create(group) + require.Nil(t, err) groups = append(groups, group) } @@ -2440,9 +2411,8 @@ func testChannelMembersMinusGroupMembers(t *testing.T, ss store.Store) { Description: model.NewId(), RemoteId: model.NewId(), } - res := <-ss.Group().Create(group) - require.Nil(t, res.Err) - group = res.Data.(*model.Group) + group, err := ss.Group().Create(group) + require.Nil(t, err) groups = append(groups, group) } diff --git a/store/storetest/mocks/GroupStore.go b/store/storetest/mocks/GroupStore.go index e7fab98543..7589a18c11 100644 --- a/store/storetest/mocks/GroupStore.go +++ b/store/storetest/mocks/GroupStore.go @@ -181,19 +181,28 @@ func (_m *GroupStore) CountTeamMembersMinusGroupMembers(teamID string, groupIDs } // Create provides a mock function with given fields: group -func (_m *GroupStore) Create(group *model.Group) store.StoreChannel { +func (_m *GroupStore) Create(group *model.Group) (*model.Group, *model.AppError) { ret := _m.Called(group) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(*model.Group) store.StoreChannel); ok { + var r0 *model.Group + if rf, ok := ret.Get(0).(func(*model.Group) *model.Group); ok { r0 = rf(group) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.Group) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(*model.Group) *model.AppError); ok { + r1 = rf(group) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // CreateGroupSyncable provides a mock function with given fields: groupSyncable @@ -222,19 +231,28 @@ func (_m *GroupStore) CreateGroupSyncable(groupSyncable *model.GroupSyncable) (* } // Delete provides a mock function with given fields: groupID -func (_m *GroupStore) Delete(groupID string) store.StoreChannel { +func (_m *GroupStore) Delete(groupID string) (*model.Group, *model.AppError) { ret := _m.Called(groupID) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok { + var r0 *model.Group + if rf, ok := ret.Get(0).(func(string) *model.Group); ok { r0 = rf(groupID) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.Group) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string) *model.AppError); ok { + r1 = rf(groupID) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // DeleteGroupSyncable provides a mock function with given fields: groupID, syncableID, syncableType @@ -279,35 +297,53 @@ func (_m *GroupStore) DeleteMember(groupID string, userID string) store.StoreCha } // Get provides a mock function with given fields: groupID -func (_m *GroupStore) Get(groupID string) store.StoreChannel { +func (_m *GroupStore) Get(groupID string) (*model.Group, *model.AppError) { ret := _m.Called(groupID) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok { + var r0 *model.Group + if rf, ok := ret.Get(0).(func(string) *model.Group); ok { r0 = rf(groupID) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.Group) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string) *model.AppError); ok { + r1 = rf(groupID) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // GetAllBySource provides a mock function with given fields: groupSource -func (_m *GroupStore) GetAllBySource(groupSource model.GroupSource) store.StoreChannel { +func (_m *GroupStore) GetAllBySource(groupSource model.GroupSource) ([]*model.Group, *model.AppError) { ret := _m.Called(groupSource) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(model.GroupSource) store.StoreChannel); ok { + var r0 []*model.Group + if rf, ok := ret.Get(0).(func(model.GroupSource) []*model.Group); ok { r0 = rf(groupSource) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).([]*model.Group) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(model.GroupSource) *model.AppError); ok { + r1 = rf(groupSource) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // GetAllGroupSyncablesByGroupId provides a mock function with given fields: groupID, syncableType @@ -361,19 +397,28 @@ func (_m *GroupStore) GetByIDs(groupIDs []string) ([]*model.Group, *model.AppErr } // GetByRemoteID provides a mock function with given fields: remoteID, groupSource -func (_m *GroupStore) GetByRemoteID(remoteID string, groupSource model.GroupSource) store.StoreChannel { +func (_m *GroupStore) GetByRemoteID(remoteID string, groupSource model.GroupSource) (*model.Group, *model.AppError) { ret := _m.Called(remoteID, groupSource) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string, model.GroupSource) store.StoreChannel); ok { + var r0 *model.Group + if rf, ok := ret.Get(0).(func(string, model.GroupSource) *model.Group); ok { r0 = rf(remoteID, groupSource) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.Group) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string, model.GroupSource) *model.AppError); ok { + r1 = rf(remoteID, groupSource) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // GetGroupSyncable provides a mock function with given fields: groupID, syncableID, syncableType @@ -600,19 +645,28 @@ func (_m *GroupStore) TeamMembersToRemove() ([]*model.TeamMember, *model.AppErro } // Update provides a mock function with given fields: group -func (_m *GroupStore) Update(group *model.Group) store.StoreChannel { +func (_m *GroupStore) Update(group *model.Group) (*model.Group, *model.AppError) { ret := _m.Called(group) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(*model.Group) store.StoreChannel); ok { + var r0 *model.Group + if rf, ok := ret.Get(0).(func(*model.Group) *model.Group); ok { r0 = rf(group) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.Group) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(*model.Group) *model.AppError); ok { + r1 = rf(group) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // UpdateGroupSyncable provides a mock function with given fields: groupSyncable diff --git a/store/storetest/user_store.go b/store/storetest/user_store.go index 9171175230..8468ea8686 100644 --- a/store/storetest/user_store.go +++ b/store/storetest/user_store.go @@ -1125,12 +1125,13 @@ func testUserStoreGetProfilesNotInChannel(t *testing.T, ss store.Store) { }) // create a group - group := store.Must(ss.Group().Create(&model.Group{ + group, err := ss.Group().Create(&model.Group{ Name: "n_" + model.NewId(), DisplayName: "dn_" + model.NewId(), Source: model.GroupSourceLdap, RemoteId: "ri_" + model.NewId(), - })).(*model.Group) + }) + require.Nil(t, err) // add two members to the group for _, u := range []*model.User{u1, u2} { @@ -3455,12 +3456,13 @@ func testUserStoreGetProfilesNotInTeam(t *testing.T, ss store.Store) { }) // create a group - group := store.Must(ss.Group().Create(&model.Group{ + group, err := ss.Group().Create(&model.Group{ Name: "n_" + model.NewId(), DisplayName: "dn_" + model.NewId(), Source: model.GroupSourceLdap, RemoteId: "ri_" + model.NewId(), - })).(*model.Group) + }) + require.Nil(t, err) // add two members to the group for _, u := range []*model.User{u1, u2} { @@ -3755,14 +3757,14 @@ func testUserStoreGetTeamGroupUsers(t *testing.T, ss store.Store) { var testGroups []*model.Group for i := 0; i < 2; i++ { id = model.NewId() - res = <-ss.Group().Create(&model.Group{ + var group *model.Group + group, err = ss.Group().Create(&model.Group{ Name: "n_" + id, DisplayName: "dn_" + id, Source: model.GroupSourceLdap, RemoteId: "ri_" + id, }) - require.Nil(t, res.Err) - group := res.Data.(*model.Group) + require.Nil(t, err) require.NotNil(t, group) testGroups = append(testGroups, group) } @@ -3877,14 +3879,14 @@ func testUserStoreGetChannelGroupUsers(t *testing.T, ss store.Store) { var testGroups []*model.Group for i := 0; i < 2; i++ { id = model.NewId() - res = <-ss.Group().Create(&model.Group{ + var group *model.Group + group, err = ss.Group().Create(&model.Group{ Name: "n_" + id, DisplayName: "dn_" + id, Source: model.GroupSourceLdap, RemoteId: "ri_" + id, }) - require.Nil(t, res.Err) - group := res.Data.(*model.Group) + require.Nil(t, err) require.NotNil(t, group) testGroups = append(testGroups, group) }