Quantcast
Channel: Pagely Partner API Docs » Examples
Viewing all articles
Browse latest Browse all 3

API Wrapper Function for WordPress

$
0
0

This is a simple wrapper function for all API calls using the WordPress wp_remote() function.

/***************************
* WRAPPER FUNCTION FOR ALL PAGELY API REQUESTS	
* This function makes a remote request to the Pagely REST API
* @param string $method GET | POST | PUT | DELETE 
* @param string $uri the controller and method to call on teh api
* @param array $params required data for method
* @return array|object Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
* @return[body] returned will be a json response, see our API docs
*/
function _pagely_api_request($method = 'GET', $uri = '/controller/method', $params = array() ) {
	// setup the request
	$url 		= $this->api_endpoint . $uri;
	$headers = array( 'X-API-KEY' => $this->_api_key());

	// switch based on METHOD		
	/***********
	// GET is for getting reecords
	// POST is for updating existing records and requires an ID
	// PUT is for create NEW records
	// DELETE is for remove records and requires an ID
	************/

	switch ($method) {
		case 'GET':
			$params['sess']		= ''; 
			$querystring		= http_build_query($params);
			// append a query string to the url
			$url 			= $url.'?'.$querystring;
			// unset params on GET
			$params 		= false;
		break;
		case 'POST':
		case 'PUT':
		case 'DELETE':
		// generate some secure hashes			
			$time    		= date('U');
			$params['sess']		= ''; 
			$params['time']    	= $time;
   			$params['hash']    	= sha1($time.$this->pagely_api_sec);
   			// pass an object ID as needed
   			$params['id']		= $params['id']; // should be object id, like domain_id = 1099; can be empty on PUT
		break;
	}

	// make the request
	$req_args = array(
		'method' => $method, 
		'body' => $params, 
		'headers' => $headers, 
		'sslverify' => true  // set to true in live envrio
	);

	// make the remote request
	$result = wp_remote_request( $url, $req_args);

        // handle response
	if ( !is_wp_error($result) ) {
		//no error
		$this->_log_api_reponse($url);
		$this->_log_api_reponse($params);
		$this->_log_api_reponse($result['body']);
		return $result['body'];	
	} else {
	        // error
	        return $result->get_error_message();			
	}	
}

To call this function:

/*
* Test API
* @return array|object Array containing 'headers', 'body', 'response', 'cookies', 'filename'. A WP_Error instance upon error
* @return[body] returned will be a json response, see our API docs
*/  	

function _test_api() {

        $params = array();

	$uri = '/go/hello';
	$json = $this->_pagely_api_request($method = 'GET',$uri, $params );

	if (!json_decode($json)) {
		// was not a json response...make one
		$res->message = $json;
		$json = json_encode($res);
		return false;
	}

	$result = json_decode($json);					
	if (isset($result->result) && $result->result == 2) {
		// api works
		return true;
	} else {
		return false;
	}

}

The post API Wrapper Function for WordPress appeared first on Pagely Partner API Docs.


Viewing all articles
Browse latest Browse all 3

Trending Articles