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