32 lines
725 B
Go
32 lines
725 B
Go
package main
|
|
|
|
import (
|
|
"html/template"
|
|
"io/fs"
|
|
"net/http"
|
|
)
|
|
|
|
type Cake struct {
|
|
Name string
|
|
Price int
|
|
}
|
|
|
|
type controller struct {
|
|
tmpl map[string]*template.Template
|
|
cakes map[int]Cake
|
|
http.Handler
|
|
}
|
|
|
|
func (c *controller) LoadRouter(pub fs.FS) {
|
|
serveMux := http.NewServeMux()
|
|
|
|
serveMux.Handle("GET /", http.FileServerFS(unwrap(fs.Sub(pub, "public"))))
|
|
serveMux.HandleFunc("POST /order/new", c.postNewOrder)
|
|
serveMux.HandleFunc("GET /available_cakes", c.cakeOptions)
|
|
serveMux.HandleFunc("GET /edit_cakes", c.cakeOptions)
|
|
serveMux.HandleFunc("GET /cake_editor", c.cakeEditor)
|
|
serveMux.HandleFunc("GET /cake_editor/{ID}", c.cakeEditor)
|
|
serveMux.HandleFunc("POST /new_cake", c.newCake)
|
|
|
|
c.Handler = serveMux
|
|
}
|