package Frontend
|
|
|
|
import (
|
|
"io/fs"
|
|
"net/http"
|
|
|
|
"github.com/gorilla/mux"
|
|
)
|
|
|
|
const (
|
|
indexPath = "Frontend/vue/dist/index.html"
|
|
)
|
|
|
|
var (
|
|
routes []string = []string{
|
|
"/admin/login",
|
|
"/admin/signup",
|
|
"/admin/users",
|
|
"/admin/users/new",
|
|
"/admin/posts",
|
|
}
|
|
)
|
|
|
|
func indexHandler(entrypoint string) func(w http.ResponseWriter, r *http.Request) {
|
|
fn := func(w http.ResponseWriter, r *http.Request) {
|
|
http.ServeFile(w, r, entrypoint)
|
|
}
|
|
|
|
return http.HandlerFunc(fn)
|
|
}
|
|
|
|
func InitFrontendRoutes(router *mux.Router) {
|
|
var (
|
|
frontendFS http.Handler
|
|
stripped fs.FS
|
|
route string
|
|
)
|
|
|
|
stripped = GetFrontendAssets()
|
|
|
|
frontendFS = http.FileServer(http.FS(stripped))
|
|
|
|
for _, route = range routes {
|
|
router.
|
|
PathPrefix(route).
|
|
HandlerFunc(indexHandler(indexPath))
|
|
}
|
|
|
|
router.PathPrefix("/public/").
|
|
Handler(http.StripPrefix(
|
|
"/public/",
|
|
http.FileServer(http.Dir("./Frontend/public/")),
|
|
))
|
|
|
|
router.PathPrefix("/").Handler(frontendFS)
|
|
}
|