public function errorAction()
 {
     parent::errorAction();
     $this->_helper->output('proto');
     $this->view->setClass('Application\\Proto\\AsyncNotification\\Service\\Response');
     $this->view->reason = $this->_message;
     /*
            const OK = 0;
            const EXPIRED = 1;
            const UNKNOWN_TOKEN = 2;
            const WRONG_TOKEN = 3;
            const WRONG_PROTO = 4;
            const WRONG_MESSAGE = 5;
            const UNKNOWN = 10;
     */
     // TODO: review exception
     $ex = $this->_exception;
     switch (true) {
         case $ex instanceof Application\Model\Mapper\Exception\MissingCacheException:
             $this->view->code = Application\Proto\AsyncNotification\Service\Response\Code::EXPIRED;
             break;
         case $ex instanceof Application\Model\Mapper\Exception\InvalidArgumentException:
             $this->view->code = Application\Proto\AsyncNotification\Service\Response\Code::WRONG_TOKEN;
             break;
         default:
             $this->view->code = Application\Proto\AsyncNotification\Service\Response\Code::UNKNOWN;
             break;
     }
     // TODO Why is sometimes sending response twice??? :S
     Bootstrap::$responseSent = true;
 }
 public function errorAction()
 {
     parent::errorAction();
     $this->view->message = $this->_message;
     $this->view->error = $this->_errorCode;
     if (!empty($this->_validationEntity)) {
         $this->view->entity = $this->_validationEntity;
     }
     if (!empty($this->_validationErrors)) {
         $this->view->validationErrors = $this->_validationErrors;
     }
     if (!empty($this->_errorMessages)) {
         $this->view->errorMessages = $this->_errorMessages;
     }
     if ($this->_exception instanceof Application\Model\Mapper\Exception\EricssonException) {
         $this->view->reason = $this->_exception->getReason();
     }
     //We need a big body to avoid IE bug about error responses inside iFrame
     if ($this->getRequest()->getParam('iframeHack', false)) {
         $hash = md5('I hate IE');
         $this->_helper->output()->setContentType('text/html');
         $this->view->ieHack = str_repeat($hash, 10);
     }
     // TODO Why is sometimes sending response twice??? :S
     Bootstrap::$responseSent = true;
 }
Esempio n. 3
0
 protected function _sendResponse($httpCode, $code, $message)
 {
     // TODO Why is sometimes sending response twice??? :S
     if (self::$responseSent) {
         return;
     }
     if (!($response = Zend_Controller_Front::getInstance()->getResponse())) {
         $response = new Zend_Controller_Response_Http();
     }
     $response->setHttpResponseCode($httpCode);
     if (!$response->getBody()) {
         $body = array('code' => $code, 'message' => $message);
         $response->setBody(Zend_Json::encode($body));
     }
     if ($response->canSendHeaders()) {
         $response->clearHeaders();
         $response->setHeader('Content-Type', 'application/json');
         $response->sendResponse();
         self::$responseSent = true;
     }
     exit;
 }