package handler import ( "net/http" "strconv" ) func (h *Handler) handleRemoveStatus(w http.ResponseWriter, r *http.Request) { user, err := h.getUser(r) if err != nil { unauthorized(w) return } id, err := strconv.ParseInt(r.URL.Query().Get("id"), 10, 64) if err != nil { serverError(w, err) return } status, err := h.storage.StatusById(id) if err != nil { serverError(w, err) return } if user != status.User { unauthorized(w) return } switch r.Method { case "GET": h.renderLayout(w, "confirm_remove_status", map[string]interface{}{ "status": status, }, user) case "POST": err = h.storage.DeleteStatus(status.Id, user) if err != nil { serverError(w, err) return } http.Redirect(w, r, "/", http.StatusFound) } }