Добавил редактирование Производителя
This commit is contained in:
parent
c6d9d1519e
commit
23032a3688
|
@ -6,6 +6,7 @@ import (
|
||||||
"golang-test/database"
|
"golang-test/database"
|
||||||
"golang-test/libs"
|
"golang-test/libs"
|
||||||
"golang-test/message"
|
"golang-test/message"
|
||||||
|
"golang-test/types"
|
||||||
"golang-test/validators"
|
"golang-test/validators"
|
||||||
"log"
|
"log"
|
||||||
)
|
)
|
||||||
|
@ -88,3 +89,40 @@ func GetManufacturers(c *gin.Context) {
|
||||||
|
|
||||||
message.SendResponse(c, response)
|
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 {
|
vars {
|
||||||
host: http://localhost:8080
|
host: http://localhost:8080
|
||||||
manufacturerID: 3
|
manufacturerID: 1
|
||||||
}
|
}
|
||||||
|
|
11
main.go
11
main.go
|
@ -5,6 +5,7 @@ import (
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"golang-test/controllers"
|
"golang-test/controllers"
|
||||||
"golang-test/database"
|
"golang-test/database"
|
||||||
|
"golang-test/types"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
@ -44,6 +45,16 @@ func main() {
|
||||||
controllers.GetManufacturers(c)
|
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()
|
err := r.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package types
|
||||||
|
|
||||||
|
type ManufacturerPatchRequest struct {
|
||||||
|
Name string `validate:"required"`
|
||||||
|
}
|
Loading…
Reference in New Issue