wip cart handling

This commit is contained in:
2025-03-04 13:00:30 +01:00
parent 23392cc5c1
commit 0c85ca5938
7 changed files with 206 additions and 253 deletions

View File

@@ -2,6 +2,7 @@ package controllers
import (
"fmt"
"strconv"
"net/http"
"crypto/rand"
"encoding/hex"
@@ -17,8 +18,8 @@ type CartItemController interface {
//CRUDController
CartItemView(*gin.Context)
AddItemHandler(*gin.Context)
//EditCartItemHandler(*gin.Context)
//DeleteCartItemHandler(*gin.Context)
DeleteItemHandler(*gin.Context)
EditItemHandler(*gin.Context)
}
type cartItemController struct {}
@@ -49,10 +50,16 @@ func GetSessionId(ctx *gin.Context) string {
func (rc *cartItemController) NewCartItemFromForm(ctx *gin.Context) (models.CartItem, error) {
sessionId := GetSessionId(ctx)
shopItemId := ctx.PostForm("ShopItemId")
shopItemIdStr := ctx.PostForm("ShopItemId")
shopItemId, err := strconv.Atoi(shopItemIdStr)
if err != nil {
return models.CartItem{}, err
}
quantity := 1
shopItem, err := repositories.ShopItems.GetById(shopItemId)
shopItem, err := repositories.ShopItems.GetById(shopItemIdStr)
if err != nil {
return models.CartItem{}, err
@@ -60,6 +67,7 @@ func (rc *cartItemController) NewCartItemFromForm(ctx *gin.Context) (models.Cart
cartItem := models.CartItem{
SessionId: sessionId,
ShopItemId: uint(shopItemId),
ShopItem: shopItem,
Quantity: quantity,
}
@@ -117,9 +125,10 @@ func (rc *cartItemController) Update(c *gin.Context) {
//}
func (rc *cartItemController) CartItemView(c *gin.Context) {
sessionId := GetSessionId(c)
//sessionId := GetSessionId(c)
cartItems, err := repositories.CartItems.GetAllBySession(sessionId)
//cartItems, err := repositories.CartItems.GetAllBySession(sessionId)
cartItems, err := repositories.CartItems.GetAll()
if err != nil {
c.HTML(http.StatusBadRequest, "cart.html", gin.H{ "data": gin.H{ "error": err } })
@@ -157,77 +166,53 @@ func (rc *cartItemController) AddItemHandler(c *gin.Context) {
rc.CartItemView(c)
}
func (rc *cartItemController) DeleteItemHandler(c *gin.Context) {
err := repositories.CartItems.DeleteById(c.PostForm("id"))
//func (rc *cartItemController) EditItemHandler(c *gin.Context) {
// cartItem, err := rc.NewCartItemFromForm(c)
//
// if err != nil {
// c.HTML(http.StatusBadRequest, "edititem.html", gin.H{ "error": err })
// return
// }
//
// newCartItem, err := repositories.ShopItems.GetById(c.Param("id"))
//
// if err != nil {
// c.HTML(http.StatusBadRequest, "edititem.html", gin.H{ "error": err })
// return
// }
//
// newCartItem.Name = cartItem.Name
// newCartItem.Abstract = cartItem.Abstract
// newCartItem.Description = cartItem.Description
// newCartItem.Price = cartItem.Price
// newCartItem.IsPublic = cartItem.IsPublic
// newCartItem.Tags = cartItem.Tags
//
// tags, err := repositories.Tags.GetAll()
// if err != nil {
// c.HTML(http.StatusBadRequest, "edititem.html", gin.H{ "error": err })
// return
// }
//
// _, err = repositories.CartItems.Update(newShopItem)
// if err != nil {
// data := CreateSessionData(c, gin.H{
// "error": err,
// "success": "",
// "tags": tags,
// })
//
// c.HTML(http.StatusOK, "edititem.html", data)
// return
// }
//
// data := CreateSessionData(c, gin.H{
// "error": "",
// "success": fmt.Sprintf("Item '%s' Updated", newCartItem.Name),
// "tags": tags,
// })
//
// c.HTML(http.StatusOK, "edititem.html", data)
//}
if err != nil {
fmt.Println(err)
data := CreateSessionData(c, gin.H{
"error": err,
"success": "",
})
//func (rc *cartItemController) DeleteItemHandler(c *gin.Context) {
// err := repositories.CartItems.DeleteById(c.Param("id"))
//
// if err != nil {
// data := CreateSessionData(c, gin.H{
// "error": err,
// "success": "",
// })
//
// c.HTML(http.StatusOK, "deleteitem.html", data)
// }
//
// cartItems, _ := repositories.CartItems.GetAll()
// fmt.Println(len(cartItems))
//
// data := CreateSessionData(c, gin.H{
// "title": "cartItem Page",
// "cartItems": shopItems,
// })
//
// fmt.Println(data)
//
// c.HTML(http.StatusOK, "index.html", data)
//}
c.HTML(http.StatusOK, "index.html", data)
}
rc.CartItemView(c)
}
func (rc *cartItemController) EditItemHandler(c *gin.Context) {
cartItemId := c.PostForm("id")
cartItem, err := repositories.CartItems.GetById(cartItemId)
if err != nil {
fmt.Println("BLAA")
fmt.Println(err)
rc.CartItemView(c)
return
}
action := c.PostForm("action")
if action == "increase" {
cartItem.Quantity += 1
}
if action == "decrease" {
cartItem.Quantity -= 1
if cartItem.Quantity == 0 {
cartItem.Quantity = 1
}
}
_, err = repositories.CartItems.Update(cartItem)
if err != nil {
fmt.Println("BLUB")
fmt.Println(err)
}
rc.CartItemView(c)
}