46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package routing
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"git.markbailey.dev/cerbervs/ptpp/handlers/admin"
|
|
"git.markbailey.dev/cerbervs/ptpp/handlers/shared"
|
|
"git.markbailey.dev/cerbervs/ptpp/lib/middleware"
|
|
)
|
|
|
|
var (
|
|
rtrinst *Router
|
|
rtrinstOnce sync.Once
|
|
)
|
|
|
|
func NewRouter() *Router {
|
|
rtrinstOnce.Do(func() {
|
|
rtrinst = &Router{
|
|
Mux: nil,
|
|
BasePath: "/",
|
|
Routes: []Route{
|
|
{Controller: shared.HomePageController{}, Path: "", Name: "app.index"},
|
|
{Controller: shared.SignUpHandler{}, Path: "sign-up", Name: "app.user.sign_up"},
|
|
{Controller: shared.SignInHandler{}, Path: "sign-in", Name: "app.user.sign_in"},
|
|
{Controller: shared.SignOutHandler{}, Path: "sign-out", Name: "app.user.sign_out"},
|
|
{Controller: shared.PopulateHandler{}, Path: "populate", Name: "app.populate"},
|
|
},
|
|
SubRouters: &[]Router{
|
|
{
|
|
Mux: nil,
|
|
BasePath: "/admin/",
|
|
Routes: []Route{
|
|
{Controller: admin.IndexHandler{}, Path: "", Name: "app.admin.index"},
|
|
{Controller: admin.IndexHandler{}, Path: "butt", Name: "app.admin.butt"},
|
|
},
|
|
SubRouters: nil,
|
|
Middleware: &[]middleware.Func{middleware.WithAuth},
|
|
},
|
|
},
|
|
Middleware: &[]middleware.Func{middleware.DontPanic, middleware.WithLogger, middleware.WithUsername},
|
|
}
|
|
})
|
|
|
|
return rtrinst
|
|
}
|