diff options
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) +} |