40 lines
860 B
Go
40 lines
860 B
Go
package web
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/go-chi/chi/v5"
|
|
"github.com/go-chi/chi/v5/middleware"
|
|
)
|
|
|
|
func (s *Server) setupRoutes() *chi.Mux {
|
|
router := chi.NewRouter()
|
|
|
|
router.Use(middleware.Logger)
|
|
router.Use(middleware.Recoverer)
|
|
|
|
// TODO: Not sure this is needed right now
|
|
// Setup basic file server nothing fancy
|
|
router.Handle("/static/*", http.StripPrefix("/static", http.FileServer(http.Dir("static"))))
|
|
|
|
// Public routes
|
|
router.Group(func(r chi.Router) {
|
|
// Auth Routes
|
|
router.Post("/register", s.handleRegister())
|
|
router.Post("/login", s.handleLogin())
|
|
router.Post("/logout", s.handleLogout())
|
|
})
|
|
|
|
// Private routes
|
|
router.Group(func(r chi.Router) {
|
|
// Requires log in
|
|
r.Use(s.hasAuth)
|
|
|
|
// TODO add authenicated routes here
|
|
// r.Get("/", s.handleHome())
|
|
// router.Mount("/users", s.userRoutes())
|
|
})
|
|
|
|
return router
|
|
}
|