package main import ( "fmt" "log" "os" "io" "encoding/json" "net/http" "git.sr.ht/~jordyn/imagination/figtree" ) func main() { http.HandleFunc("/", homeHandler) http.HandleFunc("/figs/", figHandler) http.HandleFunc("/all/", allHandler) log.Fatal(http.ListenAndServe(":8080", nil)) } func homeHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "

my beautiful figs

") } func figHandler(w http.ResponseWriter, r *http.Request) { r.ParseMultipartForm(32 << 20) file, _, err := r.FormFile("newfig") if err != nil { panic(err) } defer file.Close() fighome, newfig, err := figtree.HarvestFig( r.FormValue("name"), r.FormValue("desc"), r.FormValue("type"), r.FormValue("ext"), r.FormValue("birth")) log.Println("blooming " + fighome) f, err := os.Create(fighome) if err != nil { panic(err) } err = os.Chmod(fighome, 0666) if err != nil { panic(err) } defer f.Close() io.Copy(f, file) figtree.DryFig(newfig) } func allHandler(w http.ResponseWriter, r *http.Request) { figs, _ := figtree.AllFigsFancy() json.NewEncoder(w).Encode(figs) }