Go-TestAPI/main.go

77 lines
1.4 KiB
Go

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()
r.POST("/product", func(c *gin.Context) {
var product database.Product
err := c.ShouldBind(&product)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
//c.JSON(http.StatusOK, &product)
response := controllers.CreateProduct(product)
c.JSON(http.StatusOK, response)
})
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)
})
r.DELETE("/manufacturer/:id", func(c *gin.Context) {
controllers.DeleteManufacturer(c)
})
r.GET("/manufacturer", func(c *gin.Context) {
controllers.GetManufacturers(c)
})
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)
})
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)
}
}()
}