/** * Grant badge to user * @param Badge $badge * @param null $eventId * @param null $eventDate * @throws Exception * @return bool * @internal param $alias */ public function grantBadge(Badge $badge, $eventId = null, $eventDate = null) { if (is_null($this->userId)) { throw new Exception(__METHOD__ . ': User id must be set before start game engine'); } // Grant badge to user $this->dao->grantBadgeToUser($this->getUserId(), $badge->getId()); // Log event $this->dao->logUserEvent($this->getUserId(), $eventId, null, $badge->getId(), null, $eventDate); // Gamification alert $this->alertBadge($badge->getId()); // Add event to queue when the user reach this level // if (!is_null($this->badges[$badgeId]['event'])) // $this->addEventToQueue($this->badges[$badgeId]['event']); return true; }
/** * @param Badge $badge * @return Event */ public function setReachBadgeGranted(Badge $badge) { $this->idReachBadge = $badge->getId(); return $this; }