2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-05 05:47:17 +08:00
Files
panel/app/http/middleware/status.go

39 lines
973 B
Go

package middleware
import (
"github.com/goravel/framework/contracts/http"
"panel/internal"
)
// Status 检查程序状态
func Status() http.Middleware {
return func(ctx http.Context) {
switch internal.Status {
case internal.StatusUpgrade:
ctx.Request().AbortWithStatusJson(http.StatusServiceUnavailable, http.Json{
"message": "面板升级中,请稍后",
})
return
case internal.StatusMaintain:
ctx.Request().AbortWithStatusJson(http.StatusServiceUnavailable, http.Json{
"message": "面板正在运行维护,请稍后",
})
return
case internal.StatusClosed:
ctx.Request().AbortWithStatusJson(http.StatusForbidden, http.Json{
"message": "面板已关闭",
})
return
case internal.StatusFailed:
ctx.Request().AbortWithStatusJson(http.StatusInternalServerError, http.Json{
"message": "面板运行出错,请检查排除或联系支持",
})
return
default:
ctx.Request().Next()
return
}
}
}