This repository has been archived on 2026-04-06. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
PayPal-PHP-SDK/lib/PayPal/Transport/PPRestCall.php
japatel 61a52e4623 Enabled EC Parameters support
- Updated Api to enabled EC Parameters
- Updated Tests
- Updated Logging Manager
- Added a feature to do validation on accessors.
2014-10-10 10:50:49 -05:00

79 lines
2.0 KiB
PHP

<?php
namespace PayPal\Transport;
use PayPal\Core\PPLoggingManager;
use PayPal\Core\PPHttpConfig;
use PayPal\Core\PPHttpConnection;
/**
* Class PPRestCall
*
* @package PayPal\Transport
*/
class PPRestCall
{
/**
* Paypal Logger
*
* @var PPLoggingManager logger interface
*/
private $logger;
/**
* API Context
*
* @var \Paypal\Rest\ApiContext
*/
private $apiContext;
/**
* Default Constructor
*
* @param \Paypal\Rest\ApiContext $apiContext
*/
public function __construct(\Paypal\Rest\ApiContext $apiContext)
{
$this->apiContext = $apiContext;
$this->logger = PPLoggingManager::getInstance(__CLASS__);
}
/**
* @param array $handlers Array of handlers
* @param string $path Resource path relative to base service endpoint
* @param string $method HTTP method - one of GET, POST, PUT, DELETE, PATCH etc
* @param string $data Request payload
* @param array $headers HTTP headers
* @return mixed
* @throws \PayPal\Exception\PPConnectionException
*/
public function execute($handlers = array(), $path, $method, $data = '', $headers = array())
{
$config = $this->apiContext->getConfig();
$httpConfig = new PPHttpConfig(null, $method);
$httpConfig->setHeaders($headers +
array(
'Content-Type' => 'application/json'
)
);
/** @var \Paypal\Handler\IPPHandler $handler */
foreach ($handlers as $handler) {
if (!is_object($handler)) {
$fullHandler = "\\" . (string)$handler;
$handler = new $fullHandler($this->apiContext);
}
$handler->handle($httpConfig, $data, array('path' => $path, 'apiContext' => $this->apiContext));
}
$connection = new PPHttpConnection($httpConfig, $config);
$response = $connection->execute($data);
$this->logger->fine($response . PHP_EOL);
return $response;
}
}