diff options
Diffstat (limited to 'mod/apitest')
| -rw-r--r-- | mod/apitest/index.php | 79 | ||||
| -rw-r--r-- | mod/apitest/start.php | 251 | ||||
| -rw-r--r-- | mod/apitest/views/default/apitest/configform.php | 18 | ||||
| -rw-r--r-- | mod/apitest/views/default/apitest/main.php | 34 | 
4 files changed, 0 insertions, 382 deletions
| diff --git a/mod/apitest/index.php b/mod/apitest/index.php deleted file mode 100644 index 105c44409..000000000 --- a/mod/apitest/index.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -	/** -	 * Elgg API Tester -	 *  -	 * @package ElggDevTools -	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 -	 * @author Marcus Povey <marcus@marcus-povey.co.uk> -	 * @copyright Curverider Ltd 2008 -	 * @link http://elgg.com/ -	 */ - -	require_once("../../engine/start.php"); -	 -	global $CONFIG, $API_CLIENT; -	 -	 -	// Get some variables -	$apikey = get_input("apikey"); -	$secret = get_input("secret"); -	$endpoint = get_input("endpoint"); -	 -	 -	if ($_REQUEST['action'] == "configure") -   		apitest_configure($apikey, $secret, $endpoint); -   		 -	// Get a list of commands -	if ($API_CLIENT->configured == true) -	{ -		$commands = apitest_call( -	                array ( -	                        'method' => 'system.api.list' -	                ) -	    ); -	    $commands = $commands->result; -	} - -	/* See if we are executing a method - This is a quick demo, obviously use functions as they are much easier!*/ -	if (isset($_REQUEST['method'])) -	{ -	 -		$command_details = $commands[$_REQUEST['method']]; -		$auth_req = $command_details['require_auth'] == 1 ? true : false; -		 -		$params = array(); -		$params['method'] = $_REQUEST['method']; -		if ($auth_req)  -			$params['auth_token'] = $_REQUEST['auth_token']; -		 -		foreach ($command_details['parameters'] as $k => $v) -		{ -			$params[$k] = $_REQUEST[$k]; -		} -		 -		$result = apitest_call($params, $_REQUEST['post_data']); -		 -		 -		if ($result->status == 0) -			system_message("<div id=\"result\"><pre>".print_r($result->result, true)."</pre></div>"); -		else  -			register_error($result->message); -					 -		if (!is_object($result)) echo $LAST_CALL_RAW; -		 -		 -		 -	} - -	// Draw command form -	$list = ""; -	foreach ($commands as $command => $details) -		$list .= apitest_draw_command_form($command, $details); -		 -	$body = elgg_view_layout("one_column", elgg_view("apitest/main", array( -		"config" => apitest_draw_config_panel(), -		"commandlist" => $list -	))); -	 -	page_draw("API Commands",$body); -?>
\ No newline at end of file diff --git a/mod/apitest/start.php b/mod/apitest/start.php deleted file mode 100644 index d03c7925a..000000000 --- a/mod/apitest/start.php +++ /dev/null @@ -1,251 +0,0 @@ -<?php -	/** -	 * Elgg API Tester -	 *  -	 * @package ElggDevTools -	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 -	 * @author Marcus Povey <marcus@marcus-povey.co.uk> -	 * @copyright Curverider Ltd 2008 -	 * @link http://elgg.com/ -	 */ - -	$API_CLIENT = new stdClass; -	 -	// Status variables we can query later -	$LAST_CALL = null;  -	$LAST_CALL_RAW = ""; -	$LAST_ERROR = null; -	 - -	function apitest_init($event, $object_type, $object = null) { -		 -		global $CONFIG; -			 -		add_menu("API Test",$CONFIG->wwwroot . "mod/apitest/",array( -				menu_item("The API Tester plugin",$CONFIG->wwwroot."mod/apitest/"), -		)); -	} -	 -	/** -	 * Generate our HMAC. -	 */ -	function apitest_calculate_hmac($algo, $time, $api_key, $secret_key, $get_variables, $post_hash = "") -	{ -		$ctx = hash_init($algo, HASH_HMAC, $secret_key); - -		hash_update($ctx, trim($time)); -		hash_update($ctx, trim($api_key)); -		hash_update($ctx, trim($get_variables)); -		if (trim($post_hash)!="") hash_update($ctx, trim($post_hash)); - -		return hash_final($ctx); -	} - -	/** -	 * Generate our POST hash. -	 */ -	function apitest_calculate_posthash($postdata, $algo) -	{ -		$ctx = hash_init($algo); - -		hash_update($ctx, $postdata); - -		return hash_final($ctx); -	} - -	/** -	 * Serialise HTTP headers. -	 */ -	function apitest_serialise_headers(array $headers) -	{ -		$headers_str = ""; - -		foreach ($headers as $k => $v) -			$headers_str .= trim($k) . ": " . trim($v) . "\r\n"; - -		return trim($headers_str);		 -	} - -	/** -	 * Make a raw call. -	 * @param array $method Method call parameters. -	 * @param string $postdata Optional POST data. -	 * @param string $content_type The content type. -	 * @return stdClass  -	 */ -	function apitest_call(array $method, $postdata = "", $content_type = 'application/octet-stream') -	{ -		// Get the config -		global $API_CLIENT, $LAST_CALL, $LAST_CALL_RAW, $LAST_ERROR;  - -		$headers = array(); -		$encoded_params = array(); - -		$time = microtime(true); // Get the current time in microseconds -		$request = ($postdata!="" ? "POST" : "GET"); // Get the request method, either post or get -		 -		// Hard code the format - we're using PHP, so lets use PHP serialisation. -		$method['format'] = "php"; - -		// URL encode all the parameters -		foreach ($method as $k => $v){ -			if (is_array($v)) -			{ -				foreach ($v as $v2) -				{ -					 $encoded_params[] = urlencode($k).'[]='.urlencode($v2); -				} -			} -			else -				$encoded_params[] = urlencode($k).'='.urlencode($v); -		} - -		$params = implode('&', $encoded_params); -		 -		// Put together the query string -		$url = $API_CLIENT->api_endpoint."?". $params; - -		// Construct headers -		$posthash = ""; -		if ($request=='POST') -		{		 -			$posthash = apitest_calculate_posthash($postdata, $API_CLIENT->postdata_hash_algo); - -			$headers['X-Elgg-posthash'] = $posthash; -			$headers['X-Elgg-posthash-algo'] = $API_CLIENT->postdata_hash_algo; -			$headers['Content-type'] = $content_type; -			$headers['Content-Length'] = strlen($postdata); -		} - -		$headers['X-Elgg-apikey'] = $API_CLIENT->api_key; -		$headers['X-Elgg-time'] = $time; -		$headers['X-Elgg-hmac-algo'] = $API_CLIENT->hmac_algo; -		$headers['X-Elgg-hmac'] = apitest_calculate_hmac($API_CLIENT->hmac_algo,  -									$time, -									$API_CLIENT->api_key, -									$API_CLIENT->secret, -									$params, -									$posthash -		); - -		// Configure stream options -		$opts = array( -  			'http'=>array( -    				'method'=> $request, -    				'header'=> apitest_serialise_headers($headers) -			) -		); - -		// If this is a post request then set the content -		if ($request=='POST') -			$opts['http']['content'] = $postdata;  - -		// Set stream options -		$context = stream_context_create($opts); - -		// Send the query and get the result and decode. -		$LAST_CALL_RAW = file_get_contents($url, false, $context); -		$LAST_CALL = unserialize($LAST_CALL_RAW); -		 -		if (($LAST_CALL) && ($LAST_CALL->status!=0)) // Check to see if this was an error -			$LAST_ERROR = $LAST_CALL; -		 -		return $LAST_CALL; // Return a stdClass containing the API result -	} -	 -	function apitest_configure($apikey, $secret, $endpoint = "") -	{ -		global $CONFIG; -		global $API_CLIENT; -		 -		$apikey = sanitise_string($apikey); -		$secret = sanitise_string($secret); -		$endpoint = sanitise_string($endpoint); -		 -		if ($endpoint=="") -			$endpoint = $CONFIG->wwwroot . "services/api/rest.php"; -			 -		$API_CLIENT->api_key = $apikey; -		$API_CLIENT->secret = $secret; -		$API_CLIENT->api_endpoint = $endpoint; -		$API_CLIENT->hmac_algo = 'sha1'; -		$API_CLIENT->postdata_hash_algo = 'md5'; -		$API_CLIENT->configured = true; -	} -	 -	function apitest_draw_command_form($command, $details) -	{ -		global $API_CLIENT; -		 -		$params = array(); -		 -		// If authentication is required then ensure this is prompted for -		if ($details->require_auth == true) -			$params['auth_token'] = $_REQUEST['auth_token']; -					 -		 -		// Compile a list of parameters -		foreach ($details['parameters'] as $k => $v) -		{ -			$params[$k] = $_REQUEST[$k]; -		} -		 -		// Construct list of variables -		$variables = ""; -		foreach ($params as $k => $v) -		{ -			$variables .= $k; -			$variables .= "<input type='text' name='$k' value='$v' />"; -			 -			if (isset($details['parameters'][$k]['required']) && ($details['parameters'][$k]['required']!=0)) -				$variables .= " (optional)"; -							 -			$variables .= ", "; -		} -		 -		// Do we need to provide post data? -		$postdata = ""; -		if ($details->call_method == 'POST') -			$postdata = "<span onClick=\"showhide('$command')\"><a href=\"#\">add post data...</a></span>"; -				 -		$body = <<< END -			<form method='post'> -				<p> -					<input type="hidden" name="action" value="configure" /> -					<input type="hidden" name="apikey" value="{$API_CLIENT->api_key}" /></p> -					<input type="hidden" name="secret" value="{$API_CLIENT->secret}" /></p> -					<input type="hidden" name="endpoint" value="{$API_CLIENT->api_endpoint}" /></p> - -					<input type='hidden' name='method' value='$command' /> -					<b>$command (<span onClick="showhide('{$command}_desc')"><a href="#">desc</a></span>):</b> -					 -					$variables - -					$postdata -					 -					<input type='submit' name='>>' value='>>' /> -					<div id="{$command}_desc" style="display:none">{$details['description']}</div> -					<div id="$command" style="display:none"><textarea name="post_data" cols="50" rows="10"></textarea></div> - -				</p> -			</form> -END; - -		return $body; -	} -	 -	 -	function apitest_draw_config_panel() -	{	 -		global $API_CLIENT; -		 -		return elgg_view("apitest/configform", array( -			"apikey" => $API_CLIENT->api_key, -			"secret" => $API_CLIENT->secret, -			"endpoint" => $API_CLIENT->api_endpoint -		)); -	} -	 -	// Make sure test_init is called on initialisation -	register_elgg_event_handler('init','system','apitest_init'); -?>
\ No newline at end of file diff --git a/mod/apitest/views/default/apitest/configform.php b/mod/apitest/views/default/apitest/configform.php deleted file mode 100644 index ccada5940..000000000 --- a/mod/apitest/views/default/apitest/configform.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php -	/** -	 * Elgg API Tester -	 *  -	 * @package ElggDevTools -	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 -	 * @author Marcus Povey <marcus@marcus-povey.co.uk> -	 * @copyright Curverider Ltd 2008 -	 * @link http://elgg.com/ -	 */ -?> -<form method="post"> -	<input type="hidden" name="action" value="configure" /> -	<p>API Key: <input type="text" name="apikey" value="<?php echo $vars['apikey'];?>" /></p> -	<p>Secret Key: <input type="password" name="secret" value="<?php echo $vars['secret'];?>" /></p> -	<p>Endpoint: <input type="text" name="endpoint" value="<?php echo $vars['endpoint'];?>" /></p> -	<input type="submit" name="submit" value="Set.." /> -</form>
\ No newline at end of file diff --git a/mod/apitest/views/default/apitest/main.php b/mod/apitest/views/default/apitest/main.php deleted file mode 100644 index bca518cc0..000000000 --- a/mod/apitest/views/default/apitest/main.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -	/** -	 * Elgg API Tester -	 *  -	 * @package ElggDevTools -	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 -	 * @author Marcus Povey <marcus@marcus-povey.co.uk> -	 * @copyright Curverider Ltd 2008 -	 * @link http://elgg.com/ -	 */ -?> -<script type="text/javascript" language="javascript"> -<!-- -function showhide(oid) -{ -	var e = document.getElementById(oid); -	if(e.style.display == 'none') { -		e.style.display = 'block'; -	} else { -		e.style.display = 'none'; -	} -} -// --> -</script> - -<div id="config"> -		<?php echo $vars['config']; ?> -</div> - -<hr /> - -<div id="list"> -	<?php echo $vars['commandlist']; ?> -</div>
\ No newline at end of file | 
