6 * @author Jan Altensen (Stricted)
7 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
8 * @copyright 2014-2015 Jan Altensen (Stricted)
10 class ApiPage
extends AbstractPage
{
11 const AVAILABLE_DURING_OFFLINE_MODE
= true;
13 public function prepare() {
14 // todo: user/server seletion
16 if (isset($_REQUEST['key'])) {
17 $key = $_REQUEST['key'];
20 if (!defined('DNS_API_KEY') ||
$key != DNS_API_KEY ||
empty($key)) {
21 header('Content-Type: application/json');
22 echo json_encode(array("error" => "wrong access key"), JSON_PRETTY_PRINT
);
28 $sql = "SELECT * FROM dns_soa where active = ?";
29 $statement = DNS
::getDB()->query($sql, array(1));
31 while ($zone = DNS
::getDB()->fetch_array($statement)) {
32 $data[$zone['origin']] = array();
33 $data[$zone['origin']]['soa'] = $zone;
34 $data[$zone['origin']]['rr'] = array();
35 $data[$zone['origin']]['sec'] = array();
37 /* resource records */
38 $sql2 = "SELECT * FROM dns_rr where zone = ? and active = ?";
39 $statement2 = DNS
::getDB()->query($sql2, array($zone['id'], 1));
40 while ($rr = DNS
::getDB()->fetch_array($statement2)) {
41 $data[$zone['origin']]['rr'][] = $rr;
46 $sql3 = "SELECT * FROM dns_sec where zone = ? and active = ?";
47 $statement3 = DNS
::getDB()->query($sql3, array($zone['id'], 1));
48 while ($sec = DNS
::getDB()->fetch_array($statement3)) {
49 $data[$zone['origin']]['sec'][] = $sec;
54 header('Content-Type: application/json');
55 echo json_encode($data, JSON_PRETTY_PRINT
);