]> git.openstreetmap.org Git - nominatim.git/blob - website/status.php
set exception handler by request format, not always HTML
[nominatim.git] / website / status.php
1 <?php
2
3 @define('CONST_ConnectionBucket_PageType', 'Status');
4
5 require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
6 require_once(CONST_BasePath.'/lib/init-website.php');
7 require_once(CONST_BasePath.'/lib/ParameterParser.php');
8 require_once(CONST_BasePath.'/lib/Status.php');
9
10 $oParams = new Nominatim\ParameterParser();
11 $sOutputFormat = $oParams->getSet('format', array('text', 'json'), 'text');
12
13 $oDB = DB::connect(CONST_Database_DSN, false);
14 $oStatus = new Nominatim\Status($oDB);
15
16
17 if ($sOutputFormat == 'json') {
18     header('content-type: application/json; charset=UTF-8');
19 }
20
21
22 try {
23     $oStatus->status();
24 } catch (Exception $oErr) {
25     if ($sOutputFormat == 'json') {
26         $aResponse = array(
27                       'status' => $oErr->getCode(),
28                       'message' => $oErr->getMessage()
29                      );
30         javascript_renderData($aResponse);
31     } else {
32         header('HTTP/1.0 500 Internal Server Error');
33         echo 'ERROR: '.$oErr->getMessage();
34     }
35     exit;
36 }
37
38
39 if ($sOutputFormat == 'json') {
40     $epoch = $oStatus->dataDate();
41     $aResponse = array(
42                   'status' => 0,
43                   'message' => 'OK',
44                   'data_updated' => (new DateTime('@'.$epoch))->format(DateTime::RFC3339)
45                  );
46     javascript_renderData($aResponse);
47 } else {
48     echo 'OK';
49 }
50
51 exit;