//TagDelete handles /admin/delete_tag route func TagDelete(w http.ResponseWriter, r *http.Request) { tmpl := shared.Template(r) if r.Method == "POST" { tag, err := models.GetTag(r.PostFormValue("name")) if err != nil { log.Printf("ERROR: %s\n", err) w.WriteHeader(404) tmpl.Lookup("errors/404").Execute(w, shared.ErrorData(err)) } if err := tag.Delete(); err != nil { log.Printf("ERROR: %s\n", err) w.WriteHeader(500) tmpl.Lookup("errors/500").Execute(w, shared.ErrorData(err)) return } http.Redirect(w, r, "/admin/tags", 303) } else { err := fmt.Errorf("Method %q not allowed", r.Method) log.Printf("ERROR: %s\n", err) w.WriteHeader(405) tmpl.Lookup("errors/405").Execute(w, shared.ErrorData(err)) } }
//TagShow handles GET /tags/:name route func TagShow(w http.ResponseWriter, r *http.Request) { tmpl := shared.Template(r) data := shared.DefaultData(r) if r.Method == "GET" { name := r.URL.Path[len("/tags/"):] tag, err := models.GetTag(name) if err != nil { w.WriteHeader(404) tmpl.Lookup("errors/404").Execute(w, nil) return } data["Tag"] = tag data["Title"] = tag.Name data["Active"] = fmt.Sprintf("tags/%s", name) tmpl.Lookup("tags/show").Execute(w, data) } else { err := fmt.Errorf("Method %q not allowed", r.Method) log.Printf("ERROR: %s\n", err) w.WriteHeader(405) tmpl.Lookup("errors/405").Execute(w, shared.ErrorData(err)) } }