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; }
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; }