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);