From 0f56c97724310acafbe7e4ec262925595e534c44 Mon Sep 17 00:00:00 2001 From: Simon Ding Date: Tue, 25 Mar 2025 10:36:52 +0800 Subject: [PATCH] feat: return custom error code --- server/common.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server/common.go b/server/common.go index 89cce05..e26062f 100644 --- a/server/common.go +++ b/server/common.go @@ -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),