X-Git-Url: https://dev.renevier.net/?a=blobdiff_plain;f=application%2Fcontrollers%2Fhelpers%2FSyjApi.php;h=bfb97927d1a2aeb97d51573869a4a040308d2646;hb=c1aeb7538786d8c9f3b3337c0b71e21ef89d9c77;hp=37b010afcc95146b64f897fc53de3183a79136e4;hpb=1d1b5940442782d78f796d8608e63328e2e8783b;p=syj.git diff --git a/application/controllers/helpers/SyjApi.php b/application/controllers/helpers/SyjApi.php index 37b010a..bfb9792 100644 --- a/application/controllers/helpers/SyjApi.php +++ b/application/controllers/helpers/SyjApi.php @@ -8,6 +8,7 @@ class Syj_Controller_Action_Helper_SyjApi extends Zend_Controller_Action_Helper_ protected $_checkIfNoneMatch = false; protected $_body = ''; protected $_code = 200; + protected $_redirect = ''; public function init() { $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); @@ -30,6 +31,7 @@ class Syj_Controller_Action_Helper_SyjApi extends Zend_Controller_Action_Helper_ public function setBodyJson($data) { $this->setBody(json_encode($data)) ->setContentType('application/json'); + return $this; } public function setBody($body) { @@ -50,6 +52,20 @@ class Syj_Controller_Action_Helper_SyjApi extends Zend_Controller_Action_Helper_ return $this->_code; } + public function setRedirect($url, $code = 0) { + $this->_redirect = (string)$url; + if (is_numeric($code) && (int)$code >= 300 && (int)$code < 400) { + $this->_code; + } else if (!isset($this->_code)) { + $this->code = 301; + } + return $this; + } + + public function getRedirect() { + return $this->_redirect; + } + public function setCheckIfNoneMatch($check) { $this->_checkIfNoneMatch = (boolean)$check; return $this; @@ -79,6 +95,10 @@ class Syj_Controller_Action_Helper_SyjApi extends Zend_Controller_Action_Helper_ $response->setHeader ('Etag', $etag); } + if ($this->_redirect) { + $response->setHeader ('Location', $this->_redirect); + } + $response->setHttpResponseCode($this->_code) ->setBody($this->_body); }