Esempio n. 1
0
func deleteStationHandler(sdb *db.StationDB,
	w http.ResponseWriter, r *http.Request, user userView) {

	id := r.URL.Query().Get("id")
	if id == "" {
		http.Error(w, "'id' param missing", http.StatusBadRequest)
		return
	}

	s, err := sdb.Lookup(id)
	if err != nil {
		log.Printf("Station DB lookup error: %s", err.Error())
		http.Error(w, "", http.StatusInternalServerError)
		return
	}

	if s == nil || *s.Userid != user.Id {
		http.NotFound(w, r)
		return
	}

	err = sdb.Delete(id)
	if err != nil {
		log.Printf("Station DB delete error: %s", err.Error())
		http.Error(w, "", http.StatusInternalServerError)
		return
	}

	// Success
	http.Redirect(w, r, "/home", http.StatusFound)
}