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)
}