예제 #1
0
/**
 * Atualização de dispositivo
 */
function updateDevice()
{
    global $log;
    $input = null;
    $app = Slim::getInstance();
    try {
        // obtém os dados informados
        $input = json_decode($app->request()->getBody());
        $log->Debug(sprintf("api - updateDevice - %s", print_r($input, true)));
        if (!$input || !isset($input->oldToken) || !isset($input->newToken) || !isset($input->userId)) {
            throw new \InvalidArgumentException("A requisição náo contém todos os dados necessários.");
        }
    } catch (Exception $e) {
        badRequest($e, $log);
        return;
    }
    try {
        $updated = DeviceManager::updateDevice($input->oldToken, $input->newToken, $input->userId);
        if ($updated) {
            noContent("Dispositivo atualizado com sucesso!");
        } else {
            notFound("O dispositivo informado não foi encontrado.");
        }
    } catch (Exception $e) {
        internalServerError($e, $log);
    }
}
 /**
  * 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();
     }
 }