update error

This commit is contained in:
celogeek 2022-05-07 20:15:00 +02:00
parent c453422cac
commit 632b27639a
Signed by: celogeek
GPG Key ID: E6B7BDCFC446233A
2 changed files with 20 additions and 17 deletions

View File

@ -1,6 +1,8 @@
package photosapi package photosapi
import ( import (
"strings"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
@ -13,9 +15,17 @@ func (s *Service) HandleError(c *gin.Context) {
c.Next() c.Next()
if err := c.Errors.Last(); err != nil { if err := c.Errors.Last(); err != nil {
if err.IsType(gin.ErrorTypeBind) {
c.JSON(-1, gin.H{ c.JSON(-1, gin.H{
"status": StatusFailed, "status": StatusFailed,
"error": err.Err.Error(), "error": "binding error",
"details": strings.Split(err.Error(), "\n"),
})
} else {
c.JSON(-1, gin.H{
"status": StatusFailed,
"error": err.Error(),
}) })
} }
} }
}

View File

@ -36,21 +36,14 @@ func (s *Service) UploadCreate(c *gin.Context) {
} }
type UploadPartRequest struct { type UploadPartRequest struct {
UploadId string `uri:"upload_id" binding:"required,uuid"` UploadId string `form:"upload_id" binding:"required,uuid"`
Part uint `uri:"part" binding:"required"` Part uint `form:"part" binding:"required"`
} PartSha256 string `form:"sha256" binding:"required,sha256"`
type UploadPartHeaders struct {
PartSha256 string `header:"x-part-sha256" binding:"required,lowercase,alphanum,len=64"`
} }
func (s *Service) UploadPart(c *gin.Context) { func (s *Service) UploadPart(c *gin.Context) {
var uploadPart UploadPartRequest var uploadPart UploadPartRequest
if c.BindUri(&uploadPart) != nil { if c.BindQuery(&uploadPart) != nil {
return
}
var uploadPartHeaders UploadPartHeaders
if c.BindHeader(&uploadPartHeaders) != nil {
return return
} }
@ -101,7 +94,7 @@ func (s *Service) UploadCancel(c *gin.Context) {
} }
type UploadCompleteRequest struct { type UploadCompleteRequest struct {
Sha256 string `json:"sha256" binding:"required,lowercase,alphanum,len=64"` Sha256 string `json:"sha256" binding:"required,sha256"`
Name string `json:"name" binding:"required"` Name string `json:"name" binding:"required"`
Parts uint `json:"parts" binding:"required"` Parts uint `json:"parts" binding:"required"`
} }
@ -121,7 +114,7 @@ func (s *Service) UploadComplete(c *gin.Context) {
func (s *Service) UploadInit() { func (s *Service) UploadInit() {
upload := s.Gin.Group("/upload") upload := s.Gin.Group("/upload")
upload.GET("/create", s.UploadCreate) upload.GET("/create", s.UploadCreate)
upload.POST("/part/:upload_id/:part", s.UploadPart) upload.POST("/part", s.UploadPart)
upload.GET("/cancel/:upload_id", s.UploadCancel) upload.GET("/cancel/:upload_id", s.UploadCancel)
upload.POST("/complete/:upload_id", s.UploadComplete) upload.POST("/complete/:upload_id", s.UploadComplete)
} }