Добавил редактирование Производителя

This commit is contained in:
Владимир Шалимов 2024-06-06 12:56:17 +05:00
parent c6d9d1519e
commit f98cd12e51
5 changed files with 72 additions and 1 deletions

View File

@ -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)
}

View File

@ -0,0 +1,17 @@
meta {
name: EDIT Manufacture
type: http
seq: 4
}
patch {
url: {{host}}/manufacturer/{{manufacturerID}}
body: json
auth: none
}
body:json {
{
"name": "Test3"
}
}

View File

@ -1,4 +1,4 @@
vars {
host: http://localhost:8080
manufacturerID: 3
manufacturerID: 1
}

11
main.go
View File

@ -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

5
types/types.go Normal file
View File

@ -0,0 +1,5 @@
package types
type ManufacturerPatchRequest struct {
Name string `validate:"required"`
}