Добавил редактирование Производителя
This commit is contained in:
parent
c6d9d1519e
commit
23032a3688
|
@ -6,6 +6,7 @@ import (
|
|||
"golang-test/database"
|
||||
"golang-test/libs"
|
||||
"golang-test/message"
|
||||
"golang-test/types"
|
||||
"golang-test/validators"
|
||||
"log"
|
||||
)
|
||||
|
@ -88,3 +89,40 @@ func GetManufacturers(c *gin.Context) {
|
|||
|
||||
message.SendResponse(c, response)
|
||||
}
|
||||
|
||||
func EditManufacture(c *gin.Context, editedManufacturer types.ManufacturerPatchRequest) {
|
||||
db := database.Connector()
|
||||
response := message.Response{Status: 200}
|
||||
id := c.Param("id")
|
||||
|
||||
validate := validators.Validate
|
||||
err := validate.Struct(editedManufacturer)
|
||||
|
||||
if err != nil {
|
||||
response.Error = libs.GetValidationErrors(err.(validator.ValidationErrors))
|
||||
response.Status = 400
|
||||
message.SendResponse(c, response)
|
||||
return
|
||||
}
|
||||
|
||||
var manufacturer database.Manufacturer
|
||||
|
||||
if db.First(&manufacturer, id).Error != nil {
|
||||
response.Error = gin.H{
|
||||
"error": "Manufacturer with id '" + id + "' not found",
|
||||
}
|
||||
response.Status = 404
|
||||
message.SendResponse(c, response)
|
||||
return
|
||||
}
|
||||
|
||||
db.First(&manufacturer, id)
|
||||
manufacturer.Name = editedManufacturer.Name
|
||||
db.Save(&manufacturer)
|
||||
|
||||
response.Message = gin.H{
|
||||
"message": "Manufacturer edited",
|
||||
}
|
||||
|
||||
message.SendResponse(c, response)
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
vars {
|
||||
host: http://localhost:8080
|
||||
manufacturerID: 3
|
||||
manufacturerID: 1
|
||||
}
|
||||
|
|
11
main.go
11
main.go
|
@ -5,6 +5,7 @@ import (
|
|||
"github.com/gin-gonic/gin"
|
||||
"golang-test/controllers"
|
||||
"golang-test/database"
|
||||
"golang-test/types"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
@ -44,6 +45,16 @@ func main() {
|
|||
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
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
package types
|
||||
|
||||
type ManufacturerPatchRequest struct {
|
||||
Name string `validate:"required"`
|
||||
}
|
Loading…
Reference in New Issue