/**
  * 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;
 }
示例#2
0
 /**
  * @param Badge $badge
  * @return Event
  */
 public function setReachBadgeGranted(Badge $badge)
 {
     $this->idReachBadge = $badge->getId();
     return $this;
 }