Files
qv/cmd/web/routes.go
2025-01-14 12:40:30 +01:00

34 lines
790 B
Go

package main
import (
api "code.dlmw.ch/dlmw/qv/internal"
"code.dlmw.ch/dlmw/qv/internal/models"
"code.dlmw.ch/dlmw/qv/ui"
"github.com/justinas/alice"
"log/slog"
"net/http"
)
type application struct {
logger *slog.Logger
elections models.ElectionModelInterface
voters models.VoterModelInterface
votes models.VoteModelInterface
}
func (app *application) routes() http.Handler {
mux := http.NewServeMux()
mux.Handle("GET /static/", http.FileServerFS(ui.Files))
mux.HandleFunc("GET /election/create", app.createElectionPage)
api.HandlerWithOptions(app, api.StdHTTPServerOptions{
BaseRouter: mux,
BaseURL: "/api",
ErrorHandlerFunc: app.badRequestError,
})
standard := alice.New(app.recoverPanic, app.logRequest)
return standard.Then(mux)
}