[index] Add '?action=list' to list bridges (#493)
Adds a new action '?action=list' to return a list of bridges as JSON formatted text. Each bridge brings following information: - status (active/inactive) - uri - name - parameters - maintainer - description For inactive bridges only the status is returned. Bridges that cannot be instantiated are considered inactive.
This commit is contained in:
parent
5fea9fc1f5
commit
7dee3a175a
1 changed files with 40 additions and 1 deletions
41
index.php
41
index.php
|
@ -99,7 +99,46 @@ try {
|
||||||
$action = array_key_exists('action', $params) ? $params['action'] : null;
|
$action = array_key_exists('action', $params) ? $params['action'] : null;
|
||||||
$bridge = array_key_exists('bridge', $params) ? $params['bridge'] : null;
|
$bridge = array_key_exists('bridge', $params) ? $params['bridge'] : null;
|
||||||
|
|
||||||
if($action === 'display' && !empty($bridge)) {
|
// Return list of bridges as JSON formatted text
|
||||||
|
if($action === 'list') {
|
||||||
|
|
||||||
|
$list = new StdClass();
|
||||||
|
$list->bridges = array();
|
||||||
|
$list->total = 0;
|
||||||
|
|
||||||
|
foreach(Bridge::listBridges() as $bridgeName) {
|
||||||
|
|
||||||
|
$bridge = Bridge::create($bridgeName);
|
||||||
|
|
||||||
|
if($bridge === false) { // Broken bridge, show as inactive
|
||||||
|
|
||||||
|
$list->bridges[$bridgeName] = array(
|
||||||
|
'status' => 'inactive'
|
||||||
|
);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$status = Bridge::isWhitelisted($whitelist_selection, strtolower($bridgeName)) ? 'active' : 'inactive';
|
||||||
|
|
||||||
|
$list->bridges[$bridgeName] = array(
|
||||||
|
'status' => $status,
|
||||||
|
'uri' => $bridge->getURI(),
|
||||||
|
'name' => $bridge->getName(),
|
||||||
|
'parameters' => $bridge->getParameters(),
|
||||||
|
'maintainer' => $bridge->getMaintainer(),
|
||||||
|
'description' => $bridge->getDescription()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$list->total = count($list->bridges);
|
||||||
|
|
||||||
|
header('Content-Type: application/json');
|
||||||
|
echo json_encode($list, JSON_PRETTY_PRINT);
|
||||||
|
|
||||||
|
} elseif($action === 'display' && !empty($bridge)) {
|
||||||
// DEPRECATED: 'nameBridge' scheme is replaced by 'name' in bridge parameter values
|
// DEPRECATED: 'nameBridge' scheme is replaced by 'name' in bridge parameter values
|
||||||
// this is to keep compatibility until futher complete removal
|
// this is to keep compatibility until futher complete removal
|
||||||
if(($pos = strpos($bridge, 'Bridge')) === (strlen($bridge) - strlen('Bridge'))) {
|
if(($pos = strpos($bridge, 'Bridge')) === (strlen($bridge) - strlen('Bridge'))) {
|
||||||
|
|
Loading…
Reference in a new issue