Get the count of the all system users at endpoint /users/stats (#8847)

* Get the count of the all system users at endpoint /users/stats

* Added GetTotalUsersStats test in api4

* Changed pluralization and added the test back.
Этот коммит содержится в:
lisakycho
2018-06-07 09:45:49 -07:00
коммит произвёл Joram Wilander
родитель c8d9595833
Коммит e09b3c566b
5 изменённых файлов: 80 добавлений и 20 удалений

Просмотреть файл

@@ -392,6 +392,10 @@ func (c *Client4) GetTeamSchemeRoute(teamId string) string {
return fmt.Sprintf(c.GetTeamsRoute()+"/%v/scheme", teamId)
}
func (c *Client4) GetTotalUsersStatsRoute() string {
return fmt.Sprintf(c.GetUsersRoute() + "/stats")
}
func (c *Client4) DoApiGet(url string, etag string) (*http.Response, *AppError) {
return c.DoApiRequest(http.MethodGet, c.ApiUrl+url, "", etag)
}
@@ -1468,6 +1472,17 @@ func (c *Client4) GetTeamStats(teamId, etag string) (*TeamStats, *Response) {
}
}
// GetTotalUsersStats returns a total system user stats.
// Must be authenticated.
func (c *Client4) GetTotalUsersStats(etag string) (*UsersStats, *Response) {
if r, err := c.DoApiGet(c.GetTotalUsersStatsRoute(), etag); err != nil {
return nil, BuildErrorResponse(r, err)
} else {
defer closeBody(r)
return UsersStatsFromJson(r.Body), BuildResponse(r)
}
}
// GetTeamUnread will return a TeamUnread object that contains the amount of
// unread messages and mentions the user has for the specified team.
// Must be authenticated.

24
model/users_stats.go Обычный файл
Просмотреть файл

@@ -0,0 +1,24 @@
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.
package model
import (
"encoding/json"
"io"
)
type UsersStats struct {
TotalUsersCount int64 `json:"total_users_count"`
}
func (o *UsersStats) ToJson() string {
b, _ := json.Marshal(o)
return string(b)
}
func UsersStatsFromJson(data io.Reader) *UsersStats {
var o *UsersStats
json.NewDecoder(data).Decode(&o)
return o
}