123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package middleware
- import (
- "github.com/gogf/gf/v2/errors/gcode"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/net/ghttp"
- "gof_ppw_api/api"
- "net/http"
- )
- type DefaultHandlerResponse struct {
- Code int `json:"code" dc:"响应状态码"`
- Message string `json:"msg" dc:"响应信息"`
- Data interface{} `json:"data" dc:"响应数据"`
- }
- func Response(r *ghttp.Request) {
- r.Middleware.Next()
- // fmt.Println("using res middleware after..")
- if r.Response.BufferLength() > 0 {
- return
- }
- var (
- msg string
- err = r.GetError()
- res = r.GetHandlerResponse()
- code = gerror.Code(err)
- fRes interface{}
- )
- if err != nil {
- if code == gcode.CodeNil {
- code = gcode.CodeInternalError
- }
- msg = err.Error()
- fRes = struct{}{}
- } else if r.Response.Status > 0 && r.Response.Status != http.StatusOK {
- msg = http.StatusText(r.Response.Status)
- switch r.Response.Status {
- case http.StatusNotFound:
- code = gcode.CodeNotFound
- case http.StatusForbidden:
- code = gcode.CodeNotAuthorized
- default:
- code = gcode.CodeUnknown
- }
- fRes = struct{}{}
- } else {
- code = gcode.CodeOK
- fRes = res.(*api.CommonRes).Data
- }
- r.Response.WriteJsonExit(DefaultHandlerResponse{
- Code: code.Code(),
- Message: msg,
- Data: fRes,
- })
- }
|