From db904ff59438ec630be9bd51a545552d749483b3 Mon Sep 17 00:00:00 2001 From: Peter Tuthill Date: Mon, 26 Oct 2015 17:05:04 +0000 Subject: [PATCH] fixed copy paste variable rename --- src/PrintNode/Client.php | 426 +++++++++++++++++++-------------------- 1 file changed, 213 insertions(+), 213 deletions(-) diff --git a/src/PrintNode/Client.php b/src/PrintNode/Client.php index 0f0fc2d..8225143 100755 --- a/src/PrintNode/Client.php +++ b/src/PrintNode/Client.php @@ -10,73 +10,73 @@ class Client { - + /** * Stores a reference to a PrintNode\Credentials object * @var Credentials */ private $credentials = null; - + /** - * If set to true, the X-Pretty header will be sent to the PrintNode API, + * If set to true, the X-Pretty header will be sent to the PrintNode API, * requesting human-readable JSON should be returned * @var bool */ public $prettyJSON = false; - + /** * If set to true, the X-Dont-Log header will be sent to the PrintNode API, * @var bool */ public $dontLog = false; - + /** - * Stores any additional arbitary headers that should be sent with the + * Stores any additional arbitary headers that should be sent with the * request * @var array */ public $additionalHeaders = array(); - + /** * The API endpoint for requests made through the client can be overridden * here * @var string */ public $apiHost; - + /** * Stores the last request object processed * @var \PrintNode\Response */ public $lastRequest; - + /** * Stores the last response object processed * @var \PrintNode\Response */ public $lastResponse; - + /** * Class Constructor - * + * * @param \PrintNode\Credentials $credentials A printnode credentials object */ public function __construct(Credentials $credentials) { $this->credentials = $credentials; - + } /** * Get property on entity - * + * * @param mixed $propertyName * @return mixed */ public function __get($propertyName) { - + if (!property_exists($this, $propertyName)) { throw new Exceptions\InvalidArgumentException( sprintf( @@ -88,43 +88,43 @@ public function __get($propertyName) } return $this->$propertyName; - + } - + /** * Makes a whoami request to the PrintNode API, returning a Whoami entity * describing the active account. - * + * * @return \PrintNode\Entity\Whoami */ public function viewWhoAmI() { - + $this->lastResponse = $this->makeRequest('whoami', 'GET'); - + return $this->mapJsonToEntity($this->lastResponse->bodyJson, '\PrintNode\Entity\Whoami'); - + } /** - * Makes a credits request to the PrintNode API, returning the credit + * Makes a credits request to the PrintNode API, returning the credit * balance for the active account as a string - * + * * @return string */ public function viewCredits() { - + $this->lastResponse = $this->makeRequest('credits', 'GET'); - + return $this->lastResponse->bodyJson; - + } /** * Makes a computers request to the PrintNode API, returning an array * of all the registered computers on the active account. - * + * * @param int $offset (Optional) The start index for the records the API should return * @param int $limit (Optional) The number of records the API should return * @param string|array $computerSet (Optional) 'set' string or array of computer ids to which the response should be limited @@ -132,32 +132,32 @@ public function viewCredits() */ public function viewComputers($offset = 0, $limit = 500, $computerSet = null) { - + if (isset($computerSet)) { $url = sprintf('computers/%s', $this->setImplode($computerSet)); } else { $url = 'computers'; } - + $url = $this->applyLimitOffsetToUrl($url, $offset, $limit); - + return $this->makeRequestMapped($url, 'GET', '\PrintNode\Entity\Computer'); - + } /** * Makes a printers request to the PrintNode API, returning an array * of all the registered printers on the active account. - * - * If a 'set' string or array of printer ids is passed to the third + * + * If a 'set' string or array of printer ids is passed to the third * argument, the returned array will be filtered to just those printers. - * - * If a 'set' string or array of computer ids is passed to the fourth + * + * If a 'set' string or array of computer ids is passed to the fourth * argument, the returned array will be filtered to just those printers. - * + * * Both arguments can be combined to return only certain printers on certain * computers - * + * * @param int $offset (Optional) The start index for the records the API should return * @param int $limit (Optional) The number of records the API should return * @param string|array $printerSet (Optional) 'set' string or array of printer ids to which the response should be limited @@ -166,7 +166,7 @@ public function viewComputers($offset = 0, $limit = 500, $computerSet = null) */ public function viewPrinters($offset = 0, $limit = 500, $printerSet = null, $computerSet = null) { - + if (isset($computerSet) && isset($printerSet)){ $url = sprintf('computers/%s/printers/%s', $this->setImplode($computerSet), $this->setImplode($printerSet)); } else if (isset($printerSet)) { @@ -176,26 +176,26 @@ public function viewPrinters($offset = 0, $limit = 500, $printerSet = null, $com } else { $url = 'printers'; } - + $url = $this->applyLimitOffsetToUrl($url, $offset, $limit); - + return $this->makeRequestMapped($url, 'GET', '\PrintNode\Entity\Printer'); - + } /** * Makes a printjobs request to the PrintNode API, returning an array * of all the printjobs that have been processed on the active account. - * - * If a 'set' string or array of print job ids is passed to the third + * + * If a 'set' string or array of print job ids is passed to the third * argument, the returned array will be filtered to just those print jobs. - * - * If a 'set' string or array of printer ids is passed to the fourth + * + * If a 'set' string or array of printer ids is passed to the fourth * argument, the returned array will be filtered to just those printers. - * - * Both arguments can be combined to return only certain print jobs on + * + * Both arguments can be combined to return only certain print jobs on * certain printers - * + * * @param int $offset (Optional) The start index for the records the API should return * @param int $limit (Optional) The number of records the API should return * @param string|array $printJobSet (Optional) 'set' string or array of print job ids to which the response should be limited @@ -204,9 +204,9 @@ public function viewPrinters($offset = 0, $limit = 500, $printerSet = null, $com */ public function viewPrintJobs($offset = 0, $limit = 500, $printJobSet = null, $printerSet = null) { - + $url = 'printjobs'; - + if (isset($printerSet) && isset($printJobSet)){ $url = sprintf('printers/%s/printjobs/%s', $this->setImplode($printerSet), $this->setImplode($printJobSet)); } else if (isset($printJobSet)) { @@ -214,22 +214,22 @@ public function viewPrintJobs($offset = 0, $limit = 500, $printJobSet = null, $p } else if (isset($printerSet)) { $url = sprintf('printers/%s/printjobs', $this->setImplode($printerSet)); } - + $url = $this->applyLimitOffsetToUrl($url, $offset, $limit); - + return $this->makeRequestMapped($url, 'GET', '\PrintNode\Entity\PrintJob'); - + } - + /** * Makes a printjobState request to the PrintNode API, returning an array * of all the printjobs that have been processed on the active account. - * - * If a 'set' string or array of print job ids is passed to the third + * + * If a 'set' string or array of print job ids is passed to the third * argument, the returned array will be filtered to just those print jobs. - * + * * Returned is an array of states in an array keyed by the print job id. - * + * * @param int $offset (Optional) The start index for the records the API should return * @param int $limit (Optional) The number of records the API should return * @param string|array $printJobSet (Optional) 'set' string or array of print job ids to which the response should be limited @@ -237,45 +237,45 @@ public function viewPrintJobs($offset = 0, $limit = 500, $printJobSet = null, $p */ public function viewPrintJobState($offset = 0, $limit = 500, $printJobSet = null) { - + $url = 'printjobs/states'; - + if (isset($printJobSet)) { $url = sprintf('printjobs/%s/states', $this->setImplode($printJobSet)); } - + $url = $this->applyLimitOffsetToUrl($url, $offset, $limit); - + $this->lastResponse = $this->makeRequest($url, 'GET'); - + if (!is_array($this->lastResponse->bodyJson) || (sizeof($this->lastResponse->bodyJson) == 0)) { return true; } - + $states = array(); - + foreach ($this->lastResponse->bodyJson as $stateJson) { - + $jobState = $this->mapBodyJsonToEntityArray($stateJson, '\PrintNode\Entity\PrintJobState'); - + $states[$jobState[0]->printJobId] = $jobState; - + } - + return $states; - + } - + /** * Makes a viewScales request to the PrintNode API, returning an array - * of all the scales filtered to the - * - * If a 'set' string or array of print job ids is passed to the third + * of all the scales filtered to the + * + * If a 'set' string or array of print job ids is passed to the third * argument, the returned array will be filtered to just those print jobs. - * + * * Returned is an array of statuses in an array keyed by the print job id. - * + * * @param string $computerId The id of the computer on which to view scales * @param string $deviceName (Optional) The name of the scale device * @param string $deviceNumber (Optional) The id of the scale device @@ -283,56 +283,56 @@ public function viewPrintJobState($offset = 0, $limit = 500, $printJobSet = null */ public function viewScales($computerId, $deviceName = null, $deviceNumber = null) { - + $url = sprintf('/computer/%s/scales', $computerId); - + if (isset($deviceName) && isset($deviceNumber)) { - + $url.= sprintf('/%s/%s', $deviceName, $deviceNumber); - + } else if (isset($deviceName)) { - + $url.= sprintf('/%s', $deviceName); - + } - + return $this->makeRequestMapped($url, 'GET', '\PrintNode\Entity\Scale', 'deviceNum'); - + } - + /** - * Makes a viewClientDownloads request to the PrintNode API, returning an - * array of all the client downloads that are available on the active + * Makes a viewClientDownloads request to the PrintNode API, returning an + * array of all the client downloads that are available on the active * account. - * - * If a 'set' string or array of download ids is passed to the third + * + * If a 'set' string or array of download ids is passed to the third * argument, the returned array will be filtered to just those downloads. - * + * * Returned is an array of downloads in an array keyed by the download id. - * + * * @param int $offset (Optional) The start index for the records the API should return * @param int $limit (Optional) The number of records the API should return * @param string|array (Optional) $downloadSet 'set' string or array of download ids to which the response should be limited * @return array - */ + */ public function viewClientDownloads($offset = 0, $limit = 1, $downloadSet = null) { - + $url = 'download/clients'; - - if (isset($printJobSet)) { + + if (isset($downloadSet)) { $url = sprintf('download/clients/%s', $this->setImplode($downloadSet)); } - + $url = $this->applyLimitOffsetToUrl($url, $offset, $limit); - + return $this->makeRequestMapped($url, 'GET', '\PrintNode\Entity\ClientDownload'); - + } - + /** * Appends the offset and limit arguments to a given api endpoint url - * + * * @param string $url (Optional) The url to which any limits or offsets will be applied * @param int $offset (Optional) The offset to apply to the url * @param int $limit (Optional) The limit to apply to the url @@ -341,51 +341,51 @@ public function viewClientDownloads($offset = 0, $limit = 1, $downloadSet = null */ public function applyLimitOffsetToUrl($url, $offset, $limit) { - + if (!\is_numeric($offset)) { throw new \PrintNode\Exception\InvalidArgumentException('Offset must be a number'); } - + if (!\is_numeric($limit)) { throw new \PrintNode\Exception\InvalidArgumentException('Limit must be a number'); } - + if ($offset < 0) { throw new \PrintNode\Exception\InvalidArgumentException('Offset cannot be negative'); } - + if ($limit < 1) { throw new \PrintNode\Exception\InvalidArgumentException('Limit must be greater than zero'); } - + return sprintf('%s?offset=%s&limit=%s', $url, $offset, $limit); - + } - + /** * Creates a new printJob by making a POST to the PrintNode API, returning * the new print job id, or optionally a printjob object is argument 2 is * populated - * + * * @param \PrintNode\Entity\PrintJob $printJob A populated printjob object * @param bool $returnObject (Optional) If set to true, returns the full printjob data by making a second request * @return |PrintNode\Entity\PrintJob|string */ public function createPrintJob($printJob, $returnObject = false) { - + $this->lastResponse = $this->makeRequest('printjobs', 'POST', \json_encode($printJob)); - + if ($returnObject) { return $this->viewPrintJobs(0, 1, $this->lastResponse->body); } - + return $this->lastResponse->body; - + } - + /** - * Creates a new child account by making a POST to the PrintNode API, + * Creates a new child account by making a POST to the PrintNode API, * returning a ChildAccount object. * * @param \PrintNode\Entity\Account $account A populated account object @@ -395,230 +395,230 @@ public function createPrintJob($printJob, $returnObject = false) */ public function createChildAccount(\PrintNode\Entity\Account $account, $apiKeys = null, $tags = null) { - + $newChildAccount = new \PrintNode\Entity\ChildAccount($this); - + $newChildAccount->Account = $account; - + if (is_array($apiKeys)) { foreach ($apiKeys as $apiKey) { $newChildAccount->ApiKeys[] = $apiKey; } } - + if (is_array($tags)) { foreach ($tags as $tagname => $tag) { $newChildAccount->Tags[$tagname] = $tag; } } - + $this->lastResponse = $this->makeRequest('account', 'POST', \json_encode($newChildAccount)); - + $newChildAccount->Account->mapValuesFromJson($this->lastResponse->bodyJson->Account); - + $newChildAccount->ApiKeys = array(); $newChildAccount->Tags = array(); - + if ($this->lastResponse->bodyJson->ApiKeys instanceof \stdClass) { foreach ($this->lastResponse->bodyJson->ApiKeys as $apiDescription => $apiKey) { $newChildAccount->ApiKeys[$apiDescription] = $apiKey; } } - + if ($this->lastResponse->bodyJson->Tags instanceof \stdClass) { foreach ($this->lastResponse->bodyJson->Tags as $tagDescription => $tag) { $newChildAccount->Tags[$tagDescription] = $tag; } } - + return $newChildAccount; - + } - + /** - * Modifies the currently active child account by making a PATCH request to + * Modifies the currently active child account by making a PATCH request to * the PrintNode API, returning a Whoami object with the modified * account details - * + * * @param \PrintNode\Entity\Account $account An account object containing the fields to be modified - * @return \PrintNode\Entity\Whoami + * @return \PrintNode\Entity\Whoami */ public function modifyAccount($account) { - + $this->lastResponse = $this->makeRequest('account', 'PATCH', \json_encode($account)); - + $whoAmI = new \PrintNode\Entity\Whoami($this); - + $whoAmI->mapValuesFromJson($this->lastResponse->bodyJson); - + return $whoAmI; - + } - + /** * Makes a delete account request to the PrintNode API for the active * child account. - * + * * @return bool */ public function deleteChildAccount() { - + $this->lastResponse = $this->makeRequest('account', 'DELETE'); - + return $this->lastResponse->bodyJson; - + } - + /** * Makes a create tag request to the PrintNode API, creating the tag - * specified in argument 1 with the value specified in argument 2 on the + * specified in argument 1 with the value specified in argument 2 on the * active account. - * + * * @param string $tagName The name of the tag to be created * @param string $tagValue The value of the tag to be created * @return string */ public function createTag($tagName, $tagValue) { - + $this->lastResponse = $this->makeRequest('account/tag/' . $tagName, 'POST', \json_encode($tagValue)); - + return $this->lastResponse->bodyJson; - + } - + /** - * Makes a create tag request to the PrintNode API, returning the tag + * Makes a create tag request to the PrintNode API, returning the tag * specified in the first argument on the active account. - * + * * @param string $tagName The name of the tag to view * @return string */ public function viewTag($tagName) { - + $this->lastResponse = $this->makeRequest('account/tag/' . $tagName, 'GET'); - + return $this->lastResponse->bodyJson; - + } - + /** - * Makes a delete tag request to the PrintNode API, removing the tag + * Makes a delete tag request to the PrintNode API, removing the tag * specified in the first argument on the active account. - * + * * @param string $tagName The name of the tag to be deleted * @return string */ public function deleteTag($tagName) { - + $this->lastResponse = $this->makeRequest('account/tag/' . $tagName, 'DELETE'); - + return $this->lastResponse->bodyJson; - + } - + /** * Makes a view apikey request to the PrintNode API, returning the api key * string. - * + * * @param string $apiKeyName The label of the API Key to be created * @return bool - */ + */ public function createApiKey($apiKeyLabel) { - + $url = sprintf('/account/apikey/%s', $apiKeyLabel); - + $this->lastResponse = $this->makeRequest($url, 'POST'); - + return $this->lastResponse->bodyJson; - + } - + /** * Makes a view apikey request to the PrintNode API, returning the api key * string. - * + * * @param string $apiKeyName The label of the API Key to be returned * @return string - */ + */ public function viewApiKey($apiKeyLabel) { - + $url = sprintf('/account/apikey/%s', $apiKeyLabel); - + $this->lastResponse = $this->makeRequest($url, 'GET'); - + return $this->lastResponse->bodyJson; - + } - + /** * Makes a delete apikey request to the PrintNode API, returning true * if the key was successfully deleted. - * + * * @param string $apiKeyName The label of the API Key to be deleted * @return bool */ public function deleteApiKey($apiKeyLabel) { - + $url = sprintf('/account/apikey/%s', $apiKeyLabel); - + $this->lastResponse = $this->makeRequest($url, 'DELETE'); - + return (bool)$this->lastResponse; - + } - + /** * If a string is passed as an argument, it returns the string. If an array * is passed, the array is imploded into a comma-seperated string. - * + * * @param string|array $set * @return string */ public function setImplode($set) { - + if (is_array($set)) { return implode(',', $set); } - + return $set; - + } - + /** * Makes a request to the PrintNode API, using the Request object. - * + * * @param string $url The API service endpoint * @param string $method The HTTP request method to use * @return Response */ public function makeRequest($url, $method, $content = null) { - + $this->lastRequest = new Request($this->credentials, $url, $method); - + $this->lastRequest->setPropertiesFromClient($this); - + if ($content !== null) { $this->lastRequest->body = $content; } - + return $this->lastRequest->process(); - + } - + /** * Makes a request to the PrintNode API and attempts to map the response * to a particular entity type. - * + * * @param string $url The API service endpoint * @param string $method The HTTP request method to use * @param string $responseEntity The name of the entity to return @@ -627,30 +627,30 @@ public function makeRequest($url, $method, $content = null) */ public function makeRequestMapped($url, $method, $responseEntity = null, $keyname = 'id') { - + $this->lastResponse = $this->makeRequest($url, $method); - + if (!is_array($this->lastResponse->bodyJson) || (sizeof($this->lastResponse->bodyJson) == 0)) { return; } - + if ($responseEntity === null ) { - + return $this->lastResponse->bodyJson; - + } else { - + return $this->mapBodyJsonToEntityArray($this->lastResponse->bodyJson, $responseEntity, $keyname); - + } - + } - + /** * Maps an array of JSON objects to map to an array of entities of a given * type - * + * * @param string $json The json to map to entities * @param string $responseEntity The name of the entity to return * @param string $keyname The entity property to use as the return array key @@ -659,23 +659,23 @@ public function makeRequestMapped($url, $method, $responseEntity = null, $keynam */ public function mapBodyJsonToEntityArray($json, $responseEntity, $keyname = null) { - + $items = array(); - + foreach ($json as $itemIndex => $itemJson) { $item = $this->mapJsonToEntity($itemJson, $responseEntity); $key = $itemIndex; - + if ($keyname) { - + if (!isset($itemJson->$keyname)) { throw new Exception\InvalidArgumentException('Supplied keyname is not present in entity'); } - + $key = $item->$keyname; - + } $items[$key] = $item; @@ -683,24 +683,24 @@ public function mapBodyJsonToEntityArray($json, $responseEntity, $keyname = null } return $items; - + } - + /** * Converts json to a given entity type - * + * * @param string $json The json to map to entities * @param type $responseEntity */ public function mapJsonToEntity($json, $responseEntity) { - + $item = new $responseEntity($this); $item->mapValuesFromJson($json); - + return $item; - + } - + }