Ejemplo n.º 1
0
 /**
  * @dataProvider getSetRoutersProvider
  *
  * @covers ApiRouter::getRouters
  * @covers ApiRouter::setRouters
  *
  * @param array $routers A list of Routers
  * @param array $expected The expected result of getRouters
  */
 public function testGetSetRouters(array $routers, array $expected)
 {
     $obj = new ApiRouter(array(), array(), array());
     $obj->setRouters($routers);
     $this->assertEquals($expected, $obj->getRouters());
 }
Ejemplo n.º 2
0
// config setup
define('BASEPATH', '.');
include '../config.php';
if ($config['mode'] == "development") {
    ini_set("html_errors", 0);
}
// database setup
include '../database.php';
$ji_db = new PDO('mysql:host=' . $db['default']['hostname'] . ';dbname=' . $db['default']['database'], $db['default']['username'], $db['default']['password']);
// Set the correct charset for this connection
$ji_db->query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
$ji_db->query('SET CHARACTER SET utf8');
// collect URL and headers
$request = new Request($config, $_SERVER);
// identify our user if applicable
$headers = array_change_key_case(apache_request_headers(), CASE_LOWER);
if (isset($headers['authorization'])) {
    $request->identifyUser($ji_db, $headers['authorization']);
}
// @TODO This feels just a tad... shonky.
$rules = json_decode(file_get_contents('../config/routes/2.1.json'), true);
$routers = ["v2.1" => new VersionedRouter('2.1', $config, $rules), '' => new DefaultRouter($config)];
$router = new ApiRouter($config, $routers, ['2']);
$route = $router->getRoute($request);
$return_data = $route->dispatch($request, $ji_db, $config);
if (isset($request->user_id)) {
    $return_data['meta']['user_uri'] = $request->base . '/' . $request->version . '/users/' . $request->user_id;
}
// Handle output
// TODO sort out headers, caching, etc
$request->getView()->render($return_data);