You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Open-IM-Server/pkg/common/http/http_resp.go

44 lines
881 B

3 years ago
package http
3 years ago
import (
"Open_IM/pkg/common/constant"
3 years ago
"fmt"
3 years ago
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
3 years ago
//"Open_IM/pkg/cms_api_struct"
3 years ago
"net/http"
"github.com/gin-gonic/gin"
)
type BaseResp struct {
Code int32 `json:"code"`
ErrMsg string `json:"err_msg"`
Data interface{} `json:"data"`
}
3 years ago
func RespHttp200(ctx *gin.Context, err error, data interface{}) {
3 years ago
var resp BaseResp
switch e := err.(type) {
case constant.ErrInfo:
resp.Code = e.ErrCode
3 years ago
resp.ErrMsg = e.ErrMsg
3 years ago
default:
s, ok := status.FromError(err)
if !ok {
3 years ago
fmt.Println("need grpc format error")
3 years ago
return
}
resp.Code = int32(s.Code())
resp.ErrMsg = s.Message()
}
resp.Data = data
ctx.JSON(http.StatusOK, resp)
}
3 years ago
3 years ago
// warp error
3 years ago
func WrapError(err constant.ErrInfo, msg ...string) error {
return status.Error(codes.Code(err.ErrCode), err.ErrMsg+msg[0])
3 years ago
}