2022-11-16 10:20:07 +00:00
|
|
|
package controller
|
|
|
|
|
|
|
|
import (
|
2023-01-13 11:32:50 +00:00
|
|
|
"github.com/gin-contrib/gzip"
|
2022-11-16 10:20:07 +00:00
|
|
|
"github.com/gin-contrib/static"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/huoxue1/qinglong-go/api"
|
2023-02-03 04:43:37 +00:00
|
|
|
"io/ioutil"
|
|
|
|
"strings"
|
2022-11-16 10:20:07 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func Router() *gin.Engine {
|
|
|
|
engine := gin.New()
|
2022-11-20 14:11:47 +00:00
|
|
|
engine.Use(gin.Logger())
|
|
|
|
engine.Use(gin.Recovery())
|
2023-04-22 14:17:05 +00:00
|
|
|
engine.Use(gzip.Gzip(gzip.BestSpeed))
|
2022-11-16 10:20:07 +00:00
|
|
|
engine.Use(static.Serve("/", static.LocalFile("static/dist/", false)))
|
|
|
|
engine.NoRoute(func(ctx *gin.Context) {
|
2023-02-03 04:43:37 +00:00
|
|
|
accept := ctx.Request.Header.Get("Accept")
|
|
|
|
flag := strings.Contains(accept, "text/html")
|
|
|
|
if flag {
|
|
|
|
content, err := ioutil.ReadFile("static/dist/index.html")
|
|
|
|
if (err) != nil {
|
|
|
|
ctx.Writer.WriteHeader(404)
|
|
|
|
_, _ = ctx.Writer.WriteString("Not Found")
|
|
|
|
return
|
|
|
|
}
|
|
|
|
ctx.Writer.WriteHeader(200)
|
|
|
|
ctx.Writer.Header().Add("Accept", "text/html")
|
|
|
|
_, _ = ctx.Writer.Write(content)
|
|
|
|
ctx.Writer.Flush()
|
2022-11-16 10:20:07 +00:00
|
|
|
}
|
|
|
|
})
|
2022-11-20 14:11:47 +00:00
|
|
|
api.Api(engine.Group("/api", api.Jwt()))
|
|
|
|
api.Open(engine.Group("/open", api.OpenJwt()))
|
2022-11-16 10:20:07 +00:00
|
|
|
|
|
|
|
return engine
|
|
|
|
}
|