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  }