Files
nfeeder/internal/web/routes.go
T

39 lines
786 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)
// 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())
// public pages
r.Get("/", s.handleHome())
})
// User routes
router.Group(func(r chi.Router) {
// Requires log in
r.Use(s.hasAuth)
router.Mount("/users", s.userRoutes())
})
return router
}