You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.6 KiB
Go
81 lines
1.6 KiB
Go
3 years ago
|
package main
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"log"
|
||
|
|
||
|
"dymatrix.de/jspahl/todo/internal/server"
|
||
|
|
||
|
"github.com/gin-gonic/gin"
|
||
|
)
|
||
|
|
||
|
type ItemDTO struct {
|
||
|
id int
|
||
|
message string
|
||
|
}
|
||
|
|
||
|
func (prov MemoryProvider) GetItem(id int) (Item, error) {
|
||
|
item, err := prov.GetItemPtr(id)
|
||
|
return *item, err
|
||
|
|
||
|
}
|
||
|
func (prov MemoryProvider) GetItemByUser(user User) ([]Item, error) {
|
||
|
var items []Item
|
||
|
for i := range prov.itemsByUsers[user.id] {
|
||
|
items = append(items, *prov.itemsByUsers[user.id][i])
|
||
|
}
|
||
|
if len(items) == 0 {
|
||
|
return items, errors.New("no items for user " + user.toString())
|
||
|
}
|
||
|
return items, nil
|
||
|
}
|
||
|
func (prov MemoryProvider) GetAllItems() []Item {
|
||
|
var items []Item
|
||
|
for _, item := range prov.items {
|
||
|
if !item.deleted {
|
||
|
items = append(items, item)
|
||
|
}
|
||
|
}
|
||
|
return items
|
||
|
}
|
||
|
|
||
|
func (prov MemoryProvider) Link(user User, item Item) error {
|
||
|
storedItem, err := prov.GetItemPtr(item.id)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
prov.itemsByUsers[user.id] = append(prov.itemsByUsers[user.id], storedItem)
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
//func main() {
|
||
|
// var prov = MemoryProvider{}
|
||
|
// rItems := router.Group("/item")
|
||
|
// {
|
||
|
// rItems.GET("/:id", func(c *gin.Context) {
|
||
|
// id, err := strconv.Atoi(c.Param("id"))
|
||
|
// if err != nil {
|
||
|
// c.String(http.StatusNotFound, err.Error())
|
||
|
// }
|
||
|
// item, err := prov.GetItem(id)
|
||
|
// if err != nil {
|
||
|
// c.String(http.StatusNotFound, err.Error())
|
||
|
// }
|
||
|
// c.JSON(http.StatusOK, item.toDto())
|
||
|
// })
|
||
|
// rItems.POST("/", func(c *gin.Context) {
|
||
|
//
|
||
|
// })
|
||
|
// }
|
||
|
// router.Run()
|
||
|
//
|
||
|
//}
|
||
|
|
||
|
func main() {
|
||
|
gin.SetMode(gin.ReleaseMode)
|
||
|
|
||
|
server.Setup()
|
||
|
err := server.ListenAndServe()
|
||
|
log.Fatalf("http: webserver closed unexpected: %s", err)
|
||
|
}
|