Add /user endpoint (#1)
This commit is contained in:
parent
42bd69321a
commit
26d37bbedf
3 changed files with 16 additions and 25 deletions
|
@ -58,11 +58,11 @@ func userAddOrUpdate(c echo.Context) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if the user exists
|
// Check if the user exists
|
||||||
var exists bool
|
var exists = true
|
||||||
_, err := models.GetUserByID(datUser.ID)
|
_, err := models.GetUserByID(datUser.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if models.IsErrUserDoesNotExist(err) {
|
if models.IsErrUserDoesNotExist(err) {
|
||||||
exists = true
|
exists = false
|
||||||
} else {
|
} else {
|
||||||
return c.JSON(http.StatusInternalServerError, models.Message{"Could not check if the user exists."})
|
return c.JSON(http.StatusInternalServerError, models.Message{"Could not check if the user exists."})
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,29 +4,11 @@ import (
|
||||||
"code.vikunja.io/api/models"
|
"code.vikunja.io/api/models"
|
||||||
"github.com/labstack/echo"
|
"github.com/labstack/echo"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// UserShow gets all informations about a user
|
// UserShow gets all information about a user
|
||||||
func UserShow(c echo.Context) error {
|
func UserShow(c echo.Context) error {
|
||||||
|
userInfos, err := models.GetCurrentUser(c)
|
||||||
// TODO: only allow users to show itself/with privacy options
|
|
||||||
|
|
||||||
user := c.Param("id")
|
|
||||||
|
|
||||||
if user == "" {
|
|
||||||
return c.JSON(http.StatusBadRequest, models.Message{"User ID cannot be empty."})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make int
|
|
||||||
userID, err := strconv.ParseInt(user, 10, 64)
|
|
||||||
if err != nil {
|
|
||||||
return c.JSON(http.StatusBadRequest, models.Message{"User ID is invalid."})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get User Infos
|
|
||||||
userInfos, err := models.GetUserByID(userID)
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if models.IsErrUserDoesNotExist(err) {
|
if models.IsErrUserDoesNotExist(err) {
|
||||||
return c.JSON(http.StatusNotFound, models.Message{"The user does not exist."})
|
return c.JSON(http.StatusNotFound, models.Message{"The user does not exist."})
|
||||||
|
@ -34,8 +16,15 @@ func UserShow(c echo.Context) error {
|
||||||
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting user infos."})
|
return c.JSON(http.StatusInternalServerError, models.Message{"Error getting user infos."})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Obfucate his password
|
user, err := models.GetUserByID(userInfos.ID)
|
||||||
userInfos.Password = ""
|
if err != nil {
|
||||||
|
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."})
|
||||||
|
}
|
||||||
|
// Obfuscate his password
|
||||||
|
user.Password = ""
|
||||||
|
|
||||||
return c.JSON(http.StatusOK, userInfos)
|
return c.JSON(http.StatusOK, user)
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,4 +139,6 @@ func RegisterRoutes(e *echo.Echo) {
|
||||||
}
|
}
|
||||||
a.PUT("/teams/:team/members", teamMemberHandler.CreateWeb)
|
a.PUT("/teams/:team/members", teamMemberHandler.CreateWeb)
|
||||||
a.DELETE("/teams/:team/members/:user", teamMemberHandler.DeleteWeb)
|
a.DELETE("/teams/:team/members/:user", teamMemberHandler.DeleteWeb)
|
||||||
|
|
||||||
|
a.GET("/user", apiv1.UserShow)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue