Added lists view

This commit is contained in:
konrad 2018-06-10 14:41:42 +02:00 committed by kolaente
parent b841ec121b
commit 125f0ba230
No known key found for this signature in database
GPG key ID: F40E70337AB24C9B
3 changed files with 44 additions and 0 deletions

View file

@ -34,6 +34,25 @@ func GetListByID(id int64) (list List, err error) {
return list, nil return list, nil
} }
//
func GetListsByUser(user *User) (lists []*List, err error) {
fullUser, _, err := GetUserByID(user.ID)
if err != nil {
return
}
err = x.Where("owner_id = ?", user.ID).Find(&lists)
if err != nil {
return
}
for in := range lists {
lists[in].Owner = fullUser
}
return
}
// CreateOrUpdateList updates a list or creates it if it doesn't exist // CreateOrUpdateList updates a list or creates it if it doesn't exist
func CreateOrUpdateList(list *List) (err error) { func CreateOrUpdateList(list *List) (err error) {
// Check if it exists // Check if it exists

View file

@ -0,0 +1,22 @@
package v1
import (
"github.com/labstack/echo"
"git.kolaente.de/konrad/list/models"
"net/http"
)
func GetListsByUser(c echo.Context) error {
currentUser, err := models.GetCurrentUser(c)
if err != nil {
return c.JSON(http.StatusInternalServerError, models.Message{"Could not determine the current user."})
}
allLists, err := models.GetListsByUser(&currentUser)
if err != nil {
return c.JSON(http.StatusInternalServerError, models.Message{"Could not get lists."})
}
return c.JSON(http.StatusOK, allLists)
}

View file

@ -42,6 +42,8 @@ func RegisterRoutes(e *echo.Echo) {
a.OPTIONS("/register", SetCORSHeader) a.OPTIONS("/register", SetCORSHeader)
a.OPTIONS("/users", SetCORSHeader) a.OPTIONS("/users", SetCORSHeader)
a.OPTIONS("/users/:id", SetCORSHeader) a.OPTIONS("/users/:id", SetCORSHeader)
a.OPTIONS("/lists", SetCORSHeader)
a.OPTIONS("/lists/:id", SetCORSHeader)
a.POST("/login", apiv1.Login) a.POST("/login", apiv1.Login)
a.POST("/register", apiv1.UserAddOrUpdate) a.POST("/register", apiv1.UserAddOrUpdate)
@ -52,5 +54,6 @@ func RegisterRoutes(e *echo.Echo) {
a.POST("/tokenTest", apiv1.CheckToken) a.POST("/tokenTest", apiv1.CheckToken)
a.PUT("/lists", apiv1.AddOrUpdateList) a.PUT("/lists", apiv1.AddOrUpdateList)
a.GET("/lists", apiv1.GetListsByUser)
a.POST("/lists/:id", apiv1.AddOrUpdateList) a.POST("/lists/:id", apiv1.AddOrUpdateList)
} }