File size: 2,065 Bytes
7a023cc da2c1b4 7a023cc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <?php
declare(strict_types=1);
// ---------------------------------------------------------------------------
// Front Controller
// ---------------------------------------------------------------------------
require_once __DIR__ . '/../src/bootstrap.php';
// Apply security headers on every request
Security::applyHeaders();
// ---------------------------------------------------------------------------
// Route definitions
// ---------------------------------------------------------------------------
$router = new Router();
// Pages
$router->get('/', ['HomeController', 'index']);
$router->get('/browse', ['BrowseController', 'index']);
$router->get('/browse/{collection}', ['BrowseController', 'collection']);
$router->get('/document/{id}', ['DocumentController', 'show']);
$router->get('/search', ['SearchController', 'index']);
$router->get('/similar/{pageId}', ['SemanticController', 'similar']);
$router->get('/timeline', ['TimelineController', 'index']);
$router->get('/crisis/{id}', ['CrisisController', 'show']);
$router->get('/network', ['NetworkController', 'index']);
$router->get('/dashboard', ['DashboardController', 'index']);
$router->get('/pdf/{id}', ['PdfController', 'stream']);
// API (JSON)
$router->get('/api/search', ['ApiController', 'search']);
$router->get('/api/page/{docId}/{pageNum}', ['ApiController', 'pageText']);
$router->get('/api/stats', ['ApiController', 'stats']);
$router->get('/api/events', ['ApiController', 'events']);
$router->get('/api/document/{id}/events', ['ApiController', 'documentEvents']);
// ---------------------------------------------------------------------------
// Dispatch
// ---------------------------------------------------------------------------
$uri = $_SERVER['REQUEST_URI'] ?? '/';
$method = $_SERVER['REQUEST_METHOD'] ?? 'GET';
$router->dispatch($uri, $method);
|