X-Git-Url: https://git.openstreetmap.org/nominatim.git/blobdiff_plain/6a3c6c43ea7133c934834ce1face9212f4e3d239..513bf485f20f0308c7f25c96717190a354bf0ec3:/website/status.php diff --git a/website/status.php b/website/status.php index 124dc507..c0c379d0 100644 --- a/website/status.php +++ b/website/status.php @@ -1,37 +1,51 @@ getSet('format', array('text', 'json'), 'text'); -function statusError($sMsg) -{ - header('HTTP/1.0 500 Internal Server Error'); - echo 'ERROR: '.$sMsg; - exit; -} +$oDB = DB::connect(CONST_Database_DSN, false); +$oStatus = new Nominatim\Status($oDB); -$oDB =& DB::connect(CONST_Database_DSN, false); -if (!$oDB || PEAR::isError($oDB)) { - statusError('No database'); -} -$sStandardWord = $oDB->getOne("select make_standard_name('a')"); -if (PEAR::isError($sStandardWord)) { - statusError('Module failed'); -} -if ($sStandardWord != 'a') { - statusError('Module call failed'); +if ($sOutputFormat == 'json') { + header('content-type: application/json; charset=UTF-8'); } -$iWordID = $oDB->getOne("select word_id,word_token, word, class, type, country_code, operator, search_name_count from word where word_token in (' a')"); -if (PEAR::isError($iWordID)) { - statusError('Query failed'); + +try { + $oStatus->status(); +} catch (Exception $oErr) { + if ($sOutputFormat == 'json') { + $aResponse = array( + 'status' => $oErr->getCode(), + 'message' => $oErr->getMessage() + ); + javascript_renderData($aResponse); + } else { + header('HTTP/1.0 500 Internal Server Error'); + echo 'ERROR: '.$oErr->getMessage(); + } + exit; } -if (!$iWordID) { - statusError('No value'); + + +if ($sOutputFormat == 'json') { + $epoch = $oStatus->dataDate(); + $aResponse = array( + 'status' => 0, + 'message' => 'OK', + 'data_updated' => (new DateTime('@'.$epoch))->format(DateTime::RFC3339) + ); + javascript_renderData($aResponse); +} else { + echo 'OK'; } -echo 'OK'; exit;