]> git.openstreetmap.org Git - nominatim.git/blob - lib-php/Status.php
52abfcd04916d038f0e95fcfeec9039acb88e3d1
[nominatim.git] / lib-php / Status.php
1 <?php
2
3 namespace Nominatim;
4
5 require_once(CONST_TokenizerDir.'/tokenizer.php');
6
7 use Exception;
8
9 class Status
10 {
11     protected $oDB;
12
13     public function __construct(&$oDB)
14     {
15         $this->oDB =& $oDB;
16     }
17
18     public function status()
19     {
20         if (!$this->oDB) {
21             throw new Exception('No database', 700);
22         }
23
24         try {
25             $this->oDB->connect();
26         } catch (\Nominatim\DatabaseError $e) {
27             throw new Exception('Database connection failed', 700);
28         }
29
30         $oTokenizer = new \Nominatim\Tokenizer($this->oDB);
31         $oTokenizer->checkStatus();
32     }
33
34     public function dataDate()
35     {
36         $sSQL = 'SELECT EXTRACT(EPOCH FROM lastimportdate) FROM import_status LIMIT 1';
37         $iDataDateEpoch = $this->oDB->getOne($sSQL);
38
39         if ($iDataDateEpoch === false) {
40             throw Exception('Data date query failed '.$iDataDateEpoch->getMessage(), 705);
41         }
42
43         return $iDataDateEpoch;
44     }
45
46     public function databaseVersion()
47     {
48         $sSQL = 'SELECT value FROM nominatim_properties WHERE property = \'database_version\'';
49         return $this->oDB->getOne($sSQL);
50     }
51 }