aboutsummaryrefslogtreecommitdiff
path: root/mod/apitest
diff options
context:
space:
mode:
authordave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-06-17 08:07:25 +0000
committerdave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-06-17 08:07:25 +0000
commit35ad4f06a100ff23556f598c0fb51724b79f2bd0 (patch)
tree08347467670537000d727513f33309d394858856 /mod/apitest
parent472aa15c24655c4d978019edaa4669700964325d (diff)
downloadelgg-35ad4f06a100ff23556f598c0fb51724b79f2bd0.tar.gz
elgg-35ad4f06a100ff23556f598c0fb51724b79f2bd0.tar.bz2
removed guid exporter, exporttest and apitest from core and put them into the plugins folder
git-svn-id: https://code.elgg.org/elgg/trunk@941 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/apitest')
-rw-r--r--mod/apitest/index.php79
-rw-r--r--mod/apitest/start.php251
-rw-r--r--mod/apitest/views/default/apitest/configform.php18
-rw-r--r--mod/apitest/views/default/apitest/main.php34
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