Файловый менеджер - Редактировать - /home/goldin10/public_html/getoutyourbox.com/wp-content/plugins/bb-plugin/includes/vendor/icontact/iContactApi.php
Error occurred
Назад
<?php /** * @name iContactApi * @package iContact * @author iContact <www.icontact.com> * @description This class is a wrapper for the iContact API. * It makes integrating iContact into your app as simple as * calling a method. * @version 2.0 **/ class iContactApi { ////////////////////////////////////////////////////////////////////////////// /// Properties ////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// protected static $oInstance = null; // This holds the instance of this class protected $iAccountId = null; // This holds the account ID protected $iClientFolderId = null; // This holds the client folder ID protected $aConfig = array(); // This is our array for pragmatically overriding configuration constants protected $aErrors = array(); // This holds the errors encountered with the iContact API protected $sLastRequest = null; // This holds the last request JSON protected $sLastResponse = null; // This holds the last response JSON protected $sRequestUri = null; // This stores the last used URL protected $bSandbox = false; // This tells the system whether or not to use the iContact Sandbox or not protected $aSearchParameters = array(); // This is our container for search params protected $iTotal = 0; // If the results return a total, it will be stored here protected $aWarnings = array(); // This holds the warnings encountered with the iContact API ////////////////////////////////////////////////////////////////////////////// /// Singleton /////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /** * This sets the singleton pattern instance * @static * @access public * @param iContactApi $oInstance Instance to set to * @return iContactApi $this **/ public static function setInstance($oInstance) { self::$oInstance = $oInstance; // Return instance of class return self::$oInstance; } /** * This gets the singleton instance * @static * @access public * @return iContactApi $this **/ public static function getInstance() { // Check to see if an instance has already // been created if (is_null(self::$oInstance)) { // If not, return a new instance self::$oInstance = new self(); return self::$oInstance; } else { // If so, return the previously created // instance return self::$oInstance; } } /** * This resets the singleton instance to null * @static * @access public * @return void **/ public static function resetInstance() { // Reset the instance self::$oInstance = null; } ////////////////////////////////////////////////////////////////////////////// /// Constructor ///////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /** * This is our constuctor and simply checks for * defined constants and configuration values and * then builds the configuration from that * @access protected * @return iContactApi $this **/ protected function __construct() { // Check for constants $aConstantMap = array( // 'ICONTACT_APIVERSION', // 'ICONTACT_APISANDBOXURL', 'ICONTACT_APPID' => 'appId', // 'ICONTACT_APIURL', 'ICONTACT_APIUSERNAME' => 'apiUsername', 'ICONTACT_APIPASSWORD' => 'apiPassword' ); // Loop through the map foreach ($aConstantMap as $sConstant => $sConfigKey) { // Check for the defined constant if (defined($sConstant)) { // Set the configuration key to the contant's value $this->aConfig[$sConfigKey] = constant($sConstant); } } // Return instance return $this; } ////////////////////////////////////////////////////////////////////////////// /// Public ////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /** * This method adds a contact to your iContact account * @access public * @param string $sEmail * @param string [$sStatus] * @param string [$sPrefix] * @param string [$sFirstName] * @param string [$sLastName] * @param string [$sSuffix] * @param string [$sStreet] * @param string [$sStreet2] * @param string [$sCity] * @param string [$sState] * @param string [$sPostalCode] * @param string [$sPhone] * @param string [$sFax] * @param string [$sBusiness] * * @return object **/ public function addContact($sEmail, $sStatus = 'normal', $sPrefix = null, $sFirstName = null, $sLastName = null, $sSuffix = null, $sStreet = null, $sStreet2 = null, $sCity = null, $sState = null, $sPostalCode = null, $sPhone = null, $sFax = null, $sBusiness = null) { // Valid statuses $aValidStatuses = array('normal', 'bounced', 'donotcontact', 'pending', 'invitable', 'deleted'); // Contact placeholder $aContact = array( 'email' => $sEmail ); // Check for a prefix if (!empty($sPrefix)) { // Add the new prefix $aContact['prefix'] = (string) $sPrefix; } // Check for a first name if (!empty($sFirstName)) { // Add the new first name $aContact['firstName'] = (string) $sFirstName; } // Check for a last name if (!empty($sLastName)) { // Add the new last name $aContact['lastName'] = (string) $sLastName; } // Check for a suffix if (!empty($sSuffix)) { // Add the new suffix $aContact['suffix'] = (string) $sSuffix; } // Check for a street if (!empty($sStreet)) { // Add the new street $aContact['street'] = (string) $sStreet; } // Check for a street2 if (!empty($sStreet2)) { // Add the new street 2 $aContact['street2'] = (string) $sStreet2; } // Check for a city if (!empty($sCity)) { // Add the new city $aContact['city'] = (string) $sCity; } // Check for a state if (!empty($sState)) { // Add the new state $aContact['state'] = (string) $sState; } // Check for a postal code if (!empty($sPostalCode)) { // Add the new postal code $aContact['postalCode'] = (string) $sPostalCode; } // Check for a phone number if (!empty($sPhone)) { // Add the new phone number $aContact['phone'] = (string) $sPhone; } // Check for a fax number if (!empty($sFax)) { // Add the new fax number $aContact['fax'] = (string) $sFax; } // Check for a business name if (!empty($sBusiness)) { // Add the new business $aContact['business'] = (string) $sBusiness; } // Check for a valid status if (!empty($sStatus) && in_array($sStatus, $aValidStatuses)) { // Add the new status $aContact['status'] = $sStatus; } else { $aContact['status'] = 'normal'; } // Make the call $aContacts = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/contacts", 'POST', array($aContact), 'contacts'); // Return the contact return $aContacts[0]; } /** * This method adds a custom field or "term" * to the array of search parameters * @access public * @param string $sName * @param string $sValue * @return iContactApi $this **/ public function addCustomQueryField($sName, $sValue) { // Add the field $this->aSearchParameters[$sName] = (string) $sValue; // Return instance return $this; } /** * This message adds a list to your iContact account * @access public * @param string $sName * @param integer $iWelcomeMessageId * @param bool [$bEmailOwnerOnChange] * @param bool [$bWelcomeOnManualAdd] * @param bool [$bWelcomeOnSignupAdd] * @param string [$sDescription] * @param string [$sPublicName] * @return object **/ public function addList($sName, $iWelcomeMessageId, $bEmailOwnerOnChange = true, $bWelcomeOnManualAdd = false, $bWelcomeOnSignupAdd = false, $sDescription = null, $sPublicName = null) { // Setup the list $aList = array( 'name' => $sName, 'welcomeMessageId' => $iWelcomeMessageId, 'emailOwnerOnChange' => intval($bEmailOwnerOnChange), 'welcomeOnManualAdd' => intval($bWelcomeOnManualAdd), 'welcomeOnSignupAdd' => intval($bWelcomeOnSignupAdd), 'description' => $sDescription, 'publicname' => $sPublicName ); // Make the call $aLists = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/lists", 'POST', array($aList), 'lists'); // Return the list return $aLists[0]; } /** * This method adds a message to * your iContact API account * @access public * @param string $sSubject * @param integer $iCampaignId * @param string [$sHtmlBody] * @param string [$sTextBody] * @param string [$sMessageName] * @param integer [$iListId] * @param string [$sMessageType] * @return object **/ public function addMessage($sSubject, $iCampaignId, $sHtmlBody = null, $sTextBody = null, $sMessageName = null, $iListId = null, $sMessageType = 'normal') { // Valid message types $aValidMessageTypes = array('normal', 'autoresponder', 'welcome', 'confirmation'); // Setup the message data $aMessage = array( 'campaignId' => $iCampaignId, 'htmlBody' => $sHtmlBody, 'messageName' => $sMessageName, 'messageType' => (in_array($sMessageType, $aValidMessageTypes) ? $sMessageType : 'normal'), 'subject' => $sSubject, 'textBody' => $sTextBody ); // Add the message $aNewMessage = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/messages", 'POST', array($aMessage), 'messages'); // Return the message data return $aNewMessage[0]; } /** * This method adds a field to the order by * key in the search parameters array * @access public * @param string $sField * @param string [$sDirection] * @return iContactApi $this **/ public function addOrderBy($sField, $sDirection = null) { // Check for existing order by parameters if (empty($this->aSearchParameters['orderby'])) { // Check for a direction if (empty($sDirection)) { // Add just the field $this->aSearchParameters['orderby'] = (string) $sField; } else { // Add the field and direction $this->aSearchParameters['orderby'] = (string) "{$sField}:{$sDirection}"; } } else { // Check for a direction if (empty($sDirection)) { // Append just the field $this->aSearchParameters['orderby'] .= (string) ",{$sField}"; } else { // Append the field and direction $this->aSearchParameters['orderby'] .= (string) ",{$sField}:{$sDirection}"; } } // Return failure return false; } /** * This method handles the deleting of a single list * @access public * @param integer $iListId * @return bool **/ public function deleteList($iListId) { // Delete the list return $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/lists/{$iListId}", 'delete'); } /** * This method handles the handshaking between this app and the iContact API * @access public * @param string $sResource * @param string $sMethod * @param string $sReturnKey * @param mixed $mPostData Array, object, or string * @return array|object **/ public function makeCall($sResource, $sMethod = 'GET', $mPostData = null, $sReturnKey = null) { // List of needed constants $aRequiredConfigs = array('apiPassword', 'apiUsername', 'appId'); // First off check for definitions foreach ($aRequiredConfigs as $sKey) { // Is it defined if (empty($this->aConfig[$sKey])) { // Set an error $this->addError("{$sKey} is undefined."); } } // Set the URI that we will be calling $sApiUrl = (string) "{$this->getUrl()}{$sResource}"; // Initialize the cURL handle $rHandle = curl_init(); // Give our handle headers curl_setopt($rHandle, CURLOPT_HTTPHEADER, $this->getHeaders()); // Tell our handle that we // want the data returned curl_setopt($rHandle, CURLOPT_RETURNTRANSFER, true); // Turn SSL verifcation off, so scripts do not get broken curl_setopt($rHandle, CURLOPT_SSL_VERIFYPEER, false); // Determine the request // method we are using switch (strtoupper($sMethod)) { // Deleting data case 'DELETE' : // Set the cURL custom header curl_setopt($rHandle, CURLOPT_CUSTOMREQUEST, 'DELETE'); break; // Recieving data case 'GET' : // Check for a query string if (!empty($this->aSearchParameters)) { // Add the query string $sApiUrl .= (string) '?'.http_build_query($this->aSearchParameters); } break; // Sending data case 'POST' : // Check for POST data if (empty($mPostData)) { // Add an error, for there is no // POST data to send to the API $this->addError('No POST data was provided.'); } else { // Tell our handle that // we want to send data curl_setopt($rHandle, CURLOPT_POST, true); // Give our handle the data curl_setopt($rHandle, CURLOPT_POSTFIELDS, json_encode($mPostData)); // Set the request JSON $this->sLastRequest = (string) json_encode($mPostData); } break; // Uploading data case 'PUT' : if (empty($mPostData)) { // Is there data? $this->addError('No file or data specified for PUT request'); } elseif (!is_string($mPostData) || !file_exists($mPostData)) { // Not a file, so we assume this is just data curl_setopt($rHandle, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($rHandle, CURLOPT_POSTFIELDS, $mPostData); } else { $rFileContentHandle = fopen($mPostData, 'r'); if ($rFileContentHandle === false) { $this->addError('A non-existant file was specified for POST data, or the file could not be opened.'); } else { // Found a file, so upload its contents curl_setopt($rHandle, CURLOPT_PUT, true); curl_setopt($rHandle, CURLOPT_INFILE, $rFileContentHandle); } } break; } // Store the URL into the instance $this->sRequestUri = (string) $sApiUrl; // Give our handle a URL curl_setopt($rHandle, CURLOPT_URL, $sApiUrl); // Try to execute the handle if (!$sResponse = curl_exec($rHandle)) { // Add an error, for we could // not even execute the handle $this->addError('We were unable to execute the cURL handle.'); } // Set the response JSON $this->sLastResponse = (string) $sResponse; // Try to decode the response if ((!$aResponse = json_decode($sResponse)) && (strtoupper($sMethod) != 'DELETE')) { // Add an error, for the API // did not return valid JSON $this->addError('The iContact API did not return valid JSON.'); } // Close the cURL handle curl_close($rHandle); // Check for errors from the API if (!empty($aResponse->errors)) { // Loop through the errors foreach ($aResponse->errors as $sError) { // Add the error $this->addError($sError, 1); } } // Check for warnings from the API if (!empty($aResponse->warnings)) { // Loop through the warnings foreach ($aResponse->warnings as $sWarning) { // Add the warning $this->addWarning($sWarning); } } // Check for set errors if (!empty($this->aErrors)) { // Throw a new exception throw new Exception('Errors have occurred and the system cannot continue. Use getErrors() for details.'); } // Check for a total if (!empty($aResponse->total)) { // Store the total records // into the current instsnce $this->iTotal = (integer) $aResponse->total; } // Return the response if (strtoupper($sMethod) == 'DELETE') { // Return success return true; } elseif (empty($sReturnKey)) { // Return the entire // base response return $aResponse; } else { // Return the narrowed resposne return $aResponse->$sReturnKey; } } /** * This method sends a message * @access public * @param string $sIncludeListId * @param integer $iMessageId * @param string [$sExcludeListIds] * @param string [$sExcludeSegmentIds] * @param string [$sIncludeSegmentIds] * @param string [$sScheduledTime] * @return object **/ public function sendMessage($sIncludeListIds, $iMessageId, $sExcludeListIds = null, $sExcludeSegmentIds = null, $sIncludeSegmentIds = null, $sScheduledTime = null) { // Send the message $aSends = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/sends", 'POST', array( array( 'excludeListIds' => $sExcludeListIds, 'excludeSegmentIds' => $sExcludeSegmentIds, 'includeListIds' => $sIncludeListIds, 'includeSegmentIds' => $sIncludeSegmentIds, 'scheduledTime' => (empty($sScheduledTime) ? null : date('c', strtotime($sScheduledTime))) ) ), 'sends'); // Return the send return $aSends; } /** * This method subscribes a contact to a list * @access public * @param integer $iContactId * @param integer $iListId * @param string $sStatus * @return object **/ public function subscribeContactToList($iContactId, $iListId, $sStatus = 'normal') { // Valid statuses $aValidStatuses = array('normal', 'pending', 'unsubscribed'); // Setup the subscription and make the call $aSubscriptions = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/subscriptions", 'POST', array( array( 'contactId' => $iContactId, 'listId' => $iListId, 'status' => $sStatus ) ), 'subscriptions'); // Return the subscription return $aSubscriptions; } /** * This method updates a contact in your iContact account * @access public * @param integer $iContactId * @param string $sEmail * @param string $sPrefix * @param string $sFirstName * @param string $sLastName * @param string $sSuffix * @param string $sStreet * @param string $sStreet2 * @param string $sCity * @param string $sState * @param string $sPostalCode * @param string $sPhone * @param string $sFax * @param string $sBusiness * @param string $sStatus * @return bool|object **/ public function updateContact($iContactId, $sEmail = null, $sPrefix = null, $sFirstName = null, $sLastName = null, $sSuffix = null, $sStreet = null, $sStreet2 = null, $sCity = null, $sState = null, $sPostalCode = null, $sPhone = null, $sFax = null, $sBusiness = null, $sStatus = null) { // Valid statuses $aValidStatuses = array('normal', 'bounced', 'donotcontact', 'pending', 'invitable', 'deleted'); // Contact placeholder $aContact = array(); // Check for an email address if (!empty($sEmail)) { // Add the new email $aContact['email'] = (string) $sEmail; } // Check for a prefix if (!empty($sPrefix)) { // Add the new prefix $aContact['prefix'] = (string) $sPrefix; } // Check for a first name if (!empty($sFirstName)) { // Add the new first name $aContact['firstName'] = (string) $sFirstName; } // Check for a last name if (!empty($sLastName)) { // Add the new last name $aContact['lastName'] = (string) $sLastName; } // Check for a suffix if (!empty($sSuffix)) { // Add the new suffix $aContact['suffix'] = (string) $sSuffix; } // Check for a street if (!empty($sStreet)) { // Add the new street $aContact['street'] = (string) $sStreet; } // Check for a street2 if (!empty($sStreet2)) { // Add the new street 2 $aContact['street2'] = (string) $sStreet2; } // Check for a city if (!empty($sCity)) { // Add the new city $aContact['city'] = (string) $sCity; } // Check for a state if (!empty($sState)) { // Add the new state $aContact['state'] = (string) $sState; } // Check for a postal code if (!empty($sPostalCode)) { // Add the new postal code $aContact['postalCode'] = (string) $sPostalCode; } // Check for a phone number if (!empty($sPhone)) { // Add the new phone number $aContact['phone'] = (string) $sPhone; } // Check for a fax number if (!empty($sFax)) { // Add the new fax number $aContact['fax'] = (string) $sFax; } // Check for a business name if (!empty($sBusiness)) { // Add the new business $aContact['business'] = (string) $sBusiness; } // Check for a valid status if (!empty($sStatus) && in_array($sStatus, $aValidStatuses)) { // Add the new status $aContact['status'] = $sStatus; } // Make sure the contact isn't empty if (!empty($aContact)) { // Make the call $oContact = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/contacts/{$iContactId}", 'POST', array($aContact), 'contact'); // Return the contact return $oContact; } // Inevitably return failure return false; } /** * This method uploads a CSV file to the iContact API * @access public * @param string $sFile * @param integer [$iListId] * @param integer [$iUploadId] * @return string|bool **/ public function uploadData($sFile, $iListId = null, $iUploadId = null) { // Check for an upload ID if (empty($iUploadId)) { // Make the call $aUploads = $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/uploads", 'POST', array( array( 'action' => 'add', 'listIds' => $iListId ) ), 'uploads'); // Store the uploadID $iUploadId = $aUploads[0]->uploadId; } // Upload the data if ($this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/uploads/{$iUploadId}/data", 'PUT', $sFile, 'uploadId')) { // Loop until the upload is complete while (true) { // Grab the upload $aUpload = $this->getUpload($iUploadId); // Check to see if the upload // has finished uploading if ($aUpload->status != 'receiving') { // Return the upload return $this->makeCall("/a/{$this->setAccountId()}/c{$this->setClientFolderId()}/uploads/{$iUploadId}/data", 'GET'); } } } // Return failure return false; } /** * This message updates a list on your iContact account * @access public * @param string $sName * @param integer $iListId * @param string $sName * @param integer $iWelcomeMessageId * @param bool [$bEmailOwnerOnChange] * @param bool [$bWelcomeOnManualAdd] * @param bool [$bWelcomeOnSignupAdd] * @param string [$sDescription] * @param string [$sPublicName] * @return object **/ public function updateList($iListId, $sName, $iWelcomeMessageId, $bEmailOwnerOnChange = true, $bWelcomeOnManualAdd = false, $bWelcomeOnSignupAdd = false, $sDescription = null, $sPublicName = null) { // Setup the list $aList = array( 'name' => $sName, 'welcomeMessageId' => $iWelcomeMessageId, 'emailOwnerOnChange' => intval($bEmailOwnerOnChange), 'welcomeOnManualAdd' => intval($bWelcomeOnManualAdd), 'welcomeOnSignupAdd' => intval($bWelcomeOnSignupAdd), 'description' => $sDescription, 'publicname' => $sPublicName ); // Return the list return $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/lists/{$iListId}", 'POST', $aList, 'list');; } /** * This method tells the system whether * or not to use the sandbox or not, the * sandbox is turned off by defualt and * by default this method turns it on * @access public * @param bool [$bUse] * @return iContactApi $this **/ public function useSandbox($bUse = true) { // Set the sandbox status $this->bSandbox = (bool) $bUse; // Return instance return $this; } ////////////////////////////////////////////////////////////////////////////// /// PROTECTED /////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /** * This method appends an error to the list * of errors encountered with the iContact API * @access protected * @param string $sText * @param integer [$iCode] * @return iContactApi $this **/ protected function addError($sText) { // Append the error array_push($this->aErrors, $sText); // Return instance return $this; } /** * This method appends a warning to the list * of warnings encountered with the iContact API * @access protected * @param string $sText * @return iContactApi $this **/ public function addWarning($sText) { // Append the warning array_push($this->aWarnings, $sText); // Return instance return $this; } ////////////////////////////////////////////////////////////////////////////// /// Getters ///////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /** * This method grabs the campaigns associated * your iContact account * @access public * @return object **/ public function getCampaigns() { // Make the call and return the data return $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/campaigns", 'GET'); } /** * This method grabs a single contact * from your iContact Account * @access public * @param integer $iContactId * @return object **/ public function getContact($iContactId) { // Make the call and return the data return $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/contacts/{$iContactId}", 'GET', null, 'contact'); } /** * This method grabs the contacts associated * with you iContact API account * @access public * @return array **/ public function getContacts() { // Make the call and return the data return $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/contacts", 'GET'); } /** * This method returns any set * errors in the current instance * @access public * @return array|bool **/ public function getErrors() { // Check for errors if (empty($this->aErrors)) { // Return false, for // there are no errors return false; } else { // Return the errors return $this->aErrors; } } /** * This method builds the header array * for making calls to the API * @access public * @return array **/ public function getHeaders() { // Return the headers return array( 'Except:', 'Accept: application/json', 'Content-type: application/json', 'Api-Version: ' . (defined('ICONTACT_APIVERSION') ? constant('ICONTACT_APIVERSION') : '2.2'), 'Api-AppId: ' . (!empty($this->aConfig['appId']) ? $this->aConfig['appId'] : constant('ICONTACT_APPID')), 'Api-Username: '. (!empty($this->aConfig['apiUsername']) ? $this->aConfig['apiUsername'] : constant('ICONTACT_APIUSERNAME')), 'Api-Password: '. (!empty($this->aConfig['apiPassword']) ? $this->aConfig['apiPassword'] : constant('ICONTACT_APIPASSWORD')) ); } /** * This method returns the last * API POST request JSON * @access public * @param bool [$bDecode] * @return string|object **/ public function getLastRequest($bDecode = false) { // Check to see if we need // to decode the raw JSON if ($bDecode === true) { // Return the decoded JSON return json_decode($this->sLastRequest); } // Return the raw JSON return $this->sLastRequest; } /** * This method returns the last * API response JSON * @access public * @param bool [$bDecode] * @return string|object **/ public function getLastResponse($bDecode = false) { // Check to see if we need // to decode the raw JSON if ($bDecode === true) { // Return the decoded JSON return json_decode($this->sLastResponse); } // Return the raw JSON return $this->sLastResponse; } /** * This method grabs a list of lists * that are associated with you iContact * API account * @access public * @return array **/ public function getLists() { // Make the call and return the lists return $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/lists", 'GET', null, 'lists'); } /** * This method lists the opens of a * single message based on the messageID * @access public * @param integer iMessageId * @return integer **/ public function getMessageOpens($iMessageId) { // Make the call and return the data return $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/messages/{$iMessageId}/opens", 'GET', null, 'total'); } public function getMessages($sType = null) { // Check for a message type if (!empty($sType)) { $this->addCustomQueryField('messageType', $sType); } // Return the messages return $this->makeCall("/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}/messages", 'GET', null, 'messages'); } /** * This method returns the URL * that the last API request * called * @access public * @return string **/ public function getRequestUri() { // Return the URL return $this->sRequestUri; } /** * This method returns the count of the * total number of records from the most * recent API call, if there is one * @access public * @return integer **/ public function getTotal() { // Return the total records return $this->iTotal; } /** * This method simply returns the base URL for * your API/Sandbox account * @access public * @param bool [$bFull] * @return string **/ public function getUrl($bFull = false) { // Set the sandbox URL $sSandboxUrl = defined('ICONTACT_APISANDBOXURL') ? constant('ICONTACT_APISANDBOXURL') : 'https://app.sandbox.icontact.com/icp'; // Set the production URL $sApiUrl = defined('ICONTACT_APIURL') ? constant('ICONTACT_APIURL') : 'https://app.icontact.com/icp'; // Determine which one needs to be returned with the URL $sBaseUrl = ($this->bSandbox === true) ? $sSandboxUrl : $sApiUrl; // Do we need to return the entire url or just // the base url of the API service if ($bFull === false) { // Return the base url return $sBaseUrl; } else { // Return the base url and account details return $sBaseUrl . "/a/{$this->setAccountId()}/c/{$this->setClientFolderId()}"; } } /** * This method grabs a specific upload * @access public * @param integer $iUploadId * @return object **/ public function getUpload($iUploadId) { // Return the upload data return $this->makeCall("/a/{$this->setAccountId()}/c{$this->setClientFolderId()}/uploads/{$iUploadId}/data"); } /** * This method grabs the uploads associated * with your iContact Account * @access public * @return array **/ public function getUploads() { // Return the uploads return $this->makeCall("/a/{$this->setAccountId()}/c{$this->setClientFolderId()}/uploads"); } /** * This method returns the warnings encountered * while communicating with the iContact API * @access public * @return array **/ public function getWarnings() { // Return the current system warnings return $this->aWarnings; } ////////////////////////////////////////////////////////////////////////////// /// Setters ///////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /** * This method fetches the Account ID * from the iContact API if it has not * already been stored in the instance * @access public * @param integer [$iAccountId] * @return integer **/ public function setAccountId($iAccountId = null) { // Check for an overriding // Account ID if (!empty($iAccountId)) { // Override the Account ID $this->iAccountId = (integer) $iAccountId; } else { // Check to see if the // Account ID has already // been stored in the // instance if (empty($this->iAccountId)) { // Load the Account ID if ($aAccounts = $this->makeCall('/a/', 'get', null, 'accounts')) { // Set the account $aAccount = $aAccounts[0]; // Make sure the account is active if (intval($aAccount->enabled) === 1) { // The account is active // set the Account ID $this->iAccountId = (integer) $aAccount->accountId; } else { // Set an error, for this account // has been disabled $this->addError('Your account has been disabled.'); } } } } // Inevitably return instance return $this->iAccountId; } /** * This method fetches the Client * Folder ID from the iContact API * if it has not already been stored * in the instance and the Account ID * has also been stored in the instance * @access public * @param integer [$iClientFolderId] * @return integer **/ public function setClientFolderId($iClientFolderId = null) { // Check for an overriding // Client Folder ID if (!empty($iClientFolderId)) { // Set the Client Folder ID $this->iClientFolderId = (integer) $iClientFolderId; } elseif (empty($this->iClientFolderId)) { // Check for an Account ID if (empty($this->iAccountId)) { // Set the Account ID $this->setAccountId(); } // Set the resource $sResource = (string) "/a/{$this->iAccountId}/c/"; // Find the Client Folder ID if ($aClients = $this->makeCall($sResource, 'get', null, 'clientfolders')) { if (empty($aClients)) { // Add an error, for there // are no client folders $this->addError('No client folders were found for this account.'); } else { // Grab the default client folder $aClient = $aClients[0]; // Set the Client Folder ID $this->iClientFolderId = (integer) $aClient->clientFolderId; } } } // Inevitably return instance return $this->iClientFolderId; } /** * This method sets configuration into the * plugin to pragmatically override constants * @access public * @param array $aConfig * @return iContactApi $this **/ public function setConfig($aConfig) { // Combine the arrays $this->aConfig = (array) array_merge($this->aConfig, $aConfig); // Return instance return $this; } /** * This method sets the result limit * for GET requests to the iContact API * @access public * @param integer $iLimit * @return iContactApi $this **/ public function setLimit($iLimit) { // Set the limit in the search parameters $this->aSearchParameters['limit'] = (integer) $iLimit; // Return instance return $this; } /** * This method sets the result index * offset for paginating results from * GET requests to the iContact API * @access public * @param integer $iOffset * @return iContactApi $this **/ public function setOffset($iOffset) { // Set the offset in the search parameters $this->aSearchParameters['offset'] = (integer) $iOffset; // Return instance return $this; } }
| ver. 1.4 |
Github
|
.
| PHP 7.2.34 | Генерация страницы: 0.05 |
proxy
|
phpinfo
|
Настройка