public function sendPushNotification(Notification $notification) { $sm = $this->getServiceLocator(); $objectManager = $sm->get('Doctrine\\ORM\\EntityManager'); $config = $sm->get('Config'); if (!isset($config['urban-airship'])) { throw new \Exception('Urban Airship configuration is missing. Please make sure `config/autoload/urban-airship.local.php` exists in installation path.'); } else { if (!isset($config['urban-airship']['api-key']) || $config['urban-airship']['api-key']) { throw new \Exception('Urban Airship API key is missing. Please make sure `config/autoload/urban-airship.local.php` exists in installation path and that all variables are set correctly.'); } else { if (!isset($config['urban-airship']['api-secret']) || $config['urban-airship']['api-secret']) { throw new \Exception('Urban Airship API secret is missing. Please make sure `config/autoload/urban-airship.local.php` exists in installation path and that all variables are set correctly.'); } } } UALog::setLogHandlers(array(new StreamHandler('logs' . DIRECTORY_SEPARATOR . 'urban_airship.' . date('Y-m-d') . '.log', Logger::DEBUG))); $airship = new Airship($config['urban-airship']['api-key'], $config['urban-airship']['api-secret']); try { $response = $airship->push()->setAudience(P\deviceToken($device->getDeviceToken()))->setNotification(P\notification($message))->setDeviceTypes(P\deviceTypes($device->getDeviceType()))->send(); if ($response->ok) { $notification->setStatus('sent'); $notification->setOperationId($response->operation_id); $notification->setPushIds($response->push_ids); } else { $notification->setStatus('failed'); } $objectManager->persist($notification); $objectManager->flush(); } catch (AirshipException $e) { $error = $this->logError($e->getCode(), $e->getMessage(), __FILE__, __LINE__, $e->getTrace()); $notification->setStatus('failed'); $notification->setError($error); $objectManager->persist($notification); $objectManager->flush(); throw $e; } }
/** * @expectedException InvalidArgumentException */ public function testInvalidDeviceToken() { P\deviceToken(dt . "more"); }