<?PHP
require('config.php');

if (!isset($_SERVER['PHP_AUTH_USER'])) {
    // Check username set, if not present challenge window
    header('WWW-Authenticate: Basic realm="CXCOM"');
    header('HTTP/1.0 401 Unauthorized');
    // Return Access Denied if challenge is not responded to
    echo json_encode(array("error"=>"Access Denied"));
    exit; // Ensure no other content is returned
}

// Confirm username and password match confi parameters
if ($_SERVER['PHP_AUTH_USER'] == $configUser && $_SERVER['PHP_AUTH_PW'] == $configSecret) {

  // Set default Account ID
  $accountId = '10788';
  if(isset($_GET['accountId'])){
    // Update Account ID if defined in URL
    $accountId = $_GET['accountId'];
  }

  if(!isset($_GET['endpoint'])){
    // Return empty array if no endpoint parameter set
    echo "[]";
    exit;
  } else {
    // Define cert location and API URL
    define('API_HOST', 'https://api.netsip.com.au');
    define('API_CLIENT_KEYFILE', '/etc/ssl/netsip/cxcom-api.key');
    define('API_CLIENT_CERTFILE', '/etc/ssl/netsip/cxcom-api.crt');
    define('ACCOUNT_ID', $accountId);
    require __DIR__.'/netsipapi.php';

    try {
      // Define NetSIP API based on endpoint set
      switch($_GET['endpoint']){
        case "indials":
          $api = new NetSIPApi('netsip.indials', '2.2', API_HOST, API_CLIENT_CERTFILE, API_CLIENT_KEYFILE);
          $result = $api->get_indials($accountId);
          echo json_encode($result->results);
          break;
        case "trunks":
          $api = new NetSIPApi('netsip.sip_trunks', '3', API_HOST, API_CLIENT_CERTFILE, API_CLIENT_KEYFILE);
          $result = $api->get_trunks($accountId);
          echo json_encode($result);
          break;
        default:
          // Return empty array if no match to above
          echo "[]";
          exit;
      }
    } catch (\Exception $e) {
      // Return the error if any present from above API calls
      echo "ERROR: " . $e->getMessage();
      exit;
    }
  }
} else {
  // Return Access Denied if username and password don't match.
  header('HTTP/1.0 403 Forbidden');
  echo json_encode(array("error"=>"Access Denied"));
  exit;
}

?>
