Merge branch 'errcode' of github.com:OpenIMSDK/Open-IM-Server into errcode

This commit is contained in:
wangchuxiao 2023-03-15 17:59:56 +08:00
commit 2a60974ebd
2 changed files with 14 additions and 5 deletions

View File

@ -2,7 +2,6 @@ package apiresp
import ( import (
"OpenIM/pkg/errs" "OpenIM/pkg/errs"
"fmt"
) )
type apiResponse struct { type apiResponse struct {
@ -22,7 +21,7 @@ func apiError(err error) *apiResponse {
unwrap := errs.Unwrap(err) unwrap := errs.Unwrap(err)
var dlt string var dlt string
if unwrap != err { if unwrap != err {
dlt = fmt.Sprintf("%+v", dlt) dlt = err.Error()
} }
if codeErr, ok := unwrap.(errs.CodeError); ok { if codeErr, ok := unwrap.(errs.CodeError); ok {
return &apiResponse{ErrCode: codeErr.Code(), ErrMsg: codeErr.Msg(), ErrDlt: dlt} return &apiResponse{ErrCode: codeErr.Code(), ErrMsg: codeErr.Msg(), ErrDlt: dlt}

View File

@ -6,6 +6,7 @@ import (
"OpenIM/pkg/common/constant" "OpenIM/pkg/common/constant"
"OpenIM/pkg/common/db/cache" "OpenIM/pkg/common/db/cache"
"OpenIM/pkg/common/db/controller" "OpenIM/pkg/common/db/controller"
"OpenIM/pkg/common/log"
"OpenIM/pkg/common/tokenverify" "OpenIM/pkg/common/tokenverify"
"OpenIM/pkg/errs" "OpenIM/pkg/errs"
"bytes" "bytes"
@ -74,7 +75,8 @@ func GinParseOperationID() gin.HandlerFunc {
if operationID == "" { if operationID == "" {
body, err := io.ReadAll(c.Request.Body) body, err := io.ReadAll(c.Request.Body)
if err != nil { if err != nil {
c.String(400, "read request body error: "+err.Error()) log.ZWarn(c, "read request body error", errs.ErrArgs.Wrap("read request body error: "+err.Error()))
apiresp.GinError(c, errs.ErrArgs.Wrap("read request body error: "+err.Error()))
c.Abort() c.Abort()
return return
} }
@ -82,12 +84,14 @@ func GinParseOperationID() gin.HandlerFunc {
OperationID string `json:"operationID"` OperationID string `json:"operationID"`
}{} }{}
if err := json.Unmarshal(body, &req); err != nil { if err := json.Unmarshal(body, &req); err != nil {
c.String(400, "get operationID error: "+err.Error()) log.ZWarn(c, "json unmarshal error", errs.ErrArgs.Wrap(err.Error()))
apiresp.GinError(c, errs.ErrArgs.Wrap("json unmarshal error"+err.Error()))
c.Abort() c.Abort()
return return
} }
if req.OperationID == "" { if req.OperationID == "" {
c.String(400, "operationID empty") log.ZWarn(c, "header must have operationID", errs.ErrArgs.Wrap(err.Error()))
apiresp.GinError(c, errs.ErrArgs.Wrap("header must have operationID"+err.Error()))
c.Abort() c.Abort()
return return
} }
@ -109,23 +113,27 @@ func GinParseToken(rdb redis.UniversalClient) gin.HandlerFunc {
case http.MethodPost: case http.MethodPost:
token := c.Request.Header.Get(constant.Token) token := c.Request.Header.Get(constant.Token)
if token == "" { if token == "" {
log.ZWarn(c, "header get token error", errs.ErrArgs.Wrap("header must have token"))
apiresp.GinError(c, errs.ErrArgs.Wrap("header must have token")) apiresp.GinError(c, errs.ErrArgs.Wrap("header must have token"))
c.Abort() c.Abort()
return return
} }
claims, err := tokenverify.GetClaimFromToken(token) claims, err := tokenverify.GetClaimFromToken(token)
if err != nil { if err != nil {
log.ZWarn(c, "jwt get token error", errs.ErrTokenUnknown.Wrap())
apiresp.GinError(c, errs.ErrTokenUnknown.Wrap()) apiresp.GinError(c, errs.ErrTokenUnknown.Wrap())
c.Abort() c.Abort()
return return
} }
m, err := dataBase.GetTokensWithoutError(c, claims.UID, claims.Platform) m, err := dataBase.GetTokensWithoutError(c, claims.UID, claims.Platform)
if err != nil { if err != nil {
log.ZWarn(c, "cache get token error", errs.ErrTokenNotExist.Wrap())
apiresp.GinError(c, errs.ErrTokenNotExist.Wrap()) apiresp.GinError(c, errs.ErrTokenNotExist.Wrap())
c.Abort() c.Abort()
return return
} }
if len(m) == 0 { if len(m) == 0 {
log.ZWarn(c, "cache do not exist token error", errs.ErrTokenNotExist.Wrap())
apiresp.GinError(c, errs.ErrTokenNotExist.Wrap()) apiresp.GinError(c, errs.ErrTokenNotExist.Wrap())
c.Abort() c.Abort()
return return
@ -134,10 +142,12 @@ func GinParseToken(rdb redis.UniversalClient) gin.HandlerFunc {
switch v { switch v {
case constant.NormalToken: case constant.NormalToken:
case constant.KickedToken: case constant.KickedToken:
log.ZWarn(c, "cache kicked token error", errs.ErrTokenKicked.Wrap())
apiresp.GinError(c, errs.ErrTokenKicked.Wrap()) apiresp.GinError(c, errs.ErrTokenKicked.Wrap())
c.Abort() c.Abort()
return return
default: default:
log.ZWarn(c, "cache unknown token error", errs.ErrTokenUnknown.Wrap())
apiresp.GinError(c, errs.ErrTokenUnknown.Wrap()) apiresp.GinError(c, errs.ErrTokenUnknown.Wrap())
c.Abort() c.Abort()
return return