diff options
author | kolaente <konrad@kola-entertainments.de> | 2018-10-23 04:57:42 +0200 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2018-10-23 10:57:42 +0800 |
commit | 6759237eda5b7ddfe9284c81900cc9deed1f6bf9 (patch) | |
tree | d6fa6ea9da9b218fcc74bcd9d9d11dc92662a349 /routers/api/v1/user/user.go | |
parent | f38fce916ec92cb9ac9fe78fb5284bc8b55a726f (diff) | |
download | gitea-6759237eda5b7ddfe9284c81900cc9deed1f6bf9.tar.gz gitea-6759237eda5b7ddfe9284c81900cc9deed1f6bf9.zip |
User action heatmap (#5131)
* Added basic heatmap data
* Added extra case for sqlite
* Built basic heatmap into user profile
* Get contribution data from api & styling
* Fixed lint & added extra group by statements for all database types
* generated swagger spec
* generated swagger spec
* generated swagger spec
* fixed swagger spec
* fmt
* Added tests
* Added setting to enable/disable user heatmap
* Added locale for loading text
* Removed UseTiDB
* Updated librejs & moment.js
* Fixed import order
* Fixed heatmap in postgresql
* Update docs/content/doc/advanced/config-cheat-sheet.en-us.md
Co-Authored-By: kolaente <konrad@kola-entertainments.de>
* Added copyright header
* Fixed a bug to show the heatmap for the actual user instead of the currently logged in
* Added integration test for heatmaps
* Added a heatmap on the dashboard
* Fixed timestamp parsing
* Hide heatmap on mobile
* optimized postgresql group by query
* Improved sqlite group by statement
Diffstat (limited to 'routers/api/v1/user/user.go')
-rw-r--r-- | routers/api/v1/user/user.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/routers/api/v1/user/user.go b/routers/api/v1/user/user.go index 51d69aa2c3..f76b443661 100644 --- a/routers/api/v1/user/user.go +++ b/routers/api/v1/user/user.go @@ -5,6 +5,7 @@ package user import ( + "net/http" "strings" "code.gitea.io/gitea/models" @@ -133,3 +134,41 @@ func GetAuthenticatedUser(ctx *context.APIContext) { // "$ref": "#/responses/User" ctx.JSON(200, ctx.User.APIFormat()) } + +// GetUserHeatmapData is the handler to get a users heatmap +func GetUserHeatmapData(ctx *context.APIContext) { + // swagger:operation GET /users/{username}/heatmap user userGetHeatmapData + // --- + // summary: Get a user's heatmap + // produces: + // - application/json + // parameters: + // - name: username + // in: path + // description: username of user to get + // type: string + // required: true + // responses: + // "200": + // "$ref": "#/responses/UserHeatmapData" + // "404": + // "$ref": "#/responses/notFound" + + // Get the user to throw an error if it does not exist + user, err := models.GetUserByName(ctx.Params(":username")) + if err != nil { + if models.IsErrUserNotExist(err) { + ctx.Status(http.StatusNotFound) + } else { + ctx.Error(http.StatusInternalServerError, "GetUserByName", err) + } + return + } + + heatmap, err := models.GetUserHeatmapDataByUser(user) + if err != nil { + ctx.Error(http.StatusInternalServerError, "GetUserHeatmapDataByUser", err) + return + } + ctx.JSON(200, heatmap) +} |