/** * Create a new application * * @param string $application_id id op the app * @param string $title name of the app * @param string $description description of the app * @param string $icon_url url to an icon * @param array $application_info array containing additional data about the application * * @return APIApplication|boolean */ function ws_pack_create_application($application_id, $title, $description = "", $icon_url = "", $application_info = array()) { $result = false; if (!($application = ws_pack_get_application_from_id($application_id))) { // check if api registration is allowed if (elgg_get_plugin_setting("allow_registration", "ws_pack") == "yes") { if (!empty($application_id) && !empty($title)) { $application = new APIApplication(); $application->title = $title; $application->application_id = $application_id; // set a description if (!empty($description)) { $application->description = $description; } if (!empty($icon_url)) { $application->icon_url = $icon_url; } if (!empty($application_info) && is_array($application_info)) { $application->extended_information = json_encode($application_info); } // make sure we can save the application $ia = elgg_set_ignore_access(true); if ($application->save()) { $result = $application; } // restore access elgg_set_ignore_access($ia); } } else { // registration is not allowed $result = -1; } } else { // already existed, shouldn't happen $result = $application; } return $result; }
/** * Get API keys for your application * * @param string $application_id a unique id for your application * @param string $title the title/name of your application * @param string $description an optional description of your application * @param string $icon_url an optional URL to the icon for your application * @param array $application_info more information in a key => value array * * @return SuccessResult|ErrorResult */ function ws_pack_auth_get_api_keys($application_id, $title, $description = "", $icon_url = "", $application_info = array()) { $result = false; $application = false; if ($application = ws_pack_get_application_from_id($application_id)) { // we found an application, check the status } elseif ($application = ws_pack_create_application($application_id, $title, $description, $icon_url, $application_info)) { // an application was created, check the status if ($application === -1) { // no application was created, because this has been disabled $application = false; $result = new ErrorResult(elgg_echo("ws_pack:api:auth:get_api_keys:disabled"), WS_PACK_API_REGISTRATION_DISABLED); } } // check the application satus if (!empty($application)) { switch ($application->getStatusCode()) { case SuccessResult::$RESULT_SUCCESS: $api_keys = $application->getApiKeys(); $result = new SuccessResult($api_keys); break; case ErrorResult::$RESULT_FAIL_APIKEY_DISABLED: $result = new ErrorResult(elgg_echo("ws_pack:api:application:status:disabled"), ErrorResult::$RESULT_FAIL_APIKEY_DISABLED); break; case ErrorResult::$RESULT_FAIL_APIKEY_INACTIVE: $result = new ErrorResult(elgg_echo("ws_pack:api:application:status:inactive"), ErrorResult::$RESULT_FAIL_APIKEY_INACTIVE); break; case APIApplication::STATE_PENDING: $result = new ErrorResult(elgg_echo("ws_pack:api:application:status:pending"), APIApplication::STATE_PENDING); break; } } if ($result === false) { $result = new ErrorResult(elgg_echo("APIException:ApiResultUnknown")); } return $result; }