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  }