47 lines
908 B
Go
47 lines
908 B
Go
package controllers
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/go-playground/validator/v10"
|
|
"golang-test/database"
|
|
"golang-test/libs"
|
|
"golang-test/message"
|
|
"golang-test/validators"
|
|
"log"
|
|
//"golang-test/migrations"
|
|
)
|
|
|
|
func CreateProduct(c *gin.Context, product database.Product) {
|
|
db := database.Connector()
|
|
validate := validators.Validate
|
|
response := message.Response{Status: 200}
|
|
|
|
err := validate.Struct(product)
|
|
|
|
if err != nil {
|
|
response.Error = libs.GetValidationErrors(err.(validator.ValidationErrors))
|
|
response.Status = 400
|
|
message.SendResponse(c, response)
|
|
return
|
|
}
|
|
|
|
err = db.Create(&product).Error
|
|
|
|
if err != nil {
|
|
log.Println(err.Error())
|
|
response.Error = gin.H{
|
|
"error": err.Error(),
|
|
}
|
|
|
|
response.Status = 500
|
|
message.SendResponse(c, response)
|
|
return
|
|
}
|
|
|
|
response.Message = gin.H{
|
|
"message": "Product created",
|
|
}
|
|
|
|
message.SendResponse(c, response)
|
|
}
|