mirror of
https://github.com/simon-ding/polaris.git
synced 2026-02-06 15:10:49 +08:00
feat: return custom error code
This commit is contained in:
@@ -7,12 +7,26 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
type Coder interface {
|
||||
Code() int
|
||||
}
|
||||
|
||||
|
||||
func HttpHandler(f func(*gin.Context) (interface{}, error)) gin.HandlerFunc {
|
||||
return func(ctx *gin.Context) {
|
||||
|
||||
r, err := f(ctx)
|
||||
if err != nil {
|
||||
log.Errorf("url %v return error: %v", ctx.Request.URL, err)
|
||||
cc, ok := err.(Coder)
|
||||
if ok {
|
||||
ctx.JSON(200, Response{
|
||||
Code: cc.Code(),
|
||||
Message: fmt.Sprintf("%v", err),
|
||||
})
|
||||
return
|
||||
|
||||
}
|
||||
ctx.JSON(200, Response{
|
||||
Code: 1,
|
||||
Message: fmt.Sprintf("%v", err),
|
||||
|
||||
Reference in New Issue
Block a user