#!/usr/bin/php
<?php
require_once 'pest/PestJSON.php';
require_once 'utils/params.php';

// Parse options
// sng_rest --server <server url> --request [get|post] <method> <module> <object type> <obj name>
// <child type> <child name> [--file <JSON Parameter file>]

$options = parseParameters(
  array( 'server:', 'file:', 'request:' ) );

$url = $options['server'] .'/SAFe/sng_rest/api/';
$file = $options['file'];
$request = $options['request'];
if(!$request){
  $request = 'get';
}

$content = '';
if($file) {
  $content = json_decode(@file_get_contents($file), true);
}

// Remove know arguments
unset($options['server']);
unset($options['request']);
unset($options['file']);
unset($options[0]);

$url_segments = '';
foreach($options as $option) {
  $url_segments .= '/'.$option;
}
try {
  $pest = new PestJSON($url);
  switch($request){
  case 'get':
    $status = $pest->get($url_segments,$content);
    break;
  case 'post':
    $status = $pest->post($url_segments, $content);
    break;
  }
} catch(Exception $e) {
  $status = json_decode($e->getMessage(), true);
}

if(isset($status['data']))
  $data = $status['data'];
if(isset($status['error']))
  $error = $status['error'];
unset($status['data']);
unset($status['error']);
$rc = $pest->lastStatus();
print('URL      : ' . $url.PHP_EOL);
print('Segments : ' . $url_segments.PHP_EOL);
print('Output   : ' . json_encode($status) .PHP_EOL);
if($data)
  print('Data     : ' . json_encode($data) .PHP_EOL);
if($error)
  print('Error    : ' . json_encode($error) .PHP_EOL);
print('Status   : ' . $rc.PHP_EOL);

if(200 == $rc) {
  $rc = 0;
}
exit($rc);

?>
