Example #1
0
 /**
  * {@inheritdoc}
  */
 public function getRoute(Request $request)
 {
     $version = $request->getUrlElement(1);
     if (!$version) {
         // empty version, set request to use the latest
         $request->version = $this->latestVersion;
     } else {
         $request->version = $version;
     }
     // now route on the original $version
     if (isset($this->routers[$version])) {
         $router = $this->routers[$version];
         return $router->getRoute($request);
     }
     if (in_array(str_replace('v', '', $request->version), $this->oldVersions)) {
         throw new Exception("This API version is no longer supported. Please use {$this->latestVersion}");
     }
     throw new Exception('API version must be specified', 404);
 }
Example #2
0
    case 'html':
        $request->view = new HtmlView();
        break;
    case 'application/json':
    case 'json':
    default:
        // JSONP?
        $callback = filter_var($request->getParameter('callback'), FILTER_SANITIZE_STRING);
        if ($callback) {
            $request->view = new JsonPView($callback);
        } else {
            $request->view = new JsonView();
        }
        break;
}
$version = $request->getUrlElement(1);
switch ($version) {
    case 'v2.1':
        // default routing for version 2.1
        $request->version = "v2.1";
        $return_data = routeV2($request, $ji_db);
        break;
    case '':
        // current newest version
        $request->version = "v2.1";
        // version parameter not specified routes to default controller
        $defaultController = new DefaultController();
        $return_data = $defaultController->handle($request, $ji_db);
        break;
    case 'v2':
        // old versions
Example #3
0
 /**
  * Ensures the setPathInfo method allows setting of a path
  *
  * @return void
  *
  * @test
  */
 public function setPathInfoAllowsSettingOfPathInfo()
 {
     $path = uniqid() . '/' . uniqid() . '/' . uniqid();
     $parts = explode('/', $path);
     $request = new \Request($this->config, []);
     $request->setPathInfo($path);
     $this->assertEquals($path, $request->getPathInfo());
     $this->assertEquals($path, $request->path_info);
     $this->assertEquals($parts[0], $request->getUrlElement(0));
     $this->assertEquals($parts[1], $request->getUrlElement(1));
     $this->assertEquals($parts[2], $request->getUrlElement(2));
 }