mirror of
https://github.com/mattermost/focalboard.git
synced 2025-01-23 18:34:02 +02:00
c8e729b6fe
* refactor: updated dependency for focalboard server * chore: more dependency fixes * refactor: removed the unless code * refactor: added ctx for login and removed unnessary code * refactor: bump up go version * refactor: removed the commented code * chore: upgraded golinter version * fix: linter issue * refactor: removed feature flg fix golinter * refactor: removed feature flag from code * revert: statistic and it's function * refactor: removed ProductLimit related code * refactor: removed isWithinViewsLimit implementation * refactor: moved function GetUsedCardsCount to statistics.go from cloud.go * refactor: removed insight code board * refactor: removed limit dialog * refactor: updated dependencies for linux * chore: golinter fix * chore: updated helper test function to use newLogger * fix: go test * refactor: db ping attempts from config * revert: feature in action * revert: feature flag in action * revert: boardsEditor setting --------- Co-authored-by: Rajat Dabade <rajat@Rajats-MacBook-Pro.local>
71 lines
1.6 KiB
Go
71 lines
1.6 KiB
Go
package api
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
|
|
"github.com/gorilla/mux"
|
|
"github.com/mattermost/focalboard/server/model"
|
|
mmModel "github.com/mattermost/mattermost/server/public/model"
|
|
)
|
|
|
|
func (a *API) registerStatisticsRoutes(r *mux.Router) {
|
|
// statistics
|
|
r.HandleFunc("/statistics", a.sessionRequired(a.handleStatistics)).Methods("GET")
|
|
}
|
|
|
|
func (a *API) handleStatistics(w http.ResponseWriter, r *http.Request) {
|
|
// swagger:operation GET /statistics handleStatistics
|
|
//
|
|
// Fetches the statistic of the server.
|
|
//
|
|
// ---
|
|
// produces:
|
|
// - application/json
|
|
// security:
|
|
// - BearerAuth: []
|
|
// responses:
|
|
// '200':
|
|
// description: success
|
|
// schema:
|
|
// "$ref": "#/definitions/BoardStatistics"
|
|
// default:
|
|
// description: internal error
|
|
// schema:
|
|
// "$ref": "#/definitions/ErrorResponse"
|
|
if !a.MattermostAuth {
|
|
a.errorResponse(w, r, model.NewErrNotImplemented("not permitted in standalone mode"))
|
|
return
|
|
}
|
|
|
|
// user must have right to access analytics
|
|
userID := getUserID(r)
|
|
if !a.permissions.HasPermissionTo(userID, mmModel.PermissionGetAnalytics) {
|
|
a.errorResponse(w, r, model.NewErrPermission("access denied System Statistics"))
|
|
return
|
|
}
|
|
|
|
boardCount, err := a.app.GetBoardCount()
|
|
if err != nil {
|
|
a.errorResponse(w, r, err)
|
|
return
|
|
}
|
|
cardCount, err := a.app.GetUsedCardsCount()
|
|
if err != nil {
|
|
a.errorResponse(w, r, err)
|
|
return
|
|
}
|
|
|
|
stats := model.BoardsStatistics{
|
|
Boards: int(boardCount),
|
|
Cards: cardCount,
|
|
}
|
|
data, err := json.Marshal(stats)
|
|
if err != nil {
|
|
a.errorResponse(w, r, err)
|
|
return
|
|
}
|
|
|
|
jsonBytesResponse(w, http.StatusOK, data)
|
|
}
|