diff --git a/internal/controller/tokenController.go b/internal/controller/tokenController.go index 4c860ed..f55770a 100644 --- a/internal/controller/tokenController.go +++ b/internal/controller/tokenController.go @@ -3,6 +3,7 @@ package controller import ( "dypid/internal/db" "dypid/internal/global" + "dypid/internal/model" "net/http" "strconv" @@ -11,7 +12,11 @@ import ( ) func ListTokenHandler(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{"result": db.ListToken()}) + c.JSON(http.StatusOK, model.APIResponse{ + Code: 200, + Message: "获取所有token成功", + Data: db.ListToken(), + }) } func CreateTokenHandler(c *gin.Context) { @@ -23,24 +28,37 @@ func CreateTokenHandler(c *gin.Context) { Notes string `form:"notes"` }{} if err := c.ShouldBindQuery(&input); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "参数不能为空 " + err.Error()}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "参数不能为空 " + err.Error(), + }) return } + //检查Token是否存在 if db.CheckToken(input.Token) { - c.JSON(http.StatusBadRequest, gin.H{"error": "创建Token失败,Token已经存在"}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "创建Token失败,Token已经存在,请勿重复创建", + }) return } //创建Token err := db.CreateToken(input.Token, input.DedupObject, input.DataFormat, input.Notes) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + c.JSON(http.StatusInternalServerError, model.APIResponse{ + Code: 500, + Message: err.Error(), + }) return } //返回 - c.JSON(http.StatusOK, gin.H{"result": "ok"}) + c.JSON(http.StatusOK, model.APIResponse{ + Code: 200, + Message: "创建Token成功", + }) } func UpdateTokenHandler(c *gin.Context) { @@ -51,22 +69,35 @@ func UpdateTokenHandler(c *gin.Context) { Notes string `form:"notes"` }{} if err := c.ShouldBindQuery(&input); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "参数不能为空 " + err.Error()}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "参数不能为空 " + err.Error(), + }) return } + //检查Token是否存在 if !db.CheckToken(input.Token) { - c.JSON(http.StatusBadRequest, gin.H{"error": "更改失败,Token不存在"}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "更改失败,Token不存在", + }) return } err := db.UpdateToken(input.Token, input.DedupObject, input.DataFormat, input.Notes) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + c.JSON(http.StatusInternalServerError, model.APIResponse{ + Code: 500, + Message: err.Error(), + }) return } - c.JSON(http.StatusOK, gin.H{"result": "ok"}) + c.JSON(http.StatusOK, model.APIResponse{ + Code: 200, + Message: "更改Token成功", + }) } func DeleteTokenHandler(c *gin.Context) { @@ -74,22 +105,35 @@ func DeleteTokenHandler(c *gin.Context) { Token string `form:"token" binding:"required"` }{} if err := c.ShouldBindQuery(&input); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "参数不能为空 " + err.Error()}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "参数不能为空 " + err.Error(), + }) return } + //检查Token是否存在 if !db.CheckToken(input.Token) { - c.JSON(http.StatusBadRequest, gin.H{"error": "删除Token失败,Token不存在"}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "删除Token失败,Token不存在", + }) return } err := db.DeleteToken(input.Token) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + c.JSON(http.StatusInternalServerError, model.APIResponse{ + Code: 500, + Message: err.Error(), + }) return } - c.JSON(http.StatusOK, gin.H{"result": "ok"}) + c.JSON(http.StatusOK, model.APIResponse{ + Code: 200, + Message: "删除Token成功", + }) } func GetTokenInfoHandler(c *gin.Context) { @@ -97,23 +141,36 @@ func GetTokenInfoHandler(c *gin.Context) { Token string `form:"token" binding:"required"` }{} if err := c.ShouldBindQuery(&input); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "Token不能为空"}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "参数不能为空 " + err.Error(), + }) return } + //检查Token是否存在 if !db.CheckToken(input.Token) { - c.JSON(http.StatusBadRequest, gin.H{"error": "获取信息失败,Token不存在"}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "获取信息失败,Token不存在", + }) return } dedupObject, err := db.GetDedupObject(input.Token) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "获取去重对象失败 " + err.Error()}) + c.JSON(http.StatusInternalServerError, model.APIResponse{ + Code: 500, + Message: "获取去重对象失败 " + err.Error(), + }) return } dataFormat, err := db.GetDataFormat(input.Token) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "获取数据格式失败 " + err.Error()}) + c.JSON(http.StatusInternalServerError, model.APIResponse{ + Code: 500, + Message: "获取数据格式失败 " + err.Error(), + }) return } @@ -130,7 +187,11 @@ func GetTokenInfoHandler(c *gin.Context) { output.DedupItemsNumber = global.RDB.CFInfo(global.RCtx, "dedup:"+input.Token+":"+dedupObject).Val().NumItemsInserted output.CacheListNumber = global.RDB.LLen(global.RCtx, "list:"+input.Token).Val() - c.JSON(http.StatusOK, gin.H{"result": output}) + c.JSON(http.StatusOK, model.APIResponse{ + Code: 200, + Message: "获取Token信息成功", + Data: output, + }) } func DeleteTokenInfoHandler(c *gin.Context) { @@ -142,24 +203,29 @@ func DeleteTokenInfoHandler(c *gin.Context) { BothNumber string `form:"both_number"` }{} if err := c.ShouldBindQuery(&input); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "Token不能为空"}) - return - } - //检查Token是否存在 - if !db.CheckToken(input.Token) { - c.JSON(http.StatusBadRequest, gin.H{"error": "删除Token失败,Token不存在"}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "参数不能为空 " + err.Error(), + }) return } - //检查token是否存在 - _, err := db.GetDedupObject(input.Token) - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": "Token不存在" + err.Error()}) + //检查Token是否存在 + if !db.CheckToken(input.Token) { + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "删除Token信息失败,Token不存在", + }) return } + + //获取去重对象 dedupObject, err := db.GetDedupObject(input.Token) if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "获取去重对象失败 " + err.Error(), + }) return } @@ -173,7 +239,10 @@ func DeleteTokenInfoHandler(c *gin.Context) { default: num, err := strconv.Atoi(input.DedupBF) if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "dedup_bf数量设置错误 " + err.Error()}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "dedup_bf数量设置错误 " + err.Error(), + }) return } @@ -196,7 +265,10 @@ func DeleteTokenInfoHandler(c *gin.Context) { return nil }) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + c.JSON(http.StatusInternalServerError, model.APIResponse{ + Code: 500, + Message: "删除去重对象失败 " + err.Error(), + }) return } @@ -213,7 +285,10 @@ func DeleteTokenInfoHandler(c *gin.Context) { default: num, err := strconv.Atoi(input.CacheList) if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "cache_list数量设置错误 " + err.Error()}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 400, + Message: "cache_list数量设置错误 " + err.Error(), + }) return } @@ -226,7 +301,10 @@ func DeleteTokenInfoHandler(c *gin.Context) { default: num, err := strconv.Atoi(input.BothNumber) if err != nil { - c.JSON(http.StatusBadRequest, gin.H{"error": "both_number数量设置错误 " + err.Error()}) + c.JSON(http.StatusBadRequest, model.APIResponse{ + Code: 500, + Message: "both_number数量设置错误 " + err.Error(), + }) return } @@ -248,12 +326,18 @@ func DeleteTokenInfoHandler(c *gin.Context) { return nil }) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + c.JSON(http.StatusInternalServerError, model.APIResponse{ + Code: 500, + Message: "删除Token信息失败 " + err.Error(), + }) return } } } //输出信息 - c.JSON(http.StatusOK, gin.H{"result": "ok"}) + c.JSON(http.StatusOK, model.APIResponse{ + Code: 200, + Message: "删除Token信息成功", + }) } diff --git a/internal/model/model.go b/internal/model/model.go new file mode 100644 index 0000000..443b561 --- /dev/null +++ b/internal/model/model.go @@ -0,0 +1,7 @@ +package model + +type APIResponse struct { + Code int `json:"code"` + Message string `json:"message"` + Data any `json:"data"` +} diff --git a/main.go b/main.go index 81e4712..8829d4a 100644 --- a/main.go +++ b/main.go @@ -22,7 +22,10 @@ func main() { //初始化一个http服务对象 gin.SetMode(config.APPConfig.RunMode) r := gin.New() - r.Use(gin.Recovery()) + if config.APPConfig.RunMode == "debug" { + r.Use(gin.Logger()) //日志处理 + } + r.Use(gin.Recovery()) //错误处理 r.Use(cors.Default()) //跨域设置 //注册网页服务(Vue)