api/routes/api/v1/user_show.go

31 lines
836 B
Go
Raw Normal View History

2018-06-10 09:11:41 +00:00
package v1
import (
2018-07-25 14:24:46 +00:00
"code.vikunja.io/api/models"
2018-06-10 09:11:41 +00:00
"github.com/labstack/echo"
"net/http"
)
2018-09-17 16:25:05 +00:00
// UserShow gets all information about a user
2018-06-10 09:11:41 +00:00
func UserShow(c echo.Context) error {
2018-09-17 16:25:05 +00:00
userInfos, err := models.GetCurrentUser(c)
2018-06-10 09:11:41 +00:00
if err != nil {
2018-09-17 16:25:05 +00:00
if models.IsErrUserDoesNotExist(err) {
return c.JSON(http.StatusNotFound, models.Message{"The user does not exist."})
}
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting user infos."})
2018-06-10 09:11:41 +00:00
}
2018-09-17 16:25:05 +00:00
user, err := models.GetUserByID(userInfos.ID)
2018-06-10 09:11:41 +00:00
if err != nil {
2018-08-30 17:14:02 +00:00
if models.IsErrUserDoesNotExist(err) {
return c.JSON(http.StatusNotFound, models.Message{"The user does not exist."})
}
2018-06-10 09:11:41 +00:00
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting user infos."})
}
2018-09-17 16:25:05 +00:00
// Obfuscate his password
user.Password = ""
2018-06-10 09:11:41 +00:00
2018-09-17 16:25:05 +00:00
return c.JSON(http.StatusOK, user)
2018-06-10 09:11:41 +00:00
}