Пример #1
0
 /**
  * OPTIONS request should set Allow header
  */
 public function testOptionsOne()
 {
     Request::setMethod(Request::METHOD_OPTIONS);
     Request::setRawParams([100042]);
     $this->processRest();
     $this->assertEquals('HEAD,OPTIONS,GET,PATCH,PUT,DELETE', Response::getHeader('Allow'));
 }
Пример #2
0
 /**
  * Process router by default rules
  *
  * Default routers examples
  *     /
  *     /:module/
  *     /:module/:controller/
  *     /:module/:controller/:key1/:value1/:key2/:value2...
  *
  * @return bool
  */
 protected function processRoute()
 {
     $uri = Request::getCleanUri();
     $uri = trim($uri, '/');
     $params = explode('/', $uri);
     if (sizeof($params)) {
         Request::setModule(array_shift($params));
     }
     if (sizeof($params)) {
         Request::setController(array_shift($params));
     }
     if ($size = sizeof($params)) {
         // save raw params
         Request::setRawParams($params);
         // remove tail
         if ($size % 2 == 1) {
             array_pop($params);
             $size = sizeof($params);
         }
         // or use array_chunk and run another loop?
         for ($i = 0; $i < $size; $i = $i + 2) {
             Request::setParam($params[$i], $params[$i + 1]);
         }
     }
     return true;
 }
Пример #3
0
 */
namespace Application;

use Application\Auth\Table;
use Bluz\Proxy\Auth;
use Bluz\Proxy\Request;
return function ($resource, $id, $relation, $relationId) {
    /**
     * @var Bootstrap $this
     */
    $this->useJson();
    Auth::clearIdentity();
    try {
        // authentication
        if ($token = $this->getRequest()->getParam('token')) {
            Table::getInstance()->authenticateToken($token);
        }
        $params = [];
        foreach ([$id, $relation, $relationId] as $param) {
            if (!is_null($param)) {
                $params[] = $param;
            }
        }
        Request::setRawParams($params);
        return $this->dispatch('api', $resource);
    } catch (\Exception $e) {
        // process exceptions here
        $this->getResponse()->setStatusCode($e->getCode());
        return (object) ['error' => $e->getMessage()];
    }
};