From 00787974d0a87b1a54f15cf75d2dab398546b87e Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Fri, 4 Nov 2016 12:27:19 -0400 Subject: PLT-4481 Fix member count for team user lists and channel invite list (#4422) * Fix member count for team user lists and channel invite list * Fix client unit test --- api/team.go | 21 ++++++++++++++++----- api/team_test.go | 28 +++++++++++++++++++++++++--- 2 files changed, 41 insertions(+), 8 deletions(-) (limited to 'api') diff --git a/api/team.go b/api/team.go index 5a8c605ef..b1a1ae3cd 100644 --- a/api/team.go +++ b/api/team.go @@ -902,16 +902,27 @@ func getTeamStats(c *Context, w http.ResponseWriter, r *http.Request) { } } - if result := <-Srv.Store.Team().GetMemberCount(c.TeamId); result.Err != nil { + tchan := Srv.Store.Team().GetTotalMemberCount(c.TeamId) + achan := Srv.Store.Team().GetActiveMemberCount(c.TeamId) + + stats := &model.TeamStats{} + stats.TeamId = c.TeamId + + if result := <-tchan; result.Err != nil { c.Err = result.Err return } else { - stats := &model.TeamStats{} - stats.MemberCount = result.Data.(int64) - stats.TeamId = c.TeamId - w.Write([]byte(stats.ToJson())) + stats.TotalMemberCount = result.Data.(int64) + } + + if result := <-achan; result.Err != nil { + c.Err = result.Err return + } else { + stats.ActiveMemberCount = result.Data.(int64) } + + w.Write([]byte(stats.ToJson())) } func importTeam(c *Context, w http.ResponseWriter, r *http.Request) { diff --git a/api/team_test.go b/api/team_test.go index bac0228ad..ec3c40e51 100644 --- a/api/team_test.go +++ b/api/team_test.go @@ -706,7 +706,25 @@ func TestGetTeamStats(t *testing.T) { if result, err := th.SystemAdminClient.GetTeamStats(th.BasicTeam.Id); err != nil { t.Fatal(err) } else { - if result.Data.(*model.TeamStats).MemberCount != 2 { + if result.Data.(*model.TeamStats).TotalMemberCount != 2 { + t.Fatal("wrong count") + } + + if result.Data.(*model.TeamStats).ActiveMemberCount != 2 { + t.Fatal("wrong count") + } + } + + th.SystemAdminClient.Must(th.SystemAdminClient.UpdateActive(th.BasicUser2.Id, false)) + + if result, err := th.SystemAdminClient.GetTeamStats(th.BasicTeam.Id); err != nil { + t.Fatal(err) + } else { + if result.Data.(*model.TeamStats).TotalMemberCount != 2 { + t.Fatal("wrong count") + } + + if result.Data.(*model.TeamStats).ActiveMemberCount != 1 { t.Fatal("wrong count") } } @@ -714,7 +732,11 @@ func TestGetTeamStats(t *testing.T) { if result, err := th.SystemAdminClient.GetTeamStats("junk"); err != nil { t.Fatal(err) } else { - if result.Data.(*model.TeamStats).MemberCount != 0 { + if result.Data.(*model.TeamStats).TotalMemberCount != 0 { + t.Fatal("wrong count") + } + + if result.Data.(*model.TeamStats).ActiveMemberCount != 0 { t.Fatal("wrong count") } } @@ -722,7 +744,7 @@ func TestGetTeamStats(t *testing.T) { if result, err := th.SystemAdminClient.GetTeamStats(th.BasicTeam.Id); err != nil { t.Fatal(err) } else { - if result.Data.(*model.TeamStats).MemberCount != 2 { + if result.Data.(*model.TeamStats).TotalMemberCount != 2 { t.Fatal("wrong count") } } -- cgit v1.2.3-1-g7c22