示例#1
0
func (cr *Controller) Read(id string, cx *goweb.Context) {
	log.Printf("Read a diary id=%s", id)
	c := cr.db.C(COLLECTION)
	var diary Diary
	if err := c.FindId(id).One(&diary); err != nil {
		log.Println("Error: %s", err.Error())
		cx.RespondWithError(http.StatusForbidden)
		return
	}

	log.Printf("Read diary id=%s", id)
	cx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*")
	cx.RespondWithData(diary)
}
示例#2
0
func (cr *Controller) Create(cx *goweb.Context) {
	log.Println("Creating a diary...")
	c := cr.db.C(COLLECTION)

	var diary Diary
	decoder := new(goweb.JsonRequestDecoder)
	decoder.Unmarshal(cx, &diary)

	diary.Id = bson.NewObjectId().Hex()

	if err := c.Insert(&diary); err != nil {
		log.Println("Error: %s", err.Error())
		cx.RespondWithError(http.StatusForbidden)
		return
	}

	log.Printf("Created diary id=%s", diary.Id)
	cx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*")
	cx.RespondWithData(diary.Id)
}
示例#3
0
func (cr *Controller) ReadMany(cx *goweb.Context) {
	log.Println("Read all diaries...")
	c := cr.db.C(COLLECTION)
	count, err := c.Count()
	if err != nil {
		log.Println("Error: %s", err.Error())
		cx.RespondWithError(http.StatusForbidden)
		return
	}

	diaries := make([]*Diary, count)
	if err := c.Find(nil).All(&diaries); err != nil {
		log.Println("Error: %s", err.Error())
		cx.RespondWithError(http.StatusForbidden)
		return
	}

	log.Printf("Read all %d diaries", count)
	cx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*")
	cx.RespondWithData(diaries)
}