package main import ( // "fmt" "github.com/gin-gonic/gin" "golang-test/controllers" "golang-test/database" "golang-test/types" "log" "net/http" ) func main() { // Создание сервера r := gin.Default() //View для создание товара r.POST("/product", func(c *gin.Context) { var product database.Product if err := c.ShouldBind(&product); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) } controllers.CreateProduct(c, product) }) //View для удаления товара r.DELETE("/product/:id", func(c *gin.Context) { controllers.DeleteProduct(c) }) //View для просмотра всех продуктов r.GET("/product", func(c *gin.Context) { controllers.GetProducts(c) }) r.GET("/product/:id", func(c *gin.Context) { controllers.GetProductInfo(c) }) //View для создания производителя r.POST("/manufacturer", func(c *gin.Context) { var manufacturer database.Manufacturer if err := c.ShouldBind(&manufacturer); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) } controllers.CreateManufacturer(c, manufacturer) }) //View для удаления производителя r.DELETE("/manufacturer/:id", func(c *gin.Context) { controllers.DeleteManufacturer(c) }) //View получения списка всех производителей r.GET("/manufacturer", func(c *gin.Context) { controllers.GetManufacturers(c) }) //View для редактирования производителя r.PATCH("/manufacturer/:id", func(c *gin.Context) { var manufacturer types.ManufacturerPatchRequest if err := c.ShouldBind(&manufacturer); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) } controllers.EditManufacture(c, manufacturer) }) //View для создания пользователя r.POST("/registration", func(c *gin.Context) { var form database.User if err := c.ShouldBind(&form); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) } controllers.RegisterUser(c, form) }) //View для аутентификации пользователя r.POST("/login", func(c *gin.Context) { var register types.LoginRequest if err := c.ShouldBind(®ister); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) } controllers.LoginUser(c, register) }) //View для получения пользователя r.GET("/user", func(c *gin.Context) {}) //View для редактированя пользователя r.PATCH("/user/edit", func(c *gin.Context) { var user database.User if err := c.ShouldBind(&user); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) } controllers.EditUser(c, user) }) //View для удаления пользователя r.DELETE("/user/delete", func(c *gin.Context) { var form types.LoginRequest if err := c.ShouldBind(&form); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) } controllers.DeleteUser(c) }) err := r.Run() if err != nil { return } defer func() { db := database.Connector() sqlDB, err := db.DB() if err != nil { log.Fatal(err) } err = sqlDB.Close() if err != nil { log.Println(err) } }() }