75 lines
1.3 KiB
Go
75 lines
1.3 KiB
Go
package handlers
|
|
|
|
import (
|
|
database "app/database"
|
|
"app/models"
|
|
"app/repositories"
|
|
"net/http"
|
|
"strconv"
|
|
|
|
"github.com/labstack/echo/v4"
|
|
)
|
|
|
|
// Create(w *models.Wishlist) error
|
|
// GetList(id uint) ([]models.Wishlist, error)
|
|
// Delete(id uint) error
|
|
|
|
func initWishlist() *repositories.Wishlist_repository {
|
|
db := database.Db()
|
|
wishRepository := new(repositories.Wishlist_repository)
|
|
wishRepository.DB = &db
|
|
|
|
return wishRepository
|
|
}
|
|
|
|
func CreateWishlist(c echo.Context) error {
|
|
wishlist := new(models.Wishlist)
|
|
wishlistReposiory := initWishlist()
|
|
|
|
if err := c.Bind(wishlist); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
err := wishlistReposiory.Create(wishlist)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return c.JSON(http.StatusCreated, wishlist)
|
|
|
|
}
|
|
|
|
func GetWishlist(c echo.Context) error {
|
|
id, err := strconv.Atoi(c.Param("id"))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
wishlistReposiory := initWishlist()
|
|
|
|
wishlist, err := wishlistReposiory.GetList(uint(id))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return c.JSON(http.StatusAccepted, wishlist)
|
|
|
|
}
|
|
|
|
func DeleteWishlist(c echo.Context) error {
|
|
id, err := strconv.Atoi(c.Param("id"))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
wishlistReposiory := initWishlist()
|
|
|
|
err = wishlistReposiory.Delete(uint(id))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return c.String(http.StatusAccepted, "removed")
|
|
|
|
}
|