Overview

Namespaces

  • Ctct
    • Auth
    • Components
      • Account
      • Activities
      • Contacts
      • EmailMarketing
      • Library
      • Tracking
    • Exceptions
    • Services
    • Util
    • WebHooks

Classes

  • Ctct\Auth\CtctOAuth2
  • Ctct\Auth\SessionDataStore
  • Ctct\Components\Account\AccountInfo
  • Ctct\Components\Account\VerifiedEmailAddress
  • Ctct\Components\Activities\Activity
  • Ctct\Components\Activities\ActivityError
  • Ctct\Components\Activities\AddContacts
  • Ctct\Components\Activities\AddContactsImportData
  • Ctct\Components\Activities\ExportContacts
  • Ctct\Components\Component
  • Ctct\Components\Contacts\Address
  • Ctct\Components\Contacts\Contact
  • Ctct\Components\Contacts\ContactList
  • Ctct\Components\Contacts\CustomField
  • Ctct\Components\Contacts\EmailAddress
  • Ctct\Components\Contacts\Note
  • Ctct\Components\EmailMarketing\Campaign
  • Ctct\Components\EmailMarketing\ClickThroughDetails
  • Ctct\Components\EmailMarketing\MessageFooter
  • Ctct\Components\EmailMarketing\Schedule
  • Ctct\Components\EmailMarketing\TestSend
  • Ctct\Components\Library\File
  • Ctct\Components\Library\FileUploadStatus
  • Ctct\Components\Library\Folder
  • Ctct\Components\Library\Thumbnail
  • Ctct\Components\ResultSet
  • Ctct\Components\Tracking\BounceActivity
  • Ctct\Components\Tracking\ClickActivity
  • Ctct\Components\Tracking\ForwardActivity
  • Ctct\Components\Tracking\OpenActivity
  • Ctct\Components\Tracking\SendActivity
  • Ctct\Components\Tracking\TrackingActivity
  • Ctct\Components\Tracking\TrackingSummary
  • Ctct\Components\Tracking\UnsubscribeActivity
  • Ctct\ConstantContact
  • Ctct\Services\AccountService
  • Ctct\Services\ActivityService
  • Ctct\Services\BaseService
  • Ctct\Services\CampaignScheduleService
  • Ctct\Services\CampaignTrackingService
  • Ctct\Services\ContactService
  • Ctct\Services\ContactTrackingService
  • Ctct\Services\EmailMarketingService
  • Ctct\Services\LibraryService
  • Ctct\Services\ListService
  • Ctct\SplClassLoader
  • Ctct\Util\Config
  • Ctct\WebHooks\CTCTWebhookUtil

Interfaces

  • Ctct\Auth\CtctDataStore

Exceptions

  • Ctct\Exceptions\CtctException
  • Ctct\Exceptions\IllegalArgumentException
  • Ctct\Exceptions\OAuth2Exception
  • Overview
  • Namespace
  • Class
  1: <?php
  2: namespace Ctct\Services;
  3: 
  4: use Ctct\Exceptions\CtctException;
  5: use Ctct\Util\Config;
  6: use Ctct\Components\Contacts\ContactList;
  7: use GuzzleHttp\Exception\ClientException;
  8: use GuzzleHttp\Stream\Stream;
  9: 
 10: /**
 11:  * Performs all actions pertaining to Constant Contact Lists
 12:  *
 13:  * @package     Services
 14:  * @author         Constant Contact
 15:  */
 16: class ListService extends BaseService
 17: {
 18:     /**
 19:      * Get lists within an account
 20:      * @param $accessToken - Constant Contact OAuth2 access token
 21:      * @param array $params - associative array of query parameters and values to append to the request.
 22:      *      Allowed parameters include:
 23:      *      modified_since - ISO-8601 formatted timestamp.
 24:      * @return Array - ContactLists
 25:      * @throws CtctException
 26:      */
 27:     public function getLists($accessToken, Array $params = array())
 28:     {
 29:         $baseUrl = Config::get('endpoints.base_url') . Config::get('endpoints.lists');
 30: 
 31:         $request = parent::createBaseRequest($accessToken, 'GET', $baseUrl);
 32:         if ($params) {
 33:             $query = $request->getQuery();
 34:             foreach ($params as $name => $value) {
 35:                 $query->add($name, $value);
 36:             }
 37:         }
 38: 
 39:         try {
 40:             $response = parent::getClient()->send($request);
 41:         } catch (ClientException $e) {
 42:             throw parent::convertException($e);
 43:         }
 44: 
 45:         $lists = array();
 46:         foreach ($response->json() as $contact) {
 47:             $lists[] = ContactList::create($contact);
 48:         }
 49: 
 50:         return $lists;
 51:     }
 52: 
 53:     /**
 54:      * Create a new Contact List
 55:      * @param string $accessToken - Constant Contact OAuth2 access token
 56:      * @param ContactList $list
 57:      * @return ContactList
 58:      * @throws CtctException
 59:      */
 60:     public function addList($accessToken, ContactList $list)
 61:     {
 62:         $baseUrl = Config::get('endpoints.base_url') . Config::get('endpoints.lists');
 63: 
 64:         $request = parent::createBaseRequest($accessToken, 'POST', $baseUrl);
 65:         $stream = Stream::factory(json_encode($list));
 66:         $request->setBody($stream);
 67: 
 68:         try {
 69:             $response = parent::getClient()->send($request);
 70:         } catch (ClientException $e) {
 71:             throw parent::convertException($e);
 72:         }
 73: 
 74:         return ContactList::create($response->json());
 75:     }
 76: 
 77:     /**
 78:      * Update a Contact List
 79:      * @param string $accessToken - Constant Contact OAuth2 access token
 80:      * @param ContactList $list - ContactList to be updated
 81:      * @return ContactList
 82:      * @throws CtctException
 83:      */
 84:     public function updateList($accessToken, ContactList $list)
 85:     {
 86:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.list'), $list->id);
 87: 
 88:         $request = parent::createBaseRequest($accessToken, 'PUT', $baseUrl);
 89:         $stream = Stream::factory(json_encode($list));
 90:         $request->setBody($stream);
 91: 
 92:         try {
 93:             $response = parent::getClient()->send($request);
 94:         } catch (ClientException $e) {
 95:             throw parent::convertException($e);
 96:         }
 97: 
 98:         return ContactList::create($response->json());
 99:     }
100: 
101:     /**
102:      * Delete a Contact List
103:      * @param string $accessToken - Constant Contact OAuth2 access token
104:      * @param $listId - list id
105:      * @return ContactList
106:      * @throws CtctException
107:      */
108:     public function deleteList($accessToken, $listId)
109:     {
110:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.list'), $listId);
111: 
112:         $request = parent::createBaseRequest($accessToken, 'DELETE', $baseUrl);
113: 
114:         try {
115:             $response = parent::getClient()->send($request);
116:         } catch (ClientException $e) {
117:             throw parent::convertException($e);
118:         }
119: 
120:         return ($response->getStatusCode() == 204) ? true : false;
121:     }
122: 
123:     /**
124:      * Get an individual contact list
125:      * @param $accessToken - Constant Contact OAuth2 access token
126:      * @param $listId - list id
127:      * @return ContactList
128:      * @throws CtctException
129:      */
130:     public function getList($accessToken, $listId)
131:     {
132:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.list'), $listId);
133: 
134:         $request = parent::createBaseRequest($accessToken, 'GET', $baseUrl);
135: 
136:         try {
137:             $response = parent::getClient()->send($request);
138:         } catch (ClientException $e) {
139:             throw parent::convertException($e);
140:         }
141: 
142:         return ContactList::create($response->json());
143:     }
144: }
145: 
API documentation generated by ApiGen