/** * Notify to the System the user is connected * * @param Presence $presence */ public function ping(Presence $presence) { if (!isset($presence) || !$presence instanceof Presence) { throw new EyeInvalidArgumentException('Missing or invalid $presence'); } $searchPresence = self::retrievePresencesByUsersId(array($presence->getUserId())); if ($searchPresence !== null && is_array($searchPresence) && count($searchPresence) == 1) { $searchPresence = current($searchPresence); $searchPresence->setLastSeen($presence->getLastSeen()); $this->getProvider()->updatePresence($searchPresence); } else { $this->getProvider()->storePresence($presence); $this->notifyNewPresence($presence); } }