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) }