diff -r 877f952ae2bd -r 6b6c2214f778 web/lib/Zend/Mobile/Push/Message/Apns.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Mobile/Push/Message/Apns.php Thu Mar 21 19:52:38 2013 +0100 @@ -0,0 +1,284 @@ +_alert; + } + + /** + * Set Alert + * + * @param string $text + * @param string $actionLocKey + * @param string $locKey + * @param array $locArgs + * @param string $launchImage + * @return Zend_Mobile_Push_Message_Apns + */ + public function setAlert($text, $actionLocKey=null, $locKey=null, $locArgs=null, $launchImage=null) + { + if ($text !== null && !is_string($text)) { + throw new Zend_Mobile_Push_Message_Exception('$text must be a string'); + } + + if ($actionLocKey !== null && !is_string($actionLocKey)) { + throw new Zend_Mobile_Push_Message_Exception('$actionLocKey must be a string'); + } + + if ($locKey !== null && !is_string($locKey)) { + throw new Zend_Mobile_Push_Message_Exception('$locKey must be a string'); + } + + if ($locArgs !== null) { + if (!is_array($locArgs)) { + throw new Zend_Mobile_Push_Message_Exception('$locArgs must be an array of strings'); + } else { + foreach ($locArgs as $str) { + if (!is_string($str)) { + throw new Zend_Mobile_Push_Message_Exception('$locArgs contains an item that is not a string'); + } + } + } + } + + if (null !== $launchImage && !is_string($launchImage)) { + throw new Zend_Mobile_Push_Message_Exception('$launchImage must be a string'); + } + + $this->_alert = array( + 'body' => $text, + 'action-loc-key' => $actionLocKey, + 'loc-key' => $locKey, + 'loc-args' => $locArgs, + 'launch-image' => $launchImage, + ); + return $this; + } + + /** + * Get Badge + * + * @return int + */ + public function getBadge() + { + return $this->_badge; + } + + /** + * Set Badge + * + * @param int $badge + * @return Zend_Mobile_Push_Message_Apns + * @throws Zend_Mobile_Push_Message_Exception + */ + public function setBadge($badge) + { + if (!is_null($badge) && !is_numeric($badge)) { + throw new Zend_Mobile_Push_Message_Exception('$badge must be an integer'); + } + if (!is_null($badge) && $badge < 0) { + throw new Zend_Mobile_Push_Message_Exception('$badge must be greater or equal to 0'); + } + $this->_badge = $badge; + } + + /** + * Get Expire + * + * @return int + */ + public function getExpire() + { + return $this->_expire; + } + + /** + * Set Expire + * + * @param int $expire + * @return Zend_Mobile_Push_Message_Apns + * @throws Zend_Mobile_Push_Message_Exception + */ + public function setExpire($expire) + { + if (!is_numeric($expire)) { + throw new Zend_Mobile_Push_Message_Exception('$expire must be an integer'); + } + $this->_expire = (int) $expire; + return $this; + } + + /** + * Get Sound + * + * @return string + */ + public function getSound() + { + return $this->_sound; + } + + /** + * Set Sound + * + * @param string $sound + * @return Zend_Mobile_Push_Message_Apns + * @throws Zend_Mobile_Push_Message_Exception + */ + public function setSound($sound) + { + if (!is_string($sound)) { + throw new Zend_Mobile_Push_Message_Exception('$sound must be a string'); + } + $this->_sound = $sound; + return $this; + } + + /** + * Add Custom Data + * + * @param string $key + * @param mixed $value + * @return Zend_Mobile_Push_Message_Apns + * @throws Zend_Mobile_Push_Message_Exception + */ + public function addCustomData($key, $value) + { + if (!is_string($key)) { + throw new Zend_Mobile_Push_Message_Exception('$key is not a string'); + } + if ($key == 'aps') { + throw new Zend_Mobile_Push_Message_Exception('$key must not be aps as it is reserved by apple'); + } + $this->_custom[$key] = $value; + } + + /** + * Clear Custom Data + * + * @return throw new Zend_Mobile_Push_Message_Apns + */ + public function clearCustomData() + { + $this->_custom = array(); + return $this; + } + + /** + * Set Custom Data + * + * @param array $data + * @return Zend_Mobile_Push_Message_Apns + * @throws Zend_Mobile_Push_Message_Exception + */ + public function setCustomData($array) + { + $this->_custom = array(); + foreach ($array as $k => $v) { + $this->addCustomData($k, $v); + } + return $this; + } + + /** + * Get Custom Data + * + * @return array + */ + public function getCustomData() + { + return $this->_custom; + } + + /** + * Validate this is a proper Apns message + * + * @return boolean + */ + public function validate() + { + if (!is_string($this->_token) || strlen($this->_token) === 0) { + return false; + } + if (null != $this->_id && !is_numeric($this->_id)) { + return false; + } + return true; + } +}