30 lines
716 B
Go
30 lines
716 B
Go
package main
|
|
|
|
import (
|
|
"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)
|
|
|
|
mux.HandleFunc("POST /election", app.createElection)
|
|
mux.HandleFunc("POST /election/{id}/votes", app.createVotes)
|
|
|
|
standard := alice.New(app.recoverPanic, app.logRequest)
|
|
return standard.Then(mux)
|
|
}
|