LLMS_Dot_Com_API
Source Source
File: includes/class.llms.dot.com.api.php
class LLMS_Dot_Com_API extends LLMS_Abstract_API_Handler { /** * Send requests in JSON format * * @var bool */ protected $is_json = false; /** * Determines if it's a request to the .com REST api * * @var bool */ protected $is_rest = true; /** * Construct an API call, parameters are passed to private `call()` function * * @param stirng $resource url endpoint or resource to make a request to * @param array $data array of data to pass in the body of the request * @param string $method method of request (POST, GET, DELETE, PUT, etc...) * @param bool $is_rest if true adds wp-json rest to request url, otherwise requests to site base * @return void * @since 3.22.0 * @version 3.22.0 */ public function __construct( $resource, $data, $method = null, $is_rest = true ) { $this->is_rest = $is_rest; parent::__construct( $resource, $data, $method ); } /** * Determine if the current request is a rest request * * @return bool * @since 3.22.0 * @version 3.22.0 */ public function is_rest_request() { return $this->is_rest; } /** * Parse the body of the response and set a success/error * * @param array $response response data * @return void * @since 3.22.0 * @version 3.22.0 */ protected function parse_response( $response ) { $body = json_decode( wp_remote_retrieve_body( $response ), true ); if ( isset( $response['response'] ) && isset( $response['response']['code'] ) && ! in_array( $response['response']['code'], array( 200, 201 ) ) ) { $msg = isset( $body['message'] ) ? $body['message'] : $response['response']['message']; $this->set_error( $msg, isset( $body['code'] ) ? $body['code'] : $response['response']['code'], $body ); } else { $this->set_result( $body ); } } /** * Set request body * * @param array $data request body * @param string $method request method * @param string $resource requested resource * @return array * @since 3.22.0 * @version 3.22.0 */ protected function set_request_body( $data, $method, $resource ) { return apply_filters( 'llms_dot_com_api_request_body', $data, $method, $resource, $this ); } /** * Set request headers * * @param array $headers default request headers * @param string $resource request resource * @param string $method request method * @return array * @since 3.22.0 * @version 3.22.0 */ protected function set_request_headers( $headers, $resource, $method ) { return apply_filters( 'llms_dot_com_api_request_headers', $headers, $resource, $method, $this ); } /** * Set the request URL * * @param string $resource requested resource * @param string $method request method * @return string * @since 3.22.0 * @version 3.22.0 */ protected function set_request_url( $resource, $method ) { $url = 'https://lifterlms.com'; if ( $this->is_rest_request() ) { $url .= '/wp-json/llms/v3'; } return apply_filters( 'llms_dot_com_api_request_url', $url . $resource, $resource, $method, $this ); } /** * Set the request User Agent * Can be overridden by extending classes when necessary * * @param string $user_agent default user agent (LifterLMS {$version}) * @param string $resource requested resource * @param string $method request method * @return string * @since 3.22.0 * @version 3.22.0 */ protected function set_user_agent( $user_agent, $resource, $method ) { return sprintf( 'LifterLMS/%1$s (%2$s)', LLMS_VERSION, get_site_url() ); } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Construct an API call, parameters are passed to private `call()` function
- is_rest_request — Determine if the current request is a rest request
- parse_response — Parse the body of the response and set a success/error
- set_request_body — Set request body
- set_request_headers — Set request headers
- set_request_url — Set the request URL
- set_user_agent — Set the request User Agent Can be overridden by extending classes when necessary
Changelog Changelog
Version | Description |
---|---|
3.22.0 | Introduced. |