45 lines
863 B
Go
45 lines
863 B
Go
package result
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
|
|
"muyu-apiserver/pkg/xerr"
|
|
|
|
"github.com/zeromicro/go-zero/rest/httpx"
|
|
)
|
|
|
|
type Response struct {
|
|
Code int `json:"code"`
|
|
Msg string `json:"msg"`
|
|
Data interface{} `json:"data,omitempty"`
|
|
}
|
|
|
|
func Success(ctx context.Context, w http.ResponseWriter, data interface{}) {
|
|
httpx.OkJsonCtx(ctx, w, &Response{
|
|
Code: xerr.OK,
|
|
Msg: "success",
|
|
Data: data,
|
|
})
|
|
}
|
|
|
|
func Fail(ctx context.Context, w http.ResponseWriter, err error) {
|
|
var resp Response
|
|
switch e := err.(type) {
|
|
case *xerr.BizError:
|
|
resp.Code = e.Code
|
|
resp.Msg = e.Msg
|
|
default:
|
|
resp.Code = xerr.ServerError
|
|
resp.Msg = err.Error()
|
|
}
|
|
httpx.OkJsonCtx(ctx, w, &resp)
|
|
}
|
|
|
|
func ParamError(ctx context.Context, w http.ResponseWriter, err error) {
|
|
httpx.OkJsonCtx(ctx, w, &Response{
|
|
Code: xerr.ParamError,
|
|
Msg: err.Error(),
|
|
})
|
|
}
|