package handlers import ( "database/sql" "net/http" "paterissa.net/mblog/cmd/web/middleware" "paterissa.net/mblog/cmd/web/types" ) func RegisterEndpoints(app types.Application, db *sql.DB) *http.ServeMux { auth := middleware.AuthMiddleware{ Err: app.Err, Db: db, } blog := blogContext{ err: app.Err, db: db, Name: app.Env.Webmaster, } login := loginContext{ err: app.Err, db: db, } audio := fsContext{ err: app.Err, path: app.AudioDir, contentType: "audio/mpeg", } static := fsContext{ err: app.Err, path: "static", } blogRouter := http.NewServeMux() blogRouter.HandleFunc("/", blog.index) blogRouter.HandleFunc("/login", login.handle) blogRouter.HandleFunc("/logout", auth.Resolve(login.logout)) blogRouter.HandleFunc("/audio", audio.readdir) blogRouter.HandleFunc("/audio/get", audio.get) blogRouter.HandleFunc("/static/get", static.get) return blogRouter }