package server import ( "embed" "html/template" "net/http" "github.com/Bronku/iroon/internal/store" ) type Server struct { tmpl map[string]*template.Template s *store.Store http.Handler } func (h *Server) Close() { } //go:embed static/* var static embed.FS func (h *Server) loadHandler() { mux := http.NewServeMux() mux.HandleFunc("GET /order/", h.render(h.order, "order")) mux.HandleFunc("GET /", h.redirect("/orders", http.StatusSeeOther)) mux.HandleFunc("GET /orders", h.render(h.orders, "orders")) mux.HandleFunc("POST /order/", h.render(h.postOrder, "confirmation")) mux.HandleFunc("GET /cakes", h.render(h.cakes, "cakes")) mux.HandleFunc("GET /cake/", h.render(h.cake, "cake")) mux.HandleFunc("POST /cake/", h.render(h.postCake, "confirmation")) fs := http.FileServerFS(static) mux.Handle("GET /static/", fs) h.Handler = mux } func New(store *store.Store) *Server { var server Server server.loadTemplates() server.s = store server.loadHandler() return &server }