From b39e65bf12d0397ca01df92af960dda33a614df8 Mon Sep 17 00:00:00 2001 From: Devin Hyden Date: Thu, 24 Jan 2019 17:17:29 -0800 Subject: [PATCH] Updated the client to support version 1.6 (#136) * Update to API Version 1.5.13 and added check_code.php * API Version 1.5.13 - Field Update - Documentation Wrong * Update to API Version 1.5.14 * Update to API Version 1.5.14 * Updated client for API version 1.6 * API 1.6 Update * API 1.6.1 Update * Update src/Client.php Co-Authored-By: SirPoot- --- src/AutotaskObjects/AccountNote.php | 3 ++ src/AutotaskObjects/BillingItem.php | 3 +- src/AutotaskObjects/ContactGroup.php | 10 ++++++ src/AutotaskObjects/ContactGroupContact.php | 10 ++++++ src/AutotaskObjects/ContractNote.php | 3 ++ src/AutotaskObjects/InstalledProduct.php | 33 +++++++++++++++++++ src/AutotaskObjects/ProjectNote.php | 3 ++ src/AutotaskObjects/Resource.php | 1 + src/AutotaskObjects/TaskNote.php | 3 ++ src/AutotaskObjects/Ticket.php | 4 +++ .../TicketAdditionalInstalledProduct.php | 10 ++++++ src/AutotaskObjects/TicketHistory.php | 13 ++++++++ src/AutotaskObjects/TicketNote.php | 3 ++ src/AutotaskObjects/TimeEntry.php | 2 ++ src/Client.php | 30 ++++++++++++++--- 15 files changed, 125 insertions(+), 6 deletions(-) create mode 100644 src/AutotaskObjects/ContactGroup.php create mode 100644 src/AutotaskObjects/ContactGroupContact.php create mode 100644 src/AutotaskObjects/TicketAdditionalInstalledProduct.php create mode 100644 src/AutotaskObjects/TicketHistory.php diff --git a/src/AutotaskObjects/AccountNote.php b/src/AutotaskObjects/AccountNote.php index b60db6a..4cbec5f 100644 --- a/src/AutotaskObjects/AccountNote.php +++ b/src/AutotaskObjects/AccountNote.php @@ -13,6 +13,9 @@ class AccountNote extends Entity // Optional public $CompletedDateTime; public $ContactID; + public $CreateDateTime; + public $ImpersonatorCreatorResourceID; + public $ImpersonatorUpdaterResourceID; public $LastModifiedDate; public $Name; public $Note; diff --git a/src/AutotaskObjects/BillingItem.php b/src/AutotaskObjects/BillingItem.php index aa8fd27..3a0f9c8 100644 --- a/src/AutotaskObjects/BillingItem.php +++ b/src/AutotaskObjects/BillingItem.php @@ -12,7 +12,6 @@ class BillingItem extends Entity public $AccountID; public $AccountManagerWhenApprovedID; public $AllocationCodeID; - public $ApprovedTime; public $BusinessDivisionSubdivisionID; public $ContractCostID; public $ContractID; @@ -33,6 +32,8 @@ class BillingItem extends Entity public $LineItemID; public $MilestoneID; public $OurCost; + public $PostedDate; + public $PostedOnTime; public $ProjectCostID; public $ProjectID; public $PurchaseOrderNumber; diff --git a/src/AutotaskObjects/ContactGroup.php b/src/AutotaskObjects/ContactGroup.php new file mode 100644 index 0000000..9f57a27 --- /dev/null +++ b/src/AutotaskObjects/ContactGroup.php @@ -0,0 +1,10 @@ + 'ATWS\AutotaskObjects\Account', 'AccountAlert' => 'ATWS\AutotaskObjects\AccountAlert', @@ -45,6 +48,8 @@ class Client extends \SoapClient 'ContractCost' => 'ATWS\AutotaskObjects\ContractCost', 'ContractExclusionAllocationCode' => 'ATWS\AutotaskObjects\ContractExclusionAllocationCode', 'ContractFactor' => 'ATWS\AutotaskObjects\ContractFactor', + 'ContactGroup' => 'ATWS\AutotaskObjects\ContactGroup', + 'ContactGroupContact' => 'ATWS\AutotaskObjects\ContactGroupContact', 'ContractMilestone' => 'ATWS\AutotaskObjects\ContractMilestone', 'ContractNote' => 'ATWS\AutotaskObjects\ContractNote', 'ContractRate' => 'ATWS\AutotaskObjects\ContractRate', @@ -147,11 +152,13 @@ class Client extends \SoapClient 'TaxRegion' => 'ATWS\AutotaskObjects\TaxRegion', 'Ticket' => 'ATWS\AutotaskObjects\Ticket', 'TicketAdditionalContact' => 'ATWS\AutotaskObjects\TicketAdditionalContact', + 'TicketAdditionalInstalledProduct' => 'ATWS\AutotaskObjects\TicketAdditionalInstalledProduct', 'TicketCategory' => 'ATWS\AutotaskObjects\TicketCategory', 'TicketCategoryFieldDefaults' => 'ATWS\AutotaskObjects\TicketCategoryFieldDefaults', 'TicketChangeRequestApproval' => 'ATWS\AutotaskObjects\TicketChangeRequestApproval', 'TicketChecklistItem' => 'ATWS\AutotaskObjects\TicketChecklistItem', 'TicketCost' => 'ATWS\AutotaskObjects\TicketCost', + 'TicketHistory' => 'ATWS\AutotaskObjects\TicketHistory', 'TicketNote' => 'ATWS\AutotaskObjects\TicketNote', 'TicketSecondaryResource' => 'ATWS\AutotaskObjects\TicketSecondaryResource', 'TimeEntry' => 'ATWS\AutotaskObjects\TimeEntry', @@ -162,7 +169,7 @@ class Client extends \SoapClient ); // @codeCoverageIgnoreStart - public function __construct($wsdl, $soapOpts = array()) + public function __construct($wsdl, $soapOpts = array(), $integrationCode = null) { foreach (static::$classMap as $external => $internal) { if (!isset($soapOpts['classmap'][$external])) { @@ -170,13 +177,19 @@ public function __construct($wsdl, $soapOpts = array()) } } + $parts = explode('/', $wsdl); + $this->version = $parts[4]; + + if (!is_null($integrationCode)) { + $this->setIntegrationCode($integrationCode); + } parent::__construct($wsdl, $soapOpts); } public function setIntegrationCode($code) { $header = new \SOAPHeader( - 'http://autotask.net/ATWS/v1_5/', + 'http://autotask.net/ATWS/v' . str_replace('.', '_', $this->version) .'/', 'AutotaskIntegrations', array( 'IntegrationCode' => $code, @@ -205,10 +218,10 @@ public function bulkCreate(array $objs) } $createObjs = null; foreach ($objs as $obj) { - if (!$createObjs){ - $createObjs = new AutotaskObjects\CreateParam($obj); + if (!$createObjs) { + $createObjs = new AutotaskObjects\CreateParam($obj); } else { - $createObjs->Entities[] = $obj; + $createObjs->Entities[] = $obj; } } return $this->_call('create', array($createObjs)); @@ -310,6 +323,13 @@ public function getInvoiceMarkup($invoiceId, $type) public function __doRequest($request, $location, $action, $version, $one_way = 0) { + if (strpos($action, 'getZoneInfo') === false && + $this->version >= 1.6 && + empty($this->__default_headers[0]->data['IntegrationCode']) + ) { + throw new ATWSException('Integration code required with this version of the API.'); + } + return parent::__doRequest($request, $location, $action, $version, $one_way); }