42 lines
737 B
Go
42 lines
737 B
Go
package midware
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func OutputHandle(c *gin.Context) {
|
|
|
|
c.Next()
|
|
|
|
// 输出错误信息
|
|
|
|
if err, exists := c.Get("Error"); exists {
|
|
c.AbortWithStatusJSON(exitCode(c, 400), newErrorMessage(err))
|
|
return
|
|
}
|
|
|
|
// 输出请求结果
|
|
|
|
msg := c.GetString("Message")
|
|
|
|
if res, exists := c.Get("Payload"); exists || msg != "" {
|
|
data := newPayload(res, msg, c.GetString("JwtToken"))
|
|
c.AbortWithStatusJSON(exitCode(c, 200), data)
|
|
return
|
|
}
|
|
|
|
// 输出HTML内容
|
|
|
|
if htm := c.GetString("HTML"); htm != "" {
|
|
c.Header("Content-Type", "text/html; charset=utf-8")
|
|
c.String(200, htm)
|
|
c.Abort()
|
|
return
|
|
}
|
|
|
|
// 捕获异常返回
|
|
|
|
c.AbortWithStatusJSON(500, newErrorMessage("内部错误"))
|
|
|
|
}
|