From 453f28c05d64689a4c9636a607fad19597cb9e77 Mon Sep 17 00:00:00 2001 From: Tarik Eshaq Date: Mon, 24 Jun 2019 10:01:45 -0700 Subject: [PATCH] Migrate Status.GetAllFromTeam method to Sync (#11362) * Migrate Status.GetAllFromTeam method to Sync * remove redundant else statement in GetAllFromTeam --- store/sqlstore/status_store.go | 17 +++++++---------- store/store.go | 2 +- store/storetest/mocks/StatusStore.go | 19 ++++++++++++++----- store/storetest/status_store.go | 12 ++++++------ 4 files changed, 28 insertions(+), 22 deletions(-) diff --git a/store/sqlstore/status_store.go b/store/sqlstore/status_store.go index 3c25b6492c..34e740a3b9 100644 --- a/store/sqlstore/status_store.go +++ b/store/sqlstore/status_store.go @@ -118,17 +118,14 @@ func (s SqlStatusStore) GetOnline() ([]*model.Status, *model.AppError) { return statuses, nil } -func (s SqlStatusStore) GetAllFromTeam(teamId string) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - var statuses []*model.Status - if _, err := s.GetReplica().Select(&statuses, - `SELECT s.* FROM Status AS s INNER JOIN +func (s SqlStatusStore) GetAllFromTeam(teamId string) ([]*model.Status, *model.AppError) { + var statuses []*model.Status + if _, err := s.GetReplica().Select(&statuses, + `SELECT s.* FROM Status AS s INNER JOIN TeamMembers AS tm ON tm.TeamId=:TeamId AND s.UserId=tm.UserId`, map[string]interface{}{"TeamId": teamId}); err != nil { - result.Err = model.NewAppError("SqlStatusStore.GetAllFromTeam", "store.sql_status.get_team_statuses.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { - result.Data = statuses - } - }) + return nil, model.NewAppError("SqlStatusStore.GetAllFromTeam", "store.sql_status.get_team_statuses.app_error", nil, err.Error(), http.StatusInternalServerError) + } + return statuses, nil } func (s SqlStatusStore) ResetAll() store.StoreChannel { diff --git a/store/store.go b/store/store.go index 77c1985749..217e64dcda 100644 --- a/store/store.go +++ b/store/store.go @@ -471,7 +471,7 @@ type StatusStore interface { GetByIds(userIds []string) StoreChannel GetOnlineAway() StoreChannel GetOnline() ([]*model.Status, *model.AppError) - GetAllFromTeam(teamId string) StoreChannel + GetAllFromTeam(teamId string) ([]*model.Status, *model.AppError) ResetAll() StoreChannel GetTotalActiveUsersCount() StoreChannel UpdateLastActivityAt(userId string, lastActivityAt int64) StoreChannel diff --git a/store/storetest/mocks/StatusStore.go b/store/storetest/mocks/StatusStore.go index 5a110d14ca..02fe2f2e79 100644 --- a/store/storetest/mocks/StatusStore.go +++ b/store/storetest/mocks/StatusStore.go @@ -30,19 +30,28 @@ func (_m *StatusStore) Get(userId string) store.StoreChannel { } // GetAllFromTeam provides a mock function with given fields: teamId -func (_m *StatusStore) GetAllFromTeam(teamId string) store.StoreChannel { +func (_m *StatusStore) GetAllFromTeam(teamId string) ([]*model.Status, *model.AppError) { ret := _m.Called(teamId) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok { + var r0 []*model.Status + if rf, ok := ret.Get(0).(func(string) []*model.Status); ok { r0 = rf(teamId) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).([]*model.Status) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string) *model.AppError); ok { + r1 = rf(teamId) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // GetByIds provides a mock function with given fields: userIds diff --git a/store/storetest/status_store.go b/store/storetest/status_store.go index 403f376cf0..ef3645c5b0 100644 --- a/store/storetest/status_store.go +++ b/store/storetest/status_store.go @@ -158,21 +158,21 @@ func testGetAllFromTeam(t *testing.T, ss store.Store) { team2Member2Status := &model.Status{UserId: team2Member2.UserId, Status: model.STATUS_OFFLINE, Manual: true, LastActivityAt: model.GetMillis(), ActiveChannel: ""} require.Nil(t, ss.Status().SaveOrUpdate(team2Member2Status)) - if result := <-ss.Status().GetAllFromTeam(team1.Id); result.Err != nil { - t.Fatal(result.Err) + if statueses, err := ss.Status().GetAllFromTeam(team1.Id); err != nil { + t.Fatal(err) } else { assertStatuses([]*model.Status{ team1Member1Status, team1Member2Status, - }, result.Data.([]*model.Status)) + }, statueses) } - if result := <-ss.Status().GetAllFromTeam(team2.Id); result.Err != nil { - t.Fatal(result.Err) + if statueses, err := ss.Status().GetAllFromTeam(team2.Id); err != nil { + t.Fatal(err) } else { assertStatuses([]*model.Status{ team2Member1Status, team2Member2Status, - }, result.Data.([]*model.Status)) + }, statueses) } }