Overview

Namespaces

  • Ctct
    • Auth
    • Components
      • Account
      • Activities
      • Contacts
      • EmailMarketing
      • Tracking
    • Exceptions
    • Services
  • PHP

Classes

  • AccountService
  • ActivityService
  • BaseService
  • CampaignScheduleService
  • CampaignTrackingService
  • ContactService
  • ContactTrackingService
  • EmailMarketingService
  • ListService
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: namespace Ctct\Services;
 3: 
 4: use Ctct\Util\RestClient;
 5: use Ctct\Util\Config;
 6: use Ctct\Components\EmailMarketing\Campaign;
 7: use Ctct\Components\ResultSet;
 8: 
 9: /**
10:  * Performs all actions pertaining to Constant Contact Campaigns
11:  *
12:  * @package        Services
13:  * @author         Constant Contact
14:  */
15: class EmailMarketingService extends BaseService
16: {
17:     /**
18:      * Create a new campaign
19:      * @param string $accessToken - Constant Contact OAuth2 access token
20:      * @param Campaign $campaign - Campign to be created
21:      * @return Campaign
22:      */
23:     public function addCampaign($accessToken, Campaign $campaign)
24:     {
25:         $baseUrl = Config::get('endpoints.base_url') . Config::get('endpoints.campaigns');
26:         $url = $this->buildUrl($baseUrl);
27:         $response = parent::getRestClient()->post($url, parent::getHeaders($accessToken), $campaign->toJson());
28:         return Campaign::create(json_decode($response->body, true));
29:     }
30:     
31:     /**
32:      * Get a set of campaigns
33:      * @param string $accessToken - Constant Contact OAuth2 access token
34:      * @param array $params - query params to be appended to the request
35:      * @return ResultSet 
36:      */
37:     public function getCampaigns($accessToken, Array $params = null)
38:     {
39:         $baseUrl = Config::get('endpoints.base_url') . Config::get('endpoints.campaigns');
40:         $url = $this->buildUrl($baseUrl, $params);
41:         $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
42:         $body = json_decode($response->body, true);
43:         $campaigns = array();
44:         foreach ($body['results'] as $contact) {
45:             $campaigns[] = Campaign::createSummary($contact);
46:         }
47:         return new ResultSet($campaigns, $body['meta']);
48:     }
49: 
50:     /**
51:      * Get campaign details for a specific campaign
52:      * @param string $accessToken - Constant Contact OAuth2 access token
53:      * @param int $campaign_id - Valid campaign id
54:      * @return Campaign
55:      */
56:     public function getCampaign($accessToken, $campaign_id)
57:     {
58:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign'), $campaign_id);
59:         $url = $this->buildUrl($baseUrl);
60:         $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
61:         return Campaign::create(json_decode($response->body, true));
62:     }
63:     
64:     /**
65:      * Delete an email campaign
66:      * @param string $accessToken - Constant Contact OAuth2 access token
67:      * @param int $campaign_id - Valid campaign id
68:      * @return boolean
69:      */
70:     public function deleteCampaign($accessToken, $campaign_id)
71:     {
72:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign'), $campaign_id);
73:         $url = $this->buildUrl($baseUrl);
74:         $response = parent::getRestClient()->delete($url, parent::getHeaders($accessToken));
75:         return ($response->info['http_code'] == 204) ? true : false;
76:     }
77:     
78:     /**
79:      * Update a specific email campaign
80:      * @param string $accessToken - Constant Contact OAuth2 access token
81:      * @param Campaign $campaign - Campaign to be updated
82:      * @return Campaign
83:      */
84:     public function updateCampaign($accessToken, Campaign $campaign)
85:     {
86:         $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign'), $campaign->id);
87:         $url = $this->buildUrl($baseUrl);
88:         $response = parent::getRestClient()->put($url, parent::getHeaders($accessToken), $campaign->toJson());
89:         return Campaign::create(json_decode($response->body, true));
90:     }
91: }
92: 
Appconnect PHP SDK API documentation generated by ApiGen 2.8.0