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\EmailMarketing\Schedule;
  7: use Ctct\Components\EmailMarketing\TestSend;
  8: use GuzzleHttp\Exception\ClientException;
  9: use GuzzleHttp\Stream\Stream;
 10: 
 11: /**
 12:  * Performs all actions pertaining to scheduling Constant Contact Campaigns
 13:  *
 14:  * @package Services
 15:  * @author Constant Contact
 16:  */
 17: class CampaignScheduleService extends BaseService
 18: {
 19:     /**
 20:      * Create a new schedule for a campaign
 21:      * @param string $accessToken - Constant Contact OAuth2 access token
 22:      * @param int $campaignId - Campaign id to be scheduled
 23:      * @param Schedule $schedule - Schedule to be created
 24:      * @return Schedule
 25:      * @throws CtctException
 26:      */
 27:     public function addSchedule($accessToken, $campaignId, Schedule $schedule)
 28:     {
 29:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign_schedules'), $campaignId);
 30: 
 31:         $request = parent::createBaseRequest($accessToken, 'POST', $baseUrl);
 32:         $stream = Stream::factory(json_encode($schedule));
 33:         $request->setBody($stream);
 34: 
 35:         try {
 36:             $response = parent::getClient()->send($request);
 37:         } catch (ClientException $e) {
 38:             throw parent::convertException($e);
 39:         }
 40: 
 41:         return Schedule::create($response->json());
 42:     }
 43: 
 44:     /**
 45:      * Get a list of schedules for a campaign
 46:      * @param string $accessToken - Constant Contact OAuth2 access token
 47:      * @param int $campaignId - Campaign id to be scheduled
 48:      * @return array
 49:      * @throws CtctException
 50:      */
 51:     public function getSchedules($accessToken, $campaignId)
 52:     {
 53:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign_schedules'), $campaignId);
 54: 
 55:         $request = parent::createBaseRequest($accessToken, 'GET', $baseUrl);
 56: 
 57:         try {
 58:             $response = parent::getClient()->send($request);
 59:         } catch (ClientException $e) {
 60:             throw parent::convertException($e);
 61:         }
 62: 
 63:         $schedules = array();
 64:         foreach ($response->json() as $schedule) {
 65:             $schedules[] = Schedule::create($schedule);
 66:         }
 67:         return $schedules;
 68:     }
 69: 
 70:     /**
 71:      * Get a specific schedule for a campaign
 72:      * @param string $accessToken - Constant Contact OAuth2 access token
 73:      * @param int $campaignId - Campaign id to be get a schedule for
 74:      * @param int $scheduleId - Schedule id to retrieve
 75:      * @return Schedule
 76:      * @throws CtctException
 77:      */
 78:     public function getSchedule($accessToken, $campaignId, $scheduleId)
 79:     {
 80:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign_schedule'), $campaignId, $scheduleId);
 81: 
 82:         $request = parent::createBaseRequest($accessToken, 'GET', $baseUrl);
 83: 
 84:         try {
 85:             $response = parent::getClient()->send($request);
 86:         } catch (ClientException $e) {
 87:             throw parent::convertException($e);
 88:         }
 89: 
 90:         return Schedule::create($response->json());
 91:     }
 92: 
 93:     /**
 94:      * Update a specific schedule for a campaign
 95:      * @param string $accessToken - Constant Contact OAuth2 access token
 96:      * @param int $campaignId - Campaign id to be scheduled
 97:      * @param Schedule $schedule - Schedule to retrieve
 98:      * @return Schedule
 99:      * @throws CtctException
100:      */
101:     public function updateSchedule($accessToken, $campaignId, Schedule $schedule)
102:     {
103:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign_schedule'), $campaignId, $schedule->id);
104: 
105:         $request = parent::createBaseRequest($accessToken, 'PUT', $baseUrl);
106:         $stream = Stream::factory(json_encode($schedule));
107:         $request->setBody($stream);
108: 
109:         try {
110:             $response = parent::getClient()->send($request);
111:         } catch (ClientException $e) {
112:             throw parent::convertException($e);
113:         }
114: 
115:         return Schedule::create($response->json());
116:     }
117: 
118:     /**
119:      * Delete a specific schedule for a campaign
120:      * @param string $accessToken - Constant Contact OAuth2 access token
121:      * @param int $campaignId - Campaign id
122:      * @param int $scheduleId - Schedule id to delete
123:      * @return True if successful
124:      * @throws CtctException
125:      */
126:     public function deleteSchedule($accessToken, $campaignId, $scheduleId)
127:     {
128:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign_schedule'), $campaignId, $scheduleId);
129: 
130:         $request = parent::createBaseRequest($accessToken, 'DELETE', $baseUrl);
131: 
132:         try {
133:             $response = parent::getClient()->send($request);
134:         } catch (ClientException $e) {
135:             throw parent::convertException($e);
136:         }
137: 
138:         return ($response->getStatusCode() == 204) ? true : false;
139:     }
140: 
141:     /**
142:      * Send a test send of a campaign
143:      * @param string $accessToken - Constant Contact OAuth2 access token
144:      * @param int $campaignId - Id of campaign to send test of
145:      * @param TestSend $testSend - Test send details
146:      * @return TestSend
147:      * @throws CtctException
148:      */
149:     public function sendTest($accessToken, $campaignId, TestSend $testSend)
150:     {
151:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign_test_sends'), $campaignId);
152: 
153:         $request = parent::createBaseRequest($accessToken, 'POST', $baseUrl);
154:         $stream = Stream::factory(json_encode($testSend));
155:         $request->setBody($stream);
156: 
157:         try {
158:             $response = parent::getClient()->send($request);
159:         } catch (ClientException $e) {
160:             throw parent::convertException($e);
161:         }
162: 
163:         return TestSend::create($response->json());
164:     }
165: }
166: 
API documentation generated by ApiGen