DriveLinked/pkg/dto/response.go

60 lines
1.1 KiB
Go
Raw Normal View History

2022-04-03 12:30:50 +08:00
package dto
import (
"drive-linked/pkg/serializer"
"github.com/kataras/iris/v12"
"net/http"
)
type Response struct {
Ctx iris.Context
}
func NewResponse(ctx iris.Context) *Response {
return &Response{Ctx: ctx}
}
const errJsonUnmarshalMsg = "{\"code\":500,\"msg\":\"Json解析错误请联系管理员\",\"data\":null}"
// 成功 统一处理
func (r *Response) Success(data interface{}) {
res := serializer.Response{
Code: 200,
Msg: "",
Data: data,
}
_, err := r.Ctx.JSON(res)
if err != nil {
r.Ctx.Write([]byte(errJsonUnmarshalMsg))
return
}
}
// 失败 统一处理
func (r *Response) Error(code int32, msg string) {
res := serializer.Response{
Code: code,
Msg: msg,
Data: nil,
}
_, err := r.Ctx.JSON(res)
if err != nil {
r.Ctx.Write([]byte(errJsonUnmarshalMsg))
return
}
}
// 参数类型错误
func (r *Response) ErrInvalidParamType() (err error) {
res := serializer.Response{
Code: http.StatusBadRequest,
Msg: "参数类型错误",
Data: nil,
}
_, err = r.Ctx.JSON(res)
if err != nil {
return err
}
return nil
}