add order/:token/print

This commit is contained in:
2025-04-11 14:17:22 +02:00
parent d5c3d7fe75
commit b14deeb24f
2 changed files with 30 additions and 1 deletions

View File

@@ -13,6 +13,7 @@ import (
type PrintController interface { type PrintController interface {
PrintVariantView(*gin.Context) PrintVariantView(*gin.Context)
PrintCartView(*gin.Context) PrintCartView(*gin.Context)
PrintOrderView(*gin.Context)
PrintHandler(*gin.Context) PrintHandler(*gin.Context)
} }
@@ -79,6 +80,33 @@ func (rc *printController) PrintCartView(c *gin.Context) {
c.HTML(http.StatusOK, "printvariant.html", data) c.HTML(http.StatusOK, "printvariant.html", data)
} }
func (rc *printController) PrintOrderView(c *gin.Context) {
order, err := repositories.Orders.GetByToken(c.Param("token"))
if err != nil {
c.HTML(http.StatusBadRequest, "error.html", gin.H{"data": gin.H{"error": err}})
return
}
cartItems := order.CartItems
type ShopItemVariantPair struct {
ShopItem models.ShopItem
ItemVariant models.ItemVariant
}
var items []ShopItemVariantPair
for _, cartItem := range cartItems {
items = append(items, ShopItemVariantPair{ShopItem: cartItem.ShopItem, ItemVariant: cartItem.ItemVariant})
}
data := CreateSessionData(c, gin.H{
"itemVariants": items,
})
c.HTML(http.StatusOK, "printvariant.html", data)
}
func (rc *printController) PrintHandler(c *gin.Context) { func (rc *printController) PrintHandler(c *gin.Context) {
variantIds := c.PostFormArray("variant-id[]") variantIds := c.PostFormArray("variant-id[]")
variantAmounts := c.PostFormArray("variant-amount[]") variantAmounts := c.PostFormArray("variant-amount[]")

View File

@@ -95,8 +95,9 @@ func main() {
viewRoutes.POST("/cart/edit", cartItemController.EditItemHandler) viewRoutes.POST("/cart/edit", cartItemController.EditItemHandler)
viewRoutes.GET("/checkout", cartItemController.CheckoutView) viewRoutes.GET("/checkout", cartItemController.CheckoutView)
viewRoutes.POST("/checkout", cartItemController.CheckoutHandler) viewRoutes.POST("/checkout", cartItemController.CheckoutHandler)
viewRoutes.GET("/order/:token", cartItemController.OrderView)
viewRoutes.POST("/order", cartItemController.OrderHandler) viewRoutes.POST("/order", cartItemController.OrderHandler)
viewRoutes.GET("/order/:token", cartItemController.OrderView)
viewRoutes.GET("/order/:token/print", authValidator.RequireAuth, printController.PrintOrderView)
//write middleware that redirects to homescreen on register/login/reset for logged in users //write middleware that redirects to homescreen on register/login/reset for logged in users
viewRoutes.GET("/login", userController.LoginView) viewRoutes.GET("/login", userController.LoginView)