You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.1 KiB
Go

package main
import (
"log"
"net/http"
"git.phc.dm.unipi.it/aziis98/posti-dm/server/config"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
)
func main() {
config.Load()
r := chi.NewRouter()
r.Use(middleware.RequestID)
r.Use(middleware.RealIP)
r.Use(middleware.Logger)
r.Use(middleware.Recoverer)
if config.Mode == "production" {
log.Printf(`Adding production routes...`)
// Assets
r.Handle("/assets/*", http.StripPrefix("/assets/", http.FileServer(http.Dir("./assets"))))
r.Get("/", func(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "./index.html")
})
r.Get("/login", func(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "./login.html")
})
// FIXME: Route temporanea, basta configurare ViteJS per bene
r.Get("/login.html", func(w http.ResponseWriter, r *http.Request) {
http.Redirect(w, r, "/login", http.StatusTemporaryRedirect)
})
}
server := NewServer()
r.Mount("/api", server.ApiRoute)
log.Printf(`Starting server on "%s"...`, config.Host)
err := http.ListenAndServe(config.Host, r)
if err != nil {
panic(err)
}
}