File Editor
Directories:
.. (Back)
parser
storage
Files:
api.php
config.php
http.php
i18n.php
json.php
request.php
rules.php
shutdown.php
storage.php
utils.php
view.php
waf.php
xmlrpc.php
Create New File
Create
Edit File: api.php
<?php class wfWafApiException extends Exception { } class wfWafMissingApiKeyException extends wfWafApiException { } class wfWafApi { private $waf; private $apiKey; public function __construct($waf) { $this->waf = $waf; $this->apiKey = $this->getConfig('apiKey'); if (empty($this->apiKey)) throw new wfWafMissingApiKeyException('No API key is available'); } private function getConfig($key) { return $this->waf->getStorageEngine()->getConfig($key, null, 'synced'); } private function guessSiteUrl() { return sprintf('%s://%s/', $this->waf->getRequest()->getProtocol(), $this->waf->getRequest()->getHost()); } private function guessSiteUrlIfNecessary($configKey) { $url = $this->getConfig($configKey); if (!$url) $url = $this->guessSiteUrl(); return $url; } private function getSiteUrl() { return $this->guessSiteUrlIfNecessary('siteURL'); } private function getHomeUrl() { return $this->guessSiteUrlIfNecessary('homeURL'); } private function buildQueryString($additionalParameters = array()) { $parameters = array( 'k' => $this->apiKey, 's' => $this->getSiteUrl(), 'h' => $this->getHomeUrl(), 't' => microtime(true), 'lang' => $this->getConfig('WPLANG') ); $parameters = array_merge($parameters, $additionalParameters); return http_build_query($parameters, '', '&'); } private function buildUrl($queryParameters, $path = '') { return WFWAF_API_URL_SEC . $path . '?' . $this->buildQueryString($queryParameters); } public function actionGet($action, $parameters = array()) { $parameters['action'] = $action; $url = $this->buildUrl($parameters); $response = wfWAFHTTP::get($url); if ($response === false) throw new wfWafApiException('Request failed'); return $response; } }
Save Changes
Rename File
Rename