diff --git a/README.md b/README.md index bc1fdf1..f610baa 100644 --- a/README.md +++ b/README.md @@ -54,15 +54,15 @@ Simple usage looks like: ```php // Set the variables -RESO\RESO::setClientId('YOUR_CLIENT_ID'); -RESO\RESO::setClientSecret('YOUR_CLIENT_SECRET'); -RESO\RESO::setAPIAuthUrl('https://op.api.crmls.org/identity/connect/authorize'); -RESO\RESO::setAPITokenUrl('https://op.api.crmls.org/identity/connect/token'); -RESO\RESO::setAPIRequestUrl('https://h.api.crmls.org/RESO/OData/'); +RESO\Reso::setClientId('YOUR_CLIENT_ID'); +RESO\Reso::setClientSecret('YOUR_CLIENT_SECRET'); +RESO\Reso::setAPIAuthUrl('https://op.api.crmls.org/identity/connect/authorize'); +RESO\Reso::setAPITokenUrl('https://op.api.crmls.org/identity/connect/token'); +RESO\Reso::setAPIRequestUrl('https://h.api.crmls.org/RESO/OData/'); // Authorize user $auth_code = RESO\OpenIDConnect::authorize('YOUR_USERNAME', 'YOUR_PASSWORD', 'https://openid.reso.org/', 'ODataApi'); // Get access token -RESO\RESO::setAccessToken(RESO\OpenIDConnect::requestAccessToken($auth_code, 'https://openid.reso.org/', 'ODataApi')); +RESO\Reso::setAccessToken(RESO\OpenIDConnect::requestAccessToken($auth_code, 'https://openid.reso.org/', 'ODataApi')); // Set the Accept header (if needed) RESO\Request::setAcceptType("json"); // Retrieve top 10 properties from the RESO API endpoint @@ -88,9 +88,9 @@ The SDK has a built-in logger for debug / testing purposes. Usage: ```php // Set logging -RESO\RESO::setLogEnabled(true); // enables logging in general. Default: false. -RESO\RESO::setLogConsole(true); // enables log messages to console. -RESO\RESO::setLogFile(true); // enabled log messages to be written to log file. +RESO\Reso::setLogEnabled(true); // enables logging in general. Default: false. +RESO\Reso::setLogConsole(true); // enables log messages to console. +RESO\Reso::setLogFile(true); // enabled log messages to be written to log file. ``` diff --git a/examples/cli-example/bridge.php b/examples/cli-example/bridge.php new file mode 100644 index 0000000..d866f7a --- /dev/null +++ b/examples/cli-example/bridge.php @@ -0,0 +1,19 @@ +#!/usr/bin/php +

API PHP SDK Web Example

'; - echo '

RESO API PHP SDK version: '.\RESO\RESO::getApiSdkVersion().'
PHP version: '.phpversion().'

'; + echo '

RESO API PHP SDK version: '.\RESO\Reso::getApiSdkVersion().'
PHP version: '.phpversion().'

'; // We do have a login request - process it if($_POST && isset($_POST['username']) && isset($_POST['password'])) { @@ -64,7 +64,7 @@ // Get auth token $token = RESO\OpenIDConnect::requestAccessToken($auth_code, $redirect_uri, $scope); if(!$token) die("Could not obtain token."); - RESO\RESO::setAccessToken($token); + RESO\Reso::setAccessToken($token); // Login successful echo '

Login successful!

@@ -97,7 +97,7 @@

Request output:

'; // Set the access token - RESO\RESO::setAccessToken($_POST['token']); + RESO\Reso::setAccessToken($_POST['token']); // Process the request $data = RESO\Request::request($_POST['request'], $_POST['format']); diff --git a/lib/Error/Base.php b/lib/Error/Base.php index 03e2898..c8ce904 100644 --- a/lib/Error/Base.php +++ b/lib/Error/Base.php @@ -18,7 +18,7 @@ public function __construct($message, $httpStatus = null, $httpBody = null, $jso $this->requestId = $httpHeaders['Request-Id']; } - \RESO\RESO::logMessage("EXCEPTION: ".$message); + \RESO\Reso::logMessage("EXCEPTION: ".$message); } public function getHttpStatus() diff --git a/lib/Log/Base.php b/lib/Log/Base.php index dd360f3..b5a714f 100644 --- a/lib/Log/Base.php +++ b/lib/Log/Base.php @@ -5,16 +5,16 @@ abstract class Base { public static function logMessage($message) { - if(!\RESO\RESO::getLogEnabled()) { + if(!\RESO\Reso::getLogEnabled()) { return false; } - if(\RESO\RESO::getLogConsole()) { + if(\RESO\Reso::getLogConsole()) { self::logConsole($message); } - if(\RESO\RESO::getLogFile() && \RESO\RESO::getLogFileName()) { - self::logFile(\RESO\RESO::getLogFileName(), $message); + if(\RESO\Reso::getLogFile() && \RESO\Reso::getLogFileName()) { + self::logFile(\RESO\Reso::getLogFileName(), $message); } } diff --git a/lib/OpenIDConnect.php b/lib/OpenIDConnect.php index fb398bb..0aea7c8 100644 --- a/lib/OpenIDConnect.php +++ b/lib/OpenIDConnect.php @@ -22,11 +22,11 @@ class OpenIDConnect */ public static function authorize($username, $password, $redirect_uri, $scope = "ODataApi") { - \RESO\RESO::logMessage("Initiating RESO API authorization."); + \RESO\Reso::logMessage("Initiating RESO API authorization."); // Get variables - $api_auth_url = \RESO\RESO::getAPIAuthUrl(); - $client_id = \RESO\RESO::getClientId(); + $api_auth_url = \RESO\Reso::getAPIAuthUrl(); + $client_id = \RESO\Reso::getClientId(); $curl = new \RESO\HttpClient\CurlClient(); @@ -108,12 +108,12 @@ public static function authorize($username, $password, $redirect_uri, $scope = " */ public static function requestAccessToken($auth_code, $redirect_uri, $scope = "ODataApi") { - \RESO\RESO::logMessage("Sending authorization request to retrieve access token."); + \RESO\Reso::logMessage("Sending authorization request to retrieve access token."); // Get variables - $api_token_url = \RESO\RESO::getAPITokenUrl(); - $client_id = \RESO\RESO::getClientId(); - $client_secret = \RESO\RESO::getClientSecret(); + $api_token_url = \RESO\Reso::getAPITokenUrl(); + $client_id = \RESO\Reso::getClientId(); + $client_secret = \RESO\Reso::getClientSecret(); $curl = new \RESO\HttpClient\CurlClient(); @@ -141,13 +141,13 @@ public static function requestAccessToken($auth_code, $redirect_uri, $scope = "O */ public static function requestRefreshToken() { - \RESO\RESO::logMessage("Requesting refresh token."); + \RESO\Reso::logMessage("Requesting refresh token."); // Get variables - $access_token = \RESO\RESO::getAccessToken(); - $api_token_url = \RESO\RESO::getAPITokenUrl(); - $client_id = \RESO\RESO::getClientId(); - $client_secret = \RESO\RESO::getClientSecret(); + $access_token = \RESO\Reso::getAccessToken(); + $api_token_url = \RESO\Reso::getAPITokenUrl(); + $client_id = \RESO\Reso::getClientId(); + $client_secret = \RESO\Reso::getClientSecret(); $curl = new \RESO\HttpClient\CurlClient(); @@ -177,8 +177,8 @@ public static function requestRefreshToken() public static function getLoginUrl($redirect_uri, $scope = "ODataApi") { // Get variables - $api_auth_url = \RESO\RESO::getAPIAuthUrl(); - $client_id = \RESO\RESO::getClientId(); + $api_auth_url = \RESO\Reso::getAPIAuthUrl(); + $client_id = \RESO\Reso::getClientId(); // Authentication request parameters $params = array( diff --git a/lib/Request.php b/lib/Request.php index 3442c53..b7f3d3b 100644 --- a/lib/Request.php +++ b/lib/Request.php @@ -22,11 +22,11 @@ abstract class Request */ public static function request($request, $output_format = "xml", $decode_json = false) { - \RESO\RESO::logMessage("Sending request '".$request."' to RESO API."); + \RESO\Reso::logMessage("Sending request '".$request."' to RESO API."); // Get variables - $api_request_url = \RESO\RESO::getAPIRequestUrl(); - $token = \RESO\RESO::getAccessToken(); + $api_request_url = \RESO\Reso::getAPIRequestUrl(); + $token = \RESO\Reso::getAccessToken(); if(!in_array($output_format, self::$validOutputFormats)) { $output_format = "json"; @@ -90,11 +90,11 @@ public static function request($request, $output_format = "xml", $decode_json = */ public static function requestPost($request, $params = array()) { - \RESO\RESO::logMessage("Sending POST request '".$request."' to RESO API."); + \RESO\Reso::logMessage("Sending POST request '".$request."' to RESO API."); // Get variables - $api_request_url = \RESO\RESO::getAPIRequestUrl(); - $token = \RESO\RESO::getAccessToken(); + $api_request_url = \RESO\Reso::getAPIRequestUrl(); + $token = \RESO\Reso::getAccessToken(); $curl = new \RESO\HttpClient\CurlClient(); @@ -146,7 +146,7 @@ public static function requestPost($request, $params = array()) * @return True / false output saved to file. */ public static function requestToFile($file_name, $request, $output_format = "xml", $overwrite = false, $accept_format = "json") { - \RESO\RESO::logMessage("Sending request '".$request."' to RESO API and storing output to file '".$file_name."'."); + \RESO\Reso::logMessage("Sending request '".$request."' to RESO API and storing output to file '".$file_name."'."); if(!$overwrite && is_file($file_name)) { throw new Error\Reso("File '".$file_name."' already exists. Use variable 'overwrite' to overwrite the output file."); @@ -158,17 +158,17 @@ public static function requestToFile($file_name, $request, $output_format = "xml $output_data = self::request($request, $output_format, false, $accept_format); if(!$output_data) { - \RESO\RESO::logMessage("Request output save to file failed - empty or erroneous data."); + \RESO\Reso::logMessage("Request output save to file failed - empty or erroneous data."); return false; } file_put_contents($file_name, $output_data); if(!is_file($file_name)) { - \RESO\RESO::logMessage("Request output save to file failed - could not create output file."); + \RESO\Reso::logMessage("Request output save to file failed - could not create output file."); return false; } - \RESO\RESO::logMessage("Request output save to file succeeded."); + \RESO\Reso::logMessage("Request output save to file succeeded."); return true; } @@ -178,7 +178,7 @@ public static function requestToFile($file_name, $request, $output_format = "xml * @return Metadata request output. */ public static function requestMetadata() { - \RESO\RESO::logMessage("Requesting resource metadata."); + \RESO\Reso::logMessage("Requesting resource metadata."); return self::request("\$metadata"); } diff --git a/lib/Reso.php b/lib/Reso.php index 5a351c3..9b06216 100644 --- a/lib/Reso.php +++ b/lib/Reso.php @@ -10,7 +10,7 @@ * * @package RESO */ -class RESO +class Reso { // @var string The RESO API client_id to be used for auth and query requests. public static $clientId; @@ -48,6 +48,23 @@ class RESO // @var string Log file name enabled / disabled. public static $logFileName = 'out.log'; + // @var string dataset + public static $dataset = ''; + + /** + * @return string + */ + public static function getDataset() { + return self::$dataset; + } + + /** + * @param string $dataset + */ + public static function setDataset($dataset) { + self::$dataset = $dataset; + } + /** * @return string The RESO API client_id used for auth and query requests. */ diff --git a/tests/OpenIDConnectTest.php b/tests/OpenIDConnectTest.php index bd7928c..8f5c549 100644 --- a/tests/OpenIDConnectTest.php +++ b/tests/OpenIDConnectTest.php @@ -8,11 +8,11 @@ final class OpenIdConnectTest extends TestCase public function testAuthorize(): void { require('config.php'); - RESO\RESO::setClientId($client_id); - RESO\RESO::setClientSecret($client_secret); - RESO\RESO::setAPIAuthUrl($api_auth_url); - RESO\RESO::setAPITokenUrl($api_token_url); - RESO\RESO::setAPIRequestUrl($api_request_url); + RESO\Reso::setClientId($client_id); + RESO\Reso::setClientSecret($client_secret); + RESO\Reso::setAPIAuthUrl($api_auth_url); + RESO\Reso::setAPITokenUrl($api_token_url); + RESO\Reso::setAPIRequestUrl($api_request_url); $auth_code = RESO\OpenIDConnect::authorize($auth_username, $auth_password, $redirect_uri, $scope); $this->assertNotNull($auth_code); } @@ -20,11 +20,11 @@ public function testAuthorize(): void public function testRequestAccessToken(): void { require('config.php'); - RESO\RESO::setClientId($client_id); - RESO\RESO::setClientSecret($client_secret); - RESO\RESO::setAPIAuthUrl($api_auth_url); - RESO\RESO::setAPITokenUrl($api_token_url); - RESO\RESO::setAPIRequestUrl($api_request_url); + RESO\Reso::setClientId($client_id); + RESO\Reso::setClientSecret($client_secret); + RESO\Reso::setAPIAuthUrl($api_auth_url); + RESO\Reso::setAPITokenUrl($api_token_url); + RESO\Reso::setAPIRequestUrl($api_request_url); $auth_code = RESO\OpenIDConnect::authorize($auth_username, $auth_password, $redirect_uri, $scope); $access_token = RESO\OpenIDConnect::requestAccessToken($auth_code, $redirect_uri, $scope); $this->access_token = $access_token; diff --git a/tests/RequestTest.php b/tests/RequestTest.php index 79fa921..03da334 100644 --- a/tests/RequestTest.php +++ b/tests/RequestTest.php @@ -8,13 +8,13 @@ final class RequestTest extends TestCase public function testRequestMetadata(): void { require('config.php'); - RESO\RESO::setClientId($client_id); - RESO\RESO::setClientSecret($client_secret); - RESO\RESO::setAPIAuthUrl($api_auth_url); - RESO\RESO::setAPITokenUrl($api_token_url); - RESO\RESO::setAPIRequestUrl($api_request_url); + RESO\Reso::setClientId($client_id); + RESO\Reso::setClientSecret($client_secret); + RESO\Reso::setAPIAuthUrl($api_auth_url); + RESO\Reso::setAPITokenUrl($api_token_url); + RESO\Reso::setAPIRequestUrl($api_request_url); $auth_code = RESO\OpenIDConnect::authorize($auth_username, $auth_password, $redirect_uri, $scope); - RESO\RESO::setAccessToken(RESO\OpenIDConnect::requestAccessToken($auth_code, $redirect_uri, $scope)); + RESO\Reso::setAccessToken(RESO\OpenIDConnect::requestAccessToken($auth_code, $redirect_uri, $scope)); if(stripos($api_request_url, "h.api.crmls.org") !== false) { RESO\Request::setAcceptType("json"); } @@ -25,13 +25,13 @@ public function testRequestMetadata(): void public function testRequest(): void { require('config.php'); - RESO\RESO::setClientId($client_id); - RESO\RESO::setClientSecret($client_secret); - RESO\RESO::setAPIAuthUrl($api_auth_url); - RESO\RESO::setAPITokenUrl($api_token_url); - RESO\RESO::setAPIRequestUrl($api_request_url); + RESO\Reso::setClientId($client_id); + RESO\Reso::setClientSecret($client_secret); + RESO\Reso::setAPIAuthUrl($api_auth_url); + RESO\Reso::setAPITokenUrl($api_token_url); + RESO\Reso::setAPIRequestUrl($api_request_url); $auth_code = RESO\OpenIDConnect::authorize($auth_username, $auth_password, $redirect_uri, $scope); - RESO\RESO::setAccessToken(RESO\OpenIDConnect::requestAccessToken($auth_code, $redirect_uri, $scope)); + RESO\Reso::setAccessToken(RESO\OpenIDConnect::requestAccessToken($auth_code, $redirect_uri, $scope)); if(stripos($api_request_url, "h.api.crmls.org") !== false) { RESO\Request::setAcceptType("json"); }