feat: 统一sql命名、函数命名
This commit is contained in:
@@ -1,19 +0,0 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"server/internal/handler"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
func SetupPostRoutes(r chi.Router, h *handler.PostHandler) {
|
||||
r.Get("/post", h.ListPage)
|
||||
r.Get("/post/{slug}", h.GetPost)
|
||||
r.Get("/category/stats", h.ListCategoryStats)
|
||||
r.Get("/post/archive", h.ListArchives)
|
||||
r.Get("/post/tags", h.ListPostTags)
|
||||
}
|
||||
|
||||
func SetupWebRoutes(r chi.Router, h *handler.WebHandler) {
|
||||
|
||||
}
|
||||
@@ -5,35 +5,78 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"server/internal/config"
|
||||
"server/internal/handler"
|
||||
"server/internal/middleware"
|
||||
"server/internal/pkg/httputil"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
"go.uber.org/fx"
|
||||
)
|
||||
|
||||
type Handlers struct {
|
||||
fx.In
|
||||
// auth
|
||||
JwtMiddleware *middleware.JWTMiddleware
|
||||
AuthMiddleware *middleware.AuthMiddleware
|
||||
LoggerMiddleware *middleware.LoggerMiddleware
|
||||
// system
|
||||
AuthHandler *handler.AuthHandler
|
||||
SysUserHandler *handler.SysUserHandler
|
||||
SysRoleHandler *handler.SysRoleHandler
|
||||
SysMenuHandler *handler.SysMenuHandler
|
||||
SysApiHandler *handler.SysApiHandler
|
||||
SysFileHandler *handler.SysFileHandler
|
||||
SysPostHandler *handler.SysPostHandler
|
||||
CategoryHandler *handler.CategoryHandler
|
||||
TagHandler *handler.TagHandler
|
||||
// web
|
||||
PostHandler *handler.PostHandler
|
||||
WebHandler *handler.WebHandler
|
||||
type Group string
|
||||
|
||||
const (
|
||||
AdminPublicRoutes Group = "admin_public_routes"
|
||||
AdminRoutes Group = "admin_routes"
|
||||
SiteRoutes Group = "site_routes"
|
||||
)
|
||||
|
||||
type Registrar interface {
|
||||
Register(r chi.Router)
|
||||
}
|
||||
|
||||
func setupStaticFiles(r chi.Router) {
|
||||
type Params struct {
|
||||
fx.In
|
||||
|
||||
Jwt *middleware.JWTMiddleware
|
||||
Auth *middleware.AuthMiddleware
|
||||
Logger *middleware.LoggerMiddleware
|
||||
|
||||
AdminPublicRoutes []Registrar `group:"admin_public_routes"`
|
||||
AdminRoutes []Registrar `group:"admin_routes"`
|
||||
SiteRoutes []Registrar `group:"site_routes"`
|
||||
}
|
||||
|
||||
func NewRouter(p Params) *chi.Mux {
|
||||
mux := chi.NewRouter()
|
||||
|
||||
mux.Use(p.Logger.Middleware)
|
||||
|
||||
if config.IsDev() {
|
||||
// 开放静态目录
|
||||
registerStaticFiles(mux)
|
||||
|
||||
// 开发阶段:遍历所有已注册路由的清单接口(无鉴权)
|
||||
mux.Get("/api/admin/routes", ListRoutes(mux))
|
||||
}
|
||||
|
||||
mux.Route("/api/admin", func(r chi.Router) {
|
||||
// 免鉴权接口
|
||||
for _, route := range p.AdminPublicRoutes {
|
||||
route.Register(r)
|
||||
}
|
||||
|
||||
r.Group(func(r chi.Router) {
|
||||
// jwt 和 auth中间件
|
||||
r.Use(p.Jwt.Middleware)
|
||||
r.Use(p.Auth.Middleware(mux))
|
||||
|
||||
// 循环挂载所有后台业务模块
|
||||
for _, route := range p.AdminRoutes {
|
||||
route.Register(r)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
mux.Route("/api", func(r chi.Router) {
|
||||
for _, route := range p.SiteRoutes {
|
||||
route.Register(r)
|
||||
}
|
||||
})
|
||||
|
||||
return mux
|
||||
}
|
||||
|
||||
func registerStaticFiles(r chi.Router) {
|
||||
rootDir, _ := os.Getwd()
|
||||
|
||||
uploadsDir := filepath.Join(rootDir, "uploads")
|
||||
@@ -41,43 +84,34 @@ func setupStaticFiles(r chi.Router) {
|
||||
r.Handle("/static/*", http.StripPrefix("/static/", http.FileServer(http.Dir(uploadsDir))))
|
||||
}
|
||||
|
||||
func NewRouter(m Handlers) *chi.Mux {
|
||||
r := chi.NewRouter()
|
||||
|
||||
r.Use(m.LoggerMiddleware.Middleware)
|
||||
|
||||
if config.IsDev() {
|
||||
// 开放静态目录
|
||||
setupStaticFiles(r)
|
||||
}
|
||||
|
||||
r.Route("/api/admin", func(r chi.Router) {
|
||||
r.Post("/auth/login", m.AuthHandler.Login)
|
||||
r.Post("/auth/refresh-token", m.AuthHandler.RefreshToken)
|
||||
r.Post("/auth/logout", m.AuthHandler.Logout)
|
||||
|
||||
r.Group(func(r chi.Router) {
|
||||
r.Use(m.JwtMiddleware.Middleware)
|
||||
r.Use(m.AuthMiddleware.Middleware)
|
||||
|
||||
SetupSysUserRoutes(r, m.SysUserHandler)
|
||||
SetupSysRoleRoutes(r, m.SysRoleHandler)
|
||||
SetupSysMenuRoutes(r, m.SysMenuHandler)
|
||||
SetupSysApiRoutes(r, m.SysApiHandler)
|
||||
SetupSysFileRoutes(r, m.SysFileHandler)
|
||||
SetupCategoryRoutes(r, m.CategoryHandler)
|
||||
SetupSysPostRoutes(r, m.SysPostHandler)
|
||||
SetupTagRoutes(r, m.TagHandler)
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
// web api
|
||||
r.Route("/api", func(r chi.Router) {
|
||||
r.Group(func(r chi.Router) {
|
||||
SetupPostRoutes(r, m.PostHandler)
|
||||
SetupWebRoutes(r, m.WebHandler)
|
||||
})
|
||||
})
|
||||
return r
|
||||
// RouteInfo 路由信息
|
||||
type RouteInfo struct {
|
||||
Method string `json:"method"`
|
||||
Path string `json:"path"`
|
||||
}
|
||||
|
||||
// ListRoutes 遍历所有已注册的路由
|
||||
func ListRoutes(mux *chi.Mux) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
var routes []RouteInfo
|
||||
|
||||
err := chi.Walk(mux, func(method string, route string, _ http.Handler, _ ...func(http.Handler) http.Handler) error {
|
||||
routes = append(routes, RouteInfo{Method: method, Path: route})
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
httputil.Fail(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
httputil.Ok(w, routes)
|
||||
}
|
||||
}
|
||||
|
||||
func AsRegistrar(group Group, f any) any {
|
||||
return fx.Annotate(
|
||||
f,
|
||||
fx.As(new(Registrar)),
|
||||
fx.ResultTags(`group:"`+string(group)+`"`),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"server/internal/handler"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
// SetupSysUserRoutes 8
|
||||
func SetupSysUserRoutes(r chi.Router, h *handler.SysUserHandler) {
|
||||
r.Get("/user", h.ListPage)
|
||||
r.Get("/user/info", h.GetUserInfo)
|
||||
r.Get("/user/{id}/roles", h.GetRoles)
|
||||
r.Post("/user", h.Create)
|
||||
r.Patch("/user/{id}", h.Update)
|
||||
r.Put("/user/{id}/roles", h.SetRoles)
|
||||
r.Patch("/user/{id}/password", h.UpdatePassword)
|
||||
r.Delete("/user/{id}", h.Delete)
|
||||
}
|
||||
|
||||
// SetupSysRoleRoutes 9
|
||||
func SetupSysRoleRoutes(r chi.Router, h *handler.SysRoleHandler) {
|
||||
r.Get("/role", h.ListPage)
|
||||
r.Get("/role/{id}/menus", h.GetRoleMenus)
|
||||
r.Get("/role/{id}/apis", h.GetRoleApis)
|
||||
r.Get("/role/all", h.GetRoles)
|
||||
r.Post("/role", h.Create)
|
||||
r.Patch("/role/{id}", h.Update)
|
||||
r.Put("/role/{id}/menus", h.SetRoleMenus)
|
||||
r.Put("/role/{id}/apis", h.SetRoleApis)
|
||||
r.Delete("/role/{id}", h.Delete)
|
||||
}
|
||||
|
||||
// SetupSysMenuRoutes 5
|
||||
func SetupSysMenuRoutes(r chi.Router, h *handler.SysMenuHandler) {
|
||||
r.Get("/menu", h.ListPage)
|
||||
r.Get("/menu/all", h.GetMenus)
|
||||
r.Post("/menu", h.Create)
|
||||
r.Patch("/menu/{id}", h.Update)
|
||||
r.Delete("/menu/{id}", h.Delete)
|
||||
}
|
||||
|
||||
// SetupSysApiRoutes 6
|
||||
func SetupSysApiRoutes(r chi.Router, h *handler.SysApiHandler) {
|
||||
r.Get("/api", h.ListPage)
|
||||
r.Get("/api/all", h.GetAllSysApis)
|
||||
r.Get("/api/group-names", h.GetApiGroupNames)
|
||||
r.Post("/api", h.Create)
|
||||
r.Patch("/api/{id}", h.Update)
|
||||
r.Delete("/api/{id}", h.Delete)
|
||||
}
|
||||
|
||||
// SetupSysFileRoutes 2
|
||||
func SetupSysFileRoutes(r chi.Router, h *handler.SysFileHandler) {
|
||||
r.Get("/file", h.ListPage)
|
||||
r.Post("/file", h.Upload)
|
||||
}
|
||||
|
||||
// SetupSysPostRoutes 5
|
||||
func SetupSysPostRoutes(r chi.Router, h *handler.SysPostHandler) {
|
||||
r.Get("/post", h.ListPage)
|
||||
r.Get("/post/{id}", h.GetPostById)
|
||||
r.Post("/post", h.Create)
|
||||
r.Patch("/post/{id}", h.Update)
|
||||
r.Delete("/post/{id}", h.Delete)
|
||||
}
|
||||
|
||||
// SetupCategoryRoutes 5
|
||||
func SetupCategoryRoutes(r chi.Router, h *handler.CategoryHandler) {
|
||||
r.Get("/category", h.ListPage)
|
||||
r.Get("/category/all", h.ListAll)
|
||||
r.Post("/category", h.Create)
|
||||
r.Patch("/category/{id}", h.Update)
|
||||
r.Delete("/category/{id}", h.Delete)
|
||||
}
|
||||
|
||||
// SetupTagRoutes 5
|
||||
func SetupTagRoutes(r chi.Router, h *handler.TagHandler) {
|
||||
r.Get("/tag", h.ListPage)
|
||||
r.Get("/tag/all", h.ListAll)
|
||||
r.Post("/tag", h.Create)
|
||||
r.Patch("/tag/{id}", h.Update)
|
||||
r.Delete("/tag/{id}", h.Delete)
|
||||
}
|
||||
Reference in New Issue
Block a user