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