123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package api
- import (
- "errors"
- "github.com/0xJacky/Nginx-UI/model"
- "github.com/gin-gonic/gin"
- "github.com/uozi-tech/cosy"
- "github.com/uozi-tech/cosy/logger"
- "gorm.io/gorm"
- "net/http"
- )
- func CurrentUser(c *gin.Context) *model.User {
- return c.MustGet("user").(*model.User)
- }
- func ErrHandler(c *gin.Context, err error) {
- logger.GetLogger().Errorln(err)
- var cErr *cosy.Error
- switch {
- case errors.Is(err, gorm.ErrRecordNotFound):
- c.JSON(http.StatusNotFound, &cosy.Error{
- Code: http.StatusNotFound,
- Message: gorm.ErrRecordNotFound.Error(),
- })
- case errors.As(err, &cErr):
- c.JSON(http.StatusInternalServerError, cErr)
- default:
- c.JSON(http.StatusInternalServerError, &cosy.Error{
- Code: http.StatusInternalServerError,
- Message: err.Error(),
- })
- }
- }
- func SetSSEHeaders(c *gin.Context) {
- c.Header("Content-Type", "text/event-stream")
- c.Header("Cache-Control", "no-cache")
- c.Header("Connection", "keep-alive")
- // https://stackoverflow.com/questions/27898622/server-sent-events-stopped-work-after-enabling-ssl-on-proxy/27960243#27960243
- c.Header("X-Accel-Buffering", "no")
- }
|