Migrate Team.GetActiveMembersCount to Sync by default (#11146)
* Migrate Team.GetActiveMembersCount to Sync by default * Requested change * Requested change * Fix merge * Added a new key to i18n: store.sql_team.get_active_member_count.app_error
Этот коммит содержится в:
коммит произвёл
Jesús Espino
родитель
bd8e047458
Коммит
b13c5eabff
15
app/team.go
15
app/team.go
@@ -523,12 +523,12 @@ func (a *App) joinUserToTeam(team *model.Team, user *model.User) (*model.TeamMem
|
|||||||
return rtm, true, nil
|
return rtm, true, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
membersCount := <-a.Srv.Store.Team().GetActiveMemberCount(tm.TeamId)
|
membersCount, err := a.Srv.Store.Team().GetActiveMemberCount(tm.TeamId)
|
||||||
if membersCount.Err != nil {
|
if err != nil {
|
||||||
return nil, false, membersCount.Err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if membersCount.Data.(int64) >= int64(*a.Config().TeamSettings.MaxUsersPerTeam) {
|
if membersCount >= int64(*a.Config().TeamSettings.MaxUsersPerTeam) {
|
||||||
return nil, false, model.NewAppError("joinUserToTeam", "app.team.join_user_to_team.max_accounts.app_error", nil, "teamId="+tm.TeamId, http.StatusBadRequest)
|
return nil, false, model.NewAppError("joinUserToTeam", "app.team.join_user_to_team.max_accounts.app_error", nil, "teamId="+tm.TeamId, http.StatusBadRequest)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1149,7 +1149,12 @@ func (a *App) GetTeamStats(teamId string) (*model.TeamStats, *model.AppError) {
|
|||||||
tchan <- store.StoreResult{Data: totalMemberCount, Err: err}
|
tchan <- store.StoreResult{Data: totalMemberCount, Err: err}
|
||||||
close(tchan)
|
close(tchan)
|
||||||
}()
|
}()
|
||||||
achan := a.Srv.Store.Team().GetActiveMemberCount(teamId)
|
achan := make(chan store.StoreResult, 1)
|
||||||
|
go func() {
|
||||||
|
memberCount, err := a.Srv.Store.Team().GetActiveMemberCount(teamId)
|
||||||
|
achan <- store.StoreResult{Data: memberCount, Err: err}
|
||||||
|
close(achan)
|
||||||
|
}()
|
||||||
|
|
||||||
stats := &model.TeamStats{}
|
stats := &model.TeamStats{}
|
||||||
stats.TeamId = teamId
|
stats.TeamId = teamId
|
||||||
|
|||||||
@@ -6530,6 +6530,10 @@
|
|||||||
"id": "store.sql_team.get.finding.app_error",
|
"id": "store.sql_team.get.finding.app_error",
|
||||||
"translation": "We encountered an error finding the team"
|
"translation": "We encountered an error finding the team"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "store.sql_team.get_active_member_count.app_error",
|
||||||
|
"translation": "Unable to count the team members"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "store.sql_team.get_all.app_error",
|
"id": "store.sql_team.get_all.app_error",
|
||||||
"translation": "We could not get all teams"
|
"translation": "We could not get all teams"
|
||||||
|
|||||||
@@ -652,26 +652,23 @@ func (s SqlTeamStore) GetTotalMemberCount(teamId string) (int64, *model.AppError
|
|||||||
return count, nil
|
return count, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s SqlTeamStore) GetActiveMemberCount(teamId string) store.StoreChannel {
|
func (s SqlTeamStore) GetActiveMemberCount(teamId string) (int64, *model.AppError) {
|
||||||
return store.Do(func(result *store.StoreResult) {
|
count, err := s.GetReplica().SelectInt(`
|
||||||
count, err := s.GetReplica().SelectInt(`
|
SELECT
|
||||||
SELECT
|
count(*)
|
||||||
count(*)
|
FROM
|
||||||
FROM
|
TeamMembers,
|
||||||
TeamMembers,
|
Users
|
||||||
Users
|
WHERE
|
||||||
WHERE
|
TeamMembers.UserId = Users.Id
|
||||||
TeamMembers.UserId = Users.Id
|
AND TeamMembers.TeamId = :TeamId
|
||||||
AND TeamMembers.TeamId = :TeamId
|
AND TeamMembers.DeleteAt = 0
|
||||||
AND TeamMembers.DeleteAt = 0
|
AND Users.DeleteAt = 0`, map[string]interface{}{"TeamId": teamId})
|
||||||
AND Users.DeleteAt = 0`, map[string]interface{}{"TeamId": teamId})
|
if err != nil {
|
||||||
if err != nil {
|
return 0, model.NewAppError("SqlTeamStore.GetActiveMemberCount", "store.sql_team.get_active_member_count.app_error", nil, "teamId="+teamId+" "+err.Error(), http.StatusInternalServerError)
|
||||||
result.Err = model.NewAppError("SqlTeamStore.GetActiveMemberCount", "store.sql_team.get_member_count.app_error", nil, "teamId="+teamId+" "+err.Error(), http.StatusInternalServerError)
|
}
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
result.Data = count
|
return count, nil
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s SqlTeamStore) GetMembersByIds(teamId string, userIds []string, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError) {
|
func (s SqlTeamStore) GetMembersByIds(teamId string, userIds []string, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError) {
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ type TeamStore interface {
|
|||||||
GetMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError)
|
GetMembers(teamId string, offset int, limit int, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError)
|
||||||
GetMembersByIds(teamId string, userIds []string, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError)
|
GetMembersByIds(teamId string, userIds []string, restrictions *model.ViewUsersRestrictions) ([]*model.TeamMember, *model.AppError)
|
||||||
GetTotalMemberCount(teamId string) (int64, *model.AppError)
|
GetTotalMemberCount(teamId string) (int64, *model.AppError)
|
||||||
GetActiveMemberCount(teamId string) StoreChannel
|
GetActiveMemberCount(teamId string) (int64, *model.AppError)
|
||||||
GetTeamsForUser(userId string) StoreChannel
|
GetTeamsForUser(userId string) StoreChannel
|
||||||
GetTeamsForUserWithPagination(userId string, page, perPage int) StoreChannel
|
GetTeamsForUserWithPagination(userId string, page, perPage int) StoreChannel
|
||||||
GetChannelUnreadsForAllTeams(excludeTeamId, userId string) StoreChannel
|
GetChannelUnreadsForAllTeams(excludeTeamId, userId string) StoreChannel
|
||||||
|
|||||||
@@ -99,19 +99,26 @@ func (_m *TeamStore) Get(id string) (*model.Team, *model.AppError) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetActiveMemberCount provides a mock function with given fields: teamId
|
// GetActiveMemberCount provides a mock function with given fields: teamId
|
||||||
func (_m *TeamStore) GetActiveMemberCount(teamId string) store.StoreChannel {
|
func (_m *TeamStore) GetActiveMemberCount(teamId string) (int64, *model.AppError) {
|
||||||
ret := _m.Called(teamId)
|
ret := _m.Called(teamId)
|
||||||
|
|
||||||
var r0 store.StoreChannel
|
var r0 int64
|
||||||
if rf, ok := ret.Get(0).(func(string) store.StoreChannel); ok {
|
if rf, ok := ret.Get(0).(func(string) int64); ok {
|
||||||
r0 = rf(teamId)
|
r0 = rf(teamId)
|
||||||
} else {
|
} else {
|
||||||
if ret.Get(0) != nil {
|
r0 = ret.Get(0).(int64)
|
||||||
r0 = ret.Get(0).(store.StoreChannel)
|
}
|
||||||
|
|
||||||
|
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
|
return r0, r1
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAll provides a mock function with given fields:
|
// GetAll provides a mock function with given fields:
|
||||||
|
|||||||
@@ -1160,10 +1160,10 @@ func testTeamStoreMemberCount(t *testing.T, ss store.Store) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if result := <-ss.Team().GetActiveMemberCount(teamId1); result.Err != nil {
|
if result, err := ss.Team().GetActiveMemberCount(teamId1); err != nil {
|
||||||
t.Fatal(result.Err)
|
t.Fatal(err)
|
||||||
} else {
|
} else {
|
||||||
if result.Data.(int64) != 1 {
|
if result != 1 {
|
||||||
t.Fatal("wrong count")
|
t.Fatal("wrong count")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1179,10 +1179,10 @@ func testTeamStoreMemberCount(t *testing.T, ss store.Store) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if result := <-ss.Team().GetActiveMemberCount(teamId1); result.Err != nil {
|
if result, err := ss.Team().GetActiveMemberCount(teamId1); err != nil {
|
||||||
t.Fatal(result.Err)
|
t.Fatal(err)
|
||||||
} else {
|
} else {
|
||||||
if result.Data.(int64) != 1 {
|
if result != 1 {
|
||||||
t.Fatal("wrong count")
|
t.Fatal("wrong count")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user