Files
AShareView/server/router/router.go
T
曾志威 9f9dd1275a
continuous-integration/drone Build is failing
init
2026-05-10 19:23:04 +08:00

42 lines
1.0 KiB
Go

package router
import (
"ashareview-server/handler"
"net/http"
"os"
"path/filepath"
"github.com/gin-gonic/gin"
)
func Setup(r *gin.Engine, dh *handler.DashboardHandler) {
api := r.Group("/api")
{
api.GET("/dashboard/summary", dh.GetSummary)
api.GET("/dashboard/daily", dh.GetDailySummary)
api.GET("/dashboard/consecutive", dh.GetConsecutiveLimits)
}
// Serve frontend static files
staticDir := "static"
if _, err := os.Stat(staticDir); os.IsNotExist(err) {
// Try relative to executable
exePath, _ := os.Executable()
staticDir = filepath.Join(filepath.Dir(exePath), "static")
}
r.Static("/assets", filepath.Join(staticDir, "assets"))
r.StaticFile("/vite.svg", filepath.Join(staticDir, "vite.svg"))
// SPA fallback: all non-API routes serve index.html
r.NoRoute(func(c *gin.Context) {
path := c.Request.URL.Path
if len(path) < 4 || path[:4] != "/api" {
indexPath := filepath.Join(staticDir, "index.html")
c.File(indexPath)
return
}
c.JSON(http.StatusNotFound, gin.H{"error": "not found"})
})
}