152 lines
4.6 KiB
Go
152 lines
4.6 KiB
Go
package erpserver
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"management/internal/erpserver/handler/common"
|
|
"management/internal/erpserver/handler/system"
|
|
v1 "management/internal/erpserver/service/v1"
|
|
mi "management/internal/pkg/mid"
|
|
"management/internal/pkg/session"
|
|
static "management/web/statics"
|
|
|
|
"github.com/drhin/logger"
|
|
"github.com/go-chi/chi/v5"
|
|
"github.com/go-chi/chi/v5/middleware"
|
|
)
|
|
|
|
func NewHTTPServer(
|
|
sm session.Manager,
|
|
log *logger.Logger,
|
|
menuService v1.MenuService,
|
|
auditLogService v1.AuditLogService,
|
|
captchaHandler *common.CaptchaHandler,
|
|
uploadHandler *common.UploadHandler,
|
|
configHandler *system.ConfigHandler,
|
|
homeHandler *system.HomeHandler,
|
|
userHandler *system.UserHandler,
|
|
loginLogHandler *system.LoginLogHandler,
|
|
auditHandler *system.AuditHandler,
|
|
menuHandler *system.MenuHandler,
|
|
roleHandler *system.RoleHandler,
|
|
departmentHandler *system.DepartmentHandler,
|
|
) *chi.Mux {
|
|
r := chi.NewRouter()
|
|
|
|
r.Use(middleware.RequestID)
|
|
r.Use(middleware.RealIP)
|
|
// r.Use(mid.Logger)
|
|
r.Use(middleware.Recoverer)
|
|
|
|
//staticServer := http.FileServer(http.Dir("./web/statics/"))
|
|
staticServer := http.FileServer(http.FS(static.StaticFS))
|
|
r.Handle("/statics/*", http.StripPrefix("/statics", staticServer))
|
|
|
|
uploadServer := http.FileServer(http.Dir("./public/"))
|
|
r.Handle("/public/*", http.StripPrefix("/public", uploadServer))
|
|
|
|
r.Group(func(r chi.Router) {
|
|
//r.Use(mi.NoSurf) // CSRF
|
|
//r.Use(mi.NoSurfContext) // CSRF Store Context
|
|
r.Use(mi.LoadSession(sm)) // Session
|
|
|
|
r.Get("/", userHandler.Login)
|
|
r.Get("/captcha", captchaHandler.Captcha)
|
|
r.Post("/login", userHandler.Login)
|
|
|
|
r.Group(func(r chi.Router) {
|
|
r.Use(mi.Authorize(sm, menuService))
|
|
|
|
r.Get("/logout", userHandler.Logout)
|
|
|
|
r.Get("/home.html", homeHandler.Home)
|
|
r.Get("/dashboard", homeHandler.Dashboard)
|
|
r.Get("/pear.json", configHandler.Pear)
|
|
|
|
r.Route("/upload", func(r chi.Router) {
|
|
r.Use(mi.Audit(sm, log))
|
|
r.Get("/img", uploadHandler.Img)
|
|
r.Get("/file", uploadHandler.File)
|
|
r.Get("/multi_files", uploadHandler.MultiFiles)
|
|
})
|
|
|
|
r.Route("/system", func(r chi.Router) {
|
|
//r.Use(mi.Audit(sm, log))
|
|
|
|
r.Get("/menus", menuHandler.Menus)
|
|
|
|
r.Route("/config", func(r chi.Router) {
|
|
r.Get("/list", configHandler.List)
|
|
r.Post("/list", configHandler.List)
|
|
r.Get("/add", configHandler.Add)
|
|
r.Get("/edit", configHandler.Edit)
|
|
r.Post("/save", configHandler.Save)
|
|
r.Post("/refresh_cache", configHandler.RefreshCache)
|
|
r.Post("/reset_pear", configHandler.ResetPear)
|
|
})
|
|
|
|
r.Route("/menu", func(r chi.Router) {
|
|
r.Get("/list", menuHandler.List)
|
|
r.Post("/list", menuHandler.List)
|
|
r.Get("/add", menuHandler.Add)
|
|
r.Get("/add_children", menuHandler.AddChildren)
|
|
r.Get("/edit", menuHandler.Edit)
|
|
r.Post("/save", menuHandler.Save)
|
|
r.Post("/data", menuHandler.Data)
|
|
r.Post("/refresh_cache", menuHandler.RefreshCache)
|
|
})
|
|
|
|
r.Route("/department", func(r chi.Router) {
|
|
r.Get("/list", departmentHandler.List)
|
|
r.Post("/list", departmentHandler.List)
|
|
r.Get("/add", departmentHandler.Add)
|
|
r.Get("/add_children", departmentHandler.AddChildren)
|
|
r.Get("/edit", departmentHandler.Edit)
|
|
r.Post("/save", departmentHandler.Save)
|
|
r.Post("/data", departmentHandler.Data)
|
|
r.Post("/refresh_cache", departmentHandler.RefreshCache)
|
|
r.Post("/rebuild_parent_path", departmentHandler.RebuildParentPath)
|
|
})
|
|
|
|
r.Route("/role", func(r chi.Router) {
|
|
r.Get("/list", roleHandler.List)
|
|
r.Post("/list", roleHandler.List)
|
|
r.Get("/add", roleHandler.Add)
|
|
r.Get("/add_children", roleHandler.AddChildren)
|
|
r.Get("/edit", roleHandler.Edit)
|
|
r.Post("/save", roleHandler.Save)
|
|
r.Post("/data", roleHandler.Data)
|
|
r.Post("/refresh_cache", roleHandler.RefreshCache)
|
|
r.Post("/rebuild_parent_path", roleHandler.RebuildParentPath)
|
|
r.Post("/refresh_role_menus", roleHandler.RefreshRoleMenus)
|
|
r.Get("/set_menu", roleHandler.SetMenu)
|
|
r.Post("/set_menu", roleHandler.SetMenu)
|
|
})
|
|
|
|
r.Route("/user", func(r chi.Router) {
|
|
r.Get("/list", userHandler.List)
|
|
r.Post("/list", userHandler.List)
|
|
r.Get("/add", userHandler.Add)
|
|
r.Get("/edit", userHandler.Edit)
|
|
r.Post("/save", userHandler.Save)
|
|
r.Get("/profile", userHandler.Profile)
|
|
r.Post("/data", userHandler.Data)
|
|
})
|
|
|
|
r.Route("/login_log", func(r chi.Router) {
|
|
r.Get("/list", loginLogHandler.List)
|
|
r.Post("/list", loginLogHandler.List)
|
|
})
|
|
|
|
r.Route("/audit_log", func(r chi.Router) {
|
|
r.Get("/list", auditHandler.List)
|
|
r.Post("/list", auditHandler.List)
|
|
})
|
|
})
|
|
})
|
|
|
|
})
|
|
|
|
return r
|
|
}
|