Example #1
0
/**
 * Retorna um dispositivo informado, validando-o
 *
 * @param object $input
 *        	Dados informados
 * @return Device Dispositivo
 */
function getDevice($input)
{
    if (!$input || !isset($input->token) || !isset($input->type) || !isset($input->userId)) {
        throw new \InvalidArgumentException("A requisição não contém todos os dados necessários.");
    }
    $device = new Device((string) $input->token, (int) $input->type, (string) $input->userId);
    DeviceManager::validateDevice($device);
    return $device;
}
 /**
  * Remove um dispositivo
  *
  * @param string $token
  *        	Identificador de push do dispositivo
  * @return boolean True se removeu um dispositivo, false caso contrário
  */
 public static function deleteDevice($token)
 {
     if (!$token || !is_string($token)) {
         return false;
     }
     global $entityManager;
     $deviceToDelete = DeviceManager::getDevice($token);
     //remove dos serviços da UNISUAM
     UnisuamPushServices::delete($deviceToDelete);
     $queryBuilder = $entityManager->createQueryBuilder()->delete(DeviceManager::DEVICE_REPOSITORY, "device")->where('device.token=:token')->setParameter('token', $token);
     $rows = $queryBuilder->getQuery()->execute();
     $entityManager->flush();
     return $rows > 0;
 }
 /**
  * Trata os resultados contendo dispositivos Android que tiveram seus identificadores atualizados
  *
  * @param object $results
  *        	Resultados
  * @param int $deviceType
  *        	Tipo de dispositivo
  */
 private static function handleCanonicalResult($results)
 {
     $obj = new \ArrayObject($results);
     $iterator = $obj->getIterator();
     // itera sobre os resultados para atualizar os identificadores dos dispositivos
     while ($iterator->valid()) {
         $oldToken = $iterator->key();
         $newToken = $iterator->current();
         DeviceManager::updateDevice($oldToken, $newToken, null);
         $iterator->next();
     }
 }