package pages
import (
"fmt"
"html/template"
"net/http"
"gogs.gildas.ch/gildas/movies"
"gogs.gildas.ch/gildas/movies/omdb"
)
func List(c *movies.Collection) http.HandlerFunc {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
t, err := template.ParseFiles("templates/list.html")
if err != nil {
fmt.Println(err)
return
}
var errs []error
if r.Method == "POST" {
m, err := movies.Unmarshal([]byte(r.FormValue("omdb_json")))
if err != nil {
w.WriteHeader(http.StatusBadRequest)
errs = append(errs, err)
return
}
c.Add(m)
}
var omdbString string
if imdbID := r.URL.Query().Get("imdb_id"); imdbID != "" {
b, err := omdb.Get(imdbID)
if err != nil {
errs = append(errs, err)
} else {
omdbString = string(b)
}
}
t.Execute(w, map[string]interface{}{
"Collection": c,
"IMDBID": r.URL.Query().Get("imdb_id"),
"OMDBString": omdbString,
"Errors": errs,
})
})
}