diff --git a/html/api_v0.php b/html/api_v0.php index a80370a98d..6c40a5cc4e 100644 --- a/html/api_v0.php +++ b/html/api_v0.php @@ -34,6 +34,7 @@ $app->group('/api', function() use ($app) { $app->delete('/:hostname', 'authToken', 'del_device')->name('del_device');//api/v0/devices/$hostname $app->get('/:hostname', 'authToken', 'get_device')->name('get_device');//api/v0/devices/$hostname $app->get('/:hostname/vlans', 'authToken', 'get_vlans')->name('get_vlans');//api/v0/devices/$hostname/vlans + $app->get('/:hostname/graphs', 'authToken', 'get_graphs')->name('get_graphs');//api/v0/devices/$hostname/graphs $app->get('/:hostname/:type', 'authToken', 'get_graph_generic_by_hostname')->name('get_graph_generic_by_hostname');//api/v0/devices/$hostname/$type $app->get('/:hostname/ports/:ifname', 'authToken', 'get_port_stats_by_port_hostname')->name('get_port_stats_by_port_hostname');//api/v0/devices/$hostname/ports/$ifName $app->get('/:hostname/ports/:ifname/:type', 'authToken', 'get_graph_by_port_hostname')->name('get_graph_by_port_hostname');//api/v0/devices/$hostname/ports/$ifName/$type diff --git a/html/includes/api_functions.inc.php b/html/includes/api_functions.inc.php index 607c4cacd0..ce4f95c60c 100644 --- a/html/includes/api_functions.inc.php +++ b/html/includes/api_functions.inc.php @@ -419,3 +419,28 @@ function get_graph_by_portgroup() { $app->response->headers->set('Content-Type', 'image/png'); require("includes/graphs/graph.inc.php"); } + +function get_graphs() { + global $config; + $code = 200; + $status = 'ok'; + $message = ''; + $app = \Slim\Slim::getInstance(); + $router = $app->router()->getCurrentRoute()->getParams(); + $hostname = $router['hostname']; + + // use hostname as device_id if it's all digits + $device_id = ctype_digit($hostname) ? $hostname : getidbyname($hostname); + $graphs = array(); + $graphs[] = array('desc' => 'Poller Time', 'name' => 'device_poller_perf'); + $graphs[] = array('desc' => 'Ping Response', 'name' => 'device_ping_perf'); + foreach (dbFetchRows("SELECT * FROM device_graphs WHERE device_id = ? ORDER BY graph", array($device_id)) as $graph) { + $desc = $config['graph_types']['device'][$graph['graph']]['descr']; + $graphs[] = array('desc' => $desc, 'name' => $graph['graph']); + } + $total_graphs = count($graphs); + $output = array("status" => "$status", "err-msg" => $message, "count" => $total_graphs, "graphs" => $graphs); + $app->response->setStatus($code); + $app->response->headers->set('Content-Type', 'application/json'); + echo _json_encode($output); +}