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
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)
|
|
}
|
|
}
|