func (rc *ReferralCodeControllerImpl) report(w http.ResponseWriter, r *http.Request) {
	u := rc.currentUser.Get(r)
	if u == nil {
		rc.renderer.JSON(w, http.StatusUnauthorized, map[string]string{"error": "Must be logged in to report invalid codes"})
		return
	}

	if !bson.IsObjectIdHex(mux.Vars(r)["id"]) {
		rc.renderer.JSON(w, http.StatusBadRequest, map[string]string{"error": "Invalid BSON ID"})
		return
	}
	code := new(models.ReferralCode)
	db := rc.database.Get(r)
	if err := code.FindByID(bson.ObjectIdHex(mux.Vars(r)["id"]), db); err != nil {
		rc.renderer.JSON(w, http.StatusInternalServerError, map[string]string{"error": err.Error()})
		return
	}

	if !code.ID.Valid() {
		rc.renderer.JSON(w, http.StatusBadRequest, map[string]string{"error": "No such referral code"})
		return
	}

	if u.ID == code.UserID {
		rc.renderer.JSON(w, http.StatusBadRequest, map[string]string{"error": "Don't report your own code, silly"})
		return
	}

	defer code.WasReported(u.ID, db)

	flag := models.NewReferralCodeFlag(code.ID, u.ID)
	defer flag.Save(db)

	if newCode := rc.randomCode(code.ServiceID, db, w); newCode.ID.Valid() {
		rc.renderer.JSON(w, http.StatusOK, newCode)
	}
}