package handler import ( "me-fit/db" "me-fit/middleware" "me-fit/service" "me-fit/types" "database/sql" "net/http" ) func GetHandler(d *sql.DB, serverSettings *types.ServerSettings) http.Handler { var router = http.NewServeMux() router.HandleFunc("/", service.HandleIndexAnd404(d, serverSettings)) handlerAuth := NewHandlerAuth(d, service.NewServiceAuthImpl(db.NewDbAuthSqlite(d)), serverSettings) // Serve static files (CSS, JS and images) router.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./static/")))) handleWorkout(d, router, serverSettings) handlerAuth.handle(router) return middleware.Logging(middleware.EnableCors(serverSettings, router)) } func authMiddleware(db *sql.DB, h http.Handler) http.Handler { return middleware.EnsureValidSession(db, h) }