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

This commit is contained in:
wangchuxiao
2023-01-04 11:32:30 +08:00
3 changed files with 58 additions and 14 deletions
+3
View File
@@ -72,6 +72,9 @@ func ToAPIErrWithErr(err error) ErrInfo {
if errors.Is(errInfo, ErrArgs) {
return ErrArgs
}
if errors.Is(errInfo, ErrDatabase) {
return ErrDatabase
}
}
return ErrDefaultOther
+35 -1
View File
@@ -17,13 +17,25 @@ func NewCtx(c *gin.Context, api string) context.Context {
return context.WithValue(c, TraceLogKey, req)
}
func NewRpcCtx(c context.Context, rpc string, operationID string) context.Context {
req := &ApiInfo{ApiName: rpc, Funcs: &[]FuncInfo{}}
ctx := context.WithValue(c, TraceLogKey, req)
SetOperationID(ctx, operationID)
return ctx
}
func SetOperationID(ctx context.Context, operationID string) {
ctx.Value(TraceLogKey).(*ApiInfo).OperationID = operationID
}
func ShowLog(ctx context.Context) {
t := ctx.Value(TraceLogKey).(*ApiInfo)
log.Info(t.OperationID, "api: ", t.ApiName)
if ctx.Value(TraceLogKey).(*ApiInfo).GinCtx != nil {
log.Info(t.OperationID, "api: ", t.ApiName)
} else {
log.Info(t.OperationID, "rpc: ", t.ApiName)
}
for _, v := range *t.Funcs {
if v.Err != nil {
log.Error(t.OperationID, "func: ", v.FuncName, " args: ", v.Args, v.Err.Error())
@@ -69,6 +81,28 @@ func SetContextInfo(ctx context.Context, funcName string, err error, args ...int
*t.Funcs = append(*t.Funcs, funcInfo)
}
func SetRpcReqInfo(ctx context.Context, funcName string, req string) {
t := ctx.Value(TraceLogKey).(*ApiInfo)
var funcInfo FuncInfo
funcInfo.Args = make(map[string]interface{})
var args []interface{}
args = append(args, " rpc req ", req)
argsHandle(args, funcInfo.Args)
funcInfo.FuncName = funcName
*t.Funcs = append(*t.Funcs, funcInfo)
}
func SetRpcRespInfo(ctx context.Context, funcName string, resp string) {
t := ctx.Value(TraceLogKey).(*ApiInfo)
var funcInfo FuncInfo
funcInfo.Args = make(map[string]interface{})
var args []interface{}
args = append(args, " rpc resp ", resp)
argsHandle(args, funcInfo.Args)
funcInfo.FuncName = funcName
*t.Funcs = append(*t.Funcs, funcInfo)
}
func SetSuccess(ctx context.Context, funcName string, data interface{}) {
SetContextInfo(ctx, funcName, nil, "data", data)
ctx.Value(TraceLogKey).(*ApiInfo).GinCtx.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": data})