bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/pkg/apiserver/controllers/v1/errors.go (about) 1 package v1 2 3 import ( 4 "net/http" 5 6 "bitbucket.org/Aishee/synsec/pkg/database" 7 "github.com/gin-gonic/gin" 8 "github.com/pkg/errors" 9 ) 10 11 func (c *Controller) HandleDBErrors(gctx *gin.Context, err error) { 12 switch errors.Cause(err) { 13 case database.ItemNotFound: 14 gctx.JSON(http.StatusNotFound, gin.H{"message": err.Error()}) 15 return 16 case database.UserExists: 17 gctx.JSON(http.StatusForbidden, gin.H{"message": err.Error()}) 18 return 19 case database.HashError: 20 gctx.JSON(http.StatusBadRequest, gin.H{"message": err.Error()}) 21 return 22 case database.InsertFail: 23 gctx.JSON(http.StatusInternalServerError, gin.H{"message": err.Error()}) 24 return 25 case database.QueryFail: 26 gctx.JSON(http.StatusInternalServerError, gin.H{"message": err.Error()}) 27 return 28 case database.ParseTimeFail: 29 gctx.JSON(http.StatusInternalServerError, gin.H{"message": err.Error()}) 30 return 31 case database.ParseDurationFail: 32 gctx.JSON(http.StatusInternalServerError, gin.H{"message": err.Error()}) 33 return 34 default: 35 gctx.JSON(http.StatusInternalServerError, gin.H{"message": err.Error()}) 36 return 37 } 38 }