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