func HandleGetEmojiTimeline(r render.Render, limit Limit, params martini.Params, db *models.DB, backchannel Backchannel) { timeline, err := db.GetIMsForEmoji(params["emoji"], limit.GetLimit()+uint32(1)) if err != nil { log.Println("Error getting IMs for emoji", params["emoji"], err.Error()) r.JSON(500, JsonErr("Sorry, an internal server error has occurred.")) return } for _, im := range timeline { 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 } } hasMore, timeline := hasMoreTimeline(limit, timeline) r.JSON(200, map[string]interface{}{ "timeline": timeline, "hasMore": hasMore, }) }