Example #1
0
 /**
  * Generate and set HTTP response code, error messages to Response object.
  */
 protected function _renderMessages()
 {
     $formattedMessages = array();
     $formattedMessages['messages'] = $this->getMessages();
     $responseHttpCode = null;
     /** @var Exception $exception */
     foreach ($this->getException() as $exception) {
         $code = $exception instanceof Mage_Webapi_Exception ? $exception->getCode() : Mage_Webapi_Exception::HTTP_INTERNAL_ERROR;
         $messageData = array('code' => $code, 'message' => $exception->getMessage());
         if ($this->_app->isDeveloperMode()) {
             $messageData['trace'] = $exception->getTraceAsString();
         }
         $formattedMessages['messages']['error'][] = $messageData;
         // keep HTTP code for response
         $responseHttpCode = $code;
     }
     // set HTTP code of the last error, Content-Type, and all rendered error messages to body
     $this->setHttpResponseCode($responseHttpCode);
     $this->setMimeType($this->_renderer->getMimeType());
     $this->setBody($this->_renderer->render($formattedMessages));
     return $this;
 }
Example #2
0
 /**
  * Render data using registered Renderer.
  *
  * @param mixed $data
  */
 protected function _render($data)
 {
     $mimeType = $this->_renderer->getMimeType();
     $body = $this->_renderer->render($data);
     $this->_response->setMimeType($mimeType)->setBody($body);
 }