fix: add return statement & delete fmt Errorf with piece
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package handlers
|
package handlers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"math"
|
"math"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
@@ -57,17 +56,18 @@ func AddToCart(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !isValidQuantity(item, req.Quantity) {
|
if !isValidQuantity(item, req.Quantity) {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": fmt.Errorf("товар %s продается поштучно, дробное количество недопустимо", item.Name)})
|
c.JSON(http.StatusBadRequest, gin.H{"error": "товар продается поштучно, дробное количество недопустимо"})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if req.Quantity > item.Stock {
|
if req.Quantity > item.Stock {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Недостаточно товара на складе"})
|
c.JSON(http.StatusBadRequest, gin.H{"error": "Недостаточно товара на складе"})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var cartItem models.CartItem
|
var cartItem models.CartItem
|
||||||
err := database.DB.Where("user_id = ? AND item_id = ?", userID, req.ItemID).First(&cartItem).Error
|
err := database.DB.Where("user_id = ? AND item_id = ?", userID, req.ItemID).First(&cartItem).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
||||||
cartItem = models.CartItem{
|
cartItem = models.CartItem{
|
||||||
UserID: userID,
|
UserID: userID,
|
||||||
ItemID: req.ItemID,
|
ItemID: req.ItemID,
|
||||||
|
|||||||
@@ -121,3 +121,33 @@ func GetAllOrders(c *gin.Context) {
|
|||||||
|
|
||||||
c.JSON(http.StatusOK, orders)
|
c.JSON(http.StatusOK, orders)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UpdateOrderStatus(c *gin.Context) {
|
||||||
|
orderID := c.Param("id")
|
||||||
|
|
||||||
|
var req struct {
|
||||||
|
Status string `json:"status" binding:"required"`
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := c.ShouldBindJSON(&req); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"error": "Не указан статус заказа"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.Status != "new" && req.Status != "packed" && req.Status != "delivered" && req.Status != "cancel" {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"error": "Неверно указанный статус заказа"})
|
||||||
|
}
|
||||||
|
|
||||||
|
result := database.DB.Model(&models.Order{}).Where("id = ? ", orderID).Update("status", req.Status)
|
||||||
|
if result.Error != nil {
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"error": "Ошибка при изменении статуса заказа"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if result.RowsAffected == 0 {
|
||||||
|
c.JSON(http.StatusNotFound, gin.H{"error": "Заказ не найден"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c.JSON(http.StatusAccepted, "Статус заказа успешно изменен")
|
||||||
|
}
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ func main() {
|
|||||||
{
|
{
|
||||||
admin.POST("/register", handlers.RegisterAdmin)
|
admin.POST("/register", handlers.RegisterAdmin)
|
||||||
admin.GET("/orders", handlers.GetAllOrders)
|
admin.GET("/orders", handlers.GetAllOrders)
|
||||||
|
admin.PATCH("/orders/:id", handlers.UpdateOrderStatus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user