func HandleGetIRLMoji(r render.Render, db *models.DB, params martini.Params, backchannel Backchannel, limit Limit) { irlmojiId, err := strconv.ParseUint(params["irlmojiId"], 10, 64) if err != nil { r.JSON(404, JsonErr("Invalid IRLMoji id provided:"+ params["irlmojiId"])) } im, err := db.GetIMWithId(irlmojiId) if err != nil { r.JSON(404, JsonErr("The provided IRLMoji id was invalid:"+ params["irlmojiId"])) return } hearts, err := db.GetHeartsForIRLMoji(irlmojiId, limit.GetLimit()) if err == nil { im.Hearts = hearts } else { log.Println("WARNING: Could not get IRLMoji hearts:", err.Error()) } err = db.AnnotateHearted(im, backchannel.UserId()) if err != nil { log.Println("Error annotating hearted info:", err.Error()) r.JSON(500, "Sorry, an internal server error has occurred.") return } r.JSON(200, map[string]*models.IRLMoji{"irlmoji": im}) }