// Handle GET requests func (cr *OtterAPIController) Read(id string, cx *goweb.Context) { var otter Otter // TODO rewrite using a tohva stored in the session var err error = nil //_, err := cr.Db.Retrieve(id, &otter) if err != nil { cx.RespondWithData(otter) } else { cx.RespondWithNotFound() } }
func (cr *Controller) Delete(id string, cx *goweb.Context) { log.Printf("Deleting a article id=%s...", id) c := cr.db.C(COLLECTION) if err := c.RemoveId(id); err != nil { log.Printf("Error: %s", err.Error()) cx.RespondWithError(http.StatusForbidden) return } log.Printf("Deleted article id=%s", id) cx.RespondWithOK() }
// Handle DELETE requests func (cr *OtterAPIController) Delete(id string, cx *goweb.Context) { //var otter Otter // TODO rewrite using a tohva stored in the session // currentRev, err := cr.Db.Retrieve(id, &otter) var err error = nil if err != nil { // cr.Db.Delete(id, currentRev) cx.RespondWithOK() } else { cx.RespondWithNotFound() } }
func (cr *Controller) DeleteMany(cx *goweb.Context) { log.Println("Deleting all articles...") c := cr.db.C(COLLECTION) if _, err := c.RemoveAll(nil); err != nil { log.Println("Error: %s", err.Error()) cx.RespondWithError(http.StatusForbidden) return } log.Println("Deleted all articles") cx.RespondWithOK() }
func (cr *Controller) Read(id string, cx *goweb.Context) { log.Printf("Read a article id=%s", id) c := cr.db.C(COLLECTION) var article Article if err := c.FindId(id).One(&article); err != nil { log.Println("Error: %s", err.Error()) cx.RespondWithError(http.StatusForbidden) return } log.Printf("Read article id=%s", id) cx.RespondWithData(article) }
func (cr *Controller) Update(id string, cx *goweb.Context) { log.Printf("Update a article id=%s...", id) c := cr.db.C(COLLECTION) var article *Article decoder := new(goweb.JsonRequestDecoder) decoder.Unmarshal(cx, &article) if err := c.UpdateId(id, article); err != nil { log.Println("Error: %s", err.Error()) cx.RespondWithError(http.StatusForbidden) return } log.Printf("Updated a article id=%s", id) cx.RespondWithOK() }
func (cr *Controller) UpdateMany(cx *goweb.Context) { log.Println("Update all articles...") c := cr.db.C(COLLECTION) var articles []*Article decoder := new(goweb.JsonRequestDecoder) decoder.Unmarshal(cx, &articles) if _, err := c.UpdateAll(nil, articles); err != nil { log.Println("Error: %s", err.Error()) cx.RespondWithError(http.StatusForbidden) return } log.Println("Updated all articles") cx.RespondWithOK() }
func (cr *Controller) Create(cx *goweb.Context) { log.Println("Creating a article...") c := cr.db.C(COLLECTION) var article Article decoder := new(goweb.JsonRequestDecoder) decoder.Unmarshal(cx, &article) article.Id = bson.NewObjectId().Hex() if err := c.Insert(&article); err != nil { log.Println("Error: %s", err.Error()) cx.RespondWithError(http.StatusForbidden) return } log.Printf("Created diary id=%s", article.Id) cx.RespondWithData(article) }
func (cr *TeamAPIController) Read(id string, cx *goweb.Context) { if id == "1" { cx.RespondWithData(TestEntity{id, "Mat", 28}) } else if id == "2" { cx.RespondWithData(TestEntity{id, "Laurie", 27}) } else { cx.RespondWithNotFound() } }
func (cr *Controller) ReadMany(cx *goweb.Context) { log.Println("Read all articles...") c := cr.db.C(COLLECTION) count, err := c.Count() if err != nil { log.Println("Error: %s", err.Error()) cx.RespondWithError(http.StatusForbidden) return } articles := make([]*Article, count) if err := c.Find(nil).All(&articles); err != nil { log.Println("Error: %s", err.Error()) cx.RespondWithError(http.StatusForbidden) return } log.Printf("Read all %d articles", count) cx.RespondWithData(articles) }
func (cr *CreateAPIController) Create(cx *goweb.Context) { cx.PathParams["apikey"] cx.RespondWithData(TestEntity{"1", "Mat", 28}) }
func (cr *OtterAPIController) UpdateMany(cx *goweb.Context) { cx.RespondWithStatus(http.StatusForbidden) }
func (cr *TeamAPIController) Delete(id string, cx *goweb.Context) { cx.RespondWithOK() }
func (cr *TeamAPIController) DeleteMany(cx *goweb.Context) { cx.RespondWithStatus(http.StatusForbidden) }
func (cr *TeamAPIController) UpdateMany(cx *goweb.Context) { cx.RespondWithData(TestEntity{"1", "Mat", 28}) }
func (cr *TeamAPIController) Update(id string, cx *goweb.Context) { cx.RespondWithData(TestEntity{id, "Mat", 28}) }
// Handle POST requests func (cr *OtterAPIController) Create(cx *goweb.Context) { otter := NewOtter() // TODO rewrite using a tohva stored in the session // cr.Db.Insert(otter) cx.RespondWithData(otter) }
func (cr *TeamAPIController) ReadMany(cx *goweb.Context) { cx.RespondWithData([]TestEntity{TestEntity{"1", "Mat", 28}, TestEntity{"2", "Laurie", 27}}) }
func (cr *UserAPIController) Create(cx *goweb.Context) { cx.RespondWithData(TestEntity{"1", "Mat", 28}) }