first commmit
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
|
||||
"fishfish/database"
|
||||
"fishfish/models"
|
||||
)
|
||||
|
||||
func GetItem(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
var item models.Item
|
||||
|
||||
if err := database.DB.First(&item, id).Error; err != nil {
|
||||
c.JSON(http.StatusNotFound, gin.H{"error": "Товар не найден"})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, item)
|
||||
}
|
||||
|
||||
func GetAllItems(c *gin.Context) {
|
||||
var items []models.Item
|
||||
|
||||
if err := database.DB.Find(&items).Error; err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Не удалось загрузить данные с сервера", "message": err.Error()})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusOK, items)
|
||||
}
|
||||
|
||||
func UpdateItem(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
var item models.Item
|
||||
|
||||
if err := database.DB.First(&item, id).Error; err != nil {
|
||||
c.JSON(http.StatusNotFound, gin.H{"error": "Товар не найден"})
|
||||
return
|
||||
}
|
||||
|
||||
var input models.Item
|
||||
if err := c.ShouldBindJSON(&input); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Неверно введеные данные"})
|
||||
return
|
||||
}
|
||||
|
||||
database.DB.Model(&item).Updates(models.Item{
|
||||
Name: input.Name,
|
||||
Unit: input.Unit,
|
||||
City: input.City,
|
||||
Price: input.Price,
|
||||
})
|
||||
|
||||
c.JSON(http.StatusOK, item)
|
||||
}
|
||||
|
||||
func AddItem(c *gin.Context) {
|
||||
var input models.Item
|
||||
|
||||
if err := c.ShouldBindJSON(&input); err != nil {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "Неверные данные"})
|
||||
return
|
||||
}
|
||||
|
||||
if err := database.DB.Create(&input).Error; err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": "Не удалось создать товар"})
|
||||
return
|
||||
}
|
||||
|
||||
c.JSON(http.StatusCreated, input)
|
||||
}
|
||||
|
||||
func DeleteItem(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
var item models.Item
|
||||
|
||||
if err := database.DB.First(&item, id).Error; err != nil {
|
||||
c.JSON(http.StatusNotFound, gin.H{"error": "Указанный товар не найден"})
|
||||
return
|
||||
}
|
||||
|
||||
database.DB.Delete(&item)
|
||||
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Товар успешно удален"})
|
||||
}
|
||||
Reference in New Issue
Block a user