Ejemplo n.º 1
0
 /**
  * Call the /admin/ping servlet, can be used to quickly tell if a connection to the server is able to be made
  *
  * @param float $timeout maximum time to wait for ping in seconds, -1 for unlimited (default is 2)
  *
  * @return float|bool
  */
 public function ping($timeout = 0)
 {
     $this->_setBasicAdapterOptions($timeout);
     $this->_curlAdapter->addOptions(array(CURLOPT_HEADER => 0, CURLOPT_NOBODY => 1))->write(Zend_Http_Client::GET, $this->_pingUrl);
     $totalTime = microtime(1);
     $this->_curlAdapter->read();
     $result = $this->_curlAdapter->getInfo(CURLINFO_HTTP_CODE) == 200 ? round(microtime(1) - $totalTime, 3) : false;
     $this->_curlAdapter->close();
     return $result;
 }
Ejemplo n.º 2
0
 protected function _makeRequest($ping)
 {
     $curl = new Varien_Http_Adapter_Curl();
     $curl->setConfig(array('timeout' => 20));
     $curl->write(Zend_Http_Client::GET, $ping, '1.1');
     $data = $curl->read();
     if ($data === false) {
         return false;
     }
     $code = $curl->getInfo(CURLINFO_HTTP_CODE);
     if ($code == 200) {
         return $code;
     } else {
         Mage::log("Submission to: " . $ping . " failed, HTTP response code was not 200");
         Mage::log("Response error: " . $data);
         // uncomment to debug raw submission response
         return false;
     }
     //TODO: handle timeout?
 }
Ejemplo n.º 3
0
 /**
  * Send broadcast message
  *
  * @throws Mage_Core_Exception
  * @param Mage_XmlConnect_Model_Queue $queue
  */
 public function sendBroadcastMessage(Mage_XmlConnect_Model_Queue $queue)
 {
     if ($queue->getStatus() != Mage_XmlConnect_Model_Queue::STATUS_IN_QUEUE) {
         return;
     }
     try {
         $applicationId = Mage::getModel('xmlconnect/template')->load($queue->getTemplateId())->getApplicationId();
         /** @var $app Mage_XmlConnect_Model_Application */
         $app = Mage::getModel('xmlconnect/application')->load($applicationId);
         if (!$app->getId()) {
             Mage::throwException(Mage::helper('xmlconnect')->__('Can\'t load application with id "%s"', $applicationId));
         }
         if (!$app->isNotificationsActive()) {
             $queue->setStatus(Mage_XmlConnect_Model_Queue::STATUS_CANCELED);
             return;
         }
         $sendType = $queue->getData('type');
         switch ($sendType) {
             case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL:
                 $configPath = 'xmlconnect/' . Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_AIRMAIL . '/broadcast_url';
                 $params = $queue->getAirmailBroadcastParams();
                 break;
             case Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH:
             default:
                 $configPath = 'xmlconnect/' . Mage_XmlConnect_Model_Queue::MESSAGE_TYPE_PUSH . '/broadcast_url';
                 $params = $queue->getPushBroadcastParams();
                 break;
         }
         $curl = new Varien_Http_Adapter_Curl();
         $curl->setConfig($this->_getCurlConfig($app->getUserpwd()));
         $urbanUrl = Mage::getStoreConfig($configPath);
         $curl->write(Zend_Http_Client::POST, $urbanUrl, HTTP_REQUEST_HTTP_VER_1_1, $this->getHttpHeaders(), $params);
         if ($curl->read() && $curl->getInfo(CURLINFO_HTTP_CODE) == 200) {
             $queue->setStatus(Mage_XmlConnect_Model_Queue::STATUS_COMPLETED);
         }
         $curl->close();
         $queue->setIsSent(true);
         $queue->save();
         return;
     } catch (Exception $e) {
         Mage::logException($e);
         throw $e;
     }
 }
Ejemplo n.º 4
0
 /**
  * Check is readable Popup Notification Object
  * @deprecated after 1.4.2.0
  *
  * @return bool
  */
 public function isReadablePopupObject()
 {
     if (is_null($this->_popupReadable)) {
         $this->_popupReadable = false;
         $curl = new Varien_Http_Adapter_Curl();
         $curl->setConfig(array('timeout' => 2));
         $curl->write(Zend_Http_Client::GET, $this->getPopupObjectUrl(true));
         if ($curl->read()) {
             if ($curl->getInfo(CURLINFO_HTTP_CODE) == 200) {
                 $this->_popupReadable = true;
             }
         }
     }
     return $this->_popupReadable;
 }
Ejemplo n.º 5
0
 /**
  *
  * @param mixed                    $apiCallResult
  * @param Varien_Http_Adapter_Curl $apiService
  */
 public function initialize($apiCallResult, Varien_Http_Adapter_Curl $apiService)
 {
     $this->_result = $apiCallResult;
     $this->_error = $apiService->getError();
     $this->_httpStatus = $apiService->getInfo(CURLINFO_HTTP_CODE);
 }