/** * 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(); } }