// DELETE /api/v0/hub // Params: access_token, slug func DeleteHub(w http.ResponseWriter, r *http.Request, c router.Context) error { db, _ := c.Meta["db"].(*sqlx.DB) userid := c.Meta["user_id"].(int64) slug := r.FormValue("slug") if slug == "" { return res.BadRequest(w, res.ErrorMsg{"invalid_request", "slug required"}) } h := data.Hub{} if err := h.Get(db, slug); err != nil { if e, ok := err.(*data.Error); ok { return res.BadRequest(w, res.ErrorMsg{e.Code, e.Desc}) } return err } if userid != h.UserID { return res.BadRequest(w, res.ErrorMsg{"invalid_request", "user does not own hub"}) } // Since all is well, delete hub from database h = data.Hub{ Slug: slug, } if err := h.Delete(db); err != nil { if e, ok := err.(*data.Error); ok { return res.BadRequest(w, res.ErrorMsg{e.Code, e.Desc}) } return err } return res.OK(w, h) }