/** * Update a specific email campaign * @param string $accessToken - Constant Contact OAuth2 access token * @param Campaign $campaign - Campaign to be updated * @return Campaign */ public function updateCampaign($accessToken, Campaign $campaign) { $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign'), $campaign->id); $url = $this->buildUrl($baseUrl); $response = parent::getRestClient()->put($url, parent::getHeaders($accessToken), $campaign->toJson()); return Campaign::create(json_decode($response->body, true)); }
/** * Create an email campaign with the parameters provided * @param array $params associative array of parameters to create a campaign from * @return Campaign updated by server */ function createCampaign(array $params = array()) { $cc = new ConstantContact(APIKEY); $campaign = new Campaign(); $campaign->name = $params['name']; $campaign->subject = $params['subject']; $campaign->from_name = $params['from_name']; $campaign->from_email = $params['from_addr']; $campaign->greeting_string = $params['greeting_string']; $campaign->reply_to_email = $params['reply_to_addr']; $campaign->text_content = $params['text_content']; $campaign->email_content = $params['email_content']; $campaign->email_content_format = $params['format']; // add the selected list or lists to the campaign if (isset($params['lists'])) { if (count($params['lists']) > 1) { foreach ($params['lists'] as $list) { $campaign->addList($list); } } else { $campaign->addList($params['lists'][0]); } } return $cc->emailMarketingService->addCampaign(ACCESS_TOKEN, $campaign); }
/** * Update a specific email campaign * @param string $accessToken - Constant Contact OAuth2 access token * @param Campaign $campaign - Campaign to be updated * @return Campaign * @throws CtctException */ public function updateCampaign($accessToken, Campaign $campaign) { $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.campaign'), $campaign->id); $request = parent::createBaseRequest($accessToken, 'PUT', $baseUrl); $stream = Stream::factory(json_encode($campaign)); $request->setBody($stream); try { $response = parent::getClient()->send($request); } catch (ClientException $e) { throw parent::convertException($e); } return Campaign::create($response->json()); }
public function testUpdateCampaign() { $response = self::$client->put('/'); $campaign = Campaign::create($response->json()); $this->assertInstanceOf('Ctct\\Components\\EmailMarketing\\Campaign', $campaign); $this->assertEquals("1100394165290", $campaign->id); $this->assertEquals("CampaignName-05965ddb-12d2-43e5-b8f3-0c22ca487c3a", $campaign->name); $this->assertEquals("CampaignSubject", $campaign->subject); $this->assertEquals("SENT", $campaign->status); $this->assertEquals("From WSPI", $campaign->from_name); $this->assertEquals("*****@*****.**", $campaign->from_email); $this->assertEquals("*****@*****.**", $campaign->reply_to_email); $this->assertEquals("CUSTOM", $campaign->template_type); $this->assertEquals("2012-12-06T18:06:05.255Z", $campaign->created_date); $this->assertEquals("2012-12-06T18:06:40.342Z", $campaign->last_run_date); $this->assertEquals(false, $campaign->is_permission_reminder_enabled); $this->assertEquals("", $campaign->permission_reminder_text); $this->assertEquals(false, $campaign->is_view_as_webpage_enabled); $this->assertEquals("Having trouble viewing this email?", $campaign->view_as_web_page_text); $this->assertEquals("Click Here", $campaign->view_as_web_page_link_text); $this->assertEquals("Hi", $campaign->greeting_salutations); $this->assertEquals("FIRST_NAME", $campaign->greeting_name); $this->assertEquals("", $campaign->greeting_string); $this->assertEquals("<html><body>Hi <a href=\"http://www.constantcontact.com\">Visit ConstantContact.com!</a> </body></html>", $campaign->email_content); $this->assertEquals("HTML", $campaign->email_content_format); $this->assertEquals("", $campaign->style_sheet); $this->assertEquals("<text>Something to test</text>", $campaign->text_content); // message footer $this->assertEquals("Waltham", $campaign->message_footer->city); $this->assertEquals("MA", $campaign->message_footer->state); $this->assertEquals("US", $campaign->message_footer->country); $this->assertEquals("WSPIOrgName", $campaign->message_footer->organization_name); $this->assertEquals("1601 Trapelo RD", $campaign->message_footer->address_line_1); $this->assertEquals("suite 2", $campaign->message_footer->address_line_2); $this->assertEquals("box 4", $campaign->message_footer->address_line_3); $this->assertEquals("", $campaign->message_footer->international_state); $this->assertEquals("02451", $campaign->message_footer->postal_code); $this->assertEquals(true, $campaign->message_footer->include_forward_email); $this->assertEquals("WSPIForwardThisEmail", $campaign->message_footer->forward_email_link_text); $this->assertEquals(true, $campaign->message_footer->include_subscribe_link); $this->assertEquals("WSPISubscribeLinkText", $campaign->message_footer->subscribe_link_text); // tracking summary $this->assertEquals(15, $campaign->tracking_summary->sends); $this->assertEquals(10, $campaign->tracking_summary->opens); $this->assertEquals(10, $campaign->tracking_summary->clicks); $this->assertEquals(3, $campaign->tracking_summary->forwards); $this->assertEquals(2, $campaign->tracking_summary->unsubscribes); $this->assertEquals(18, $campaign->tracking_summary->bounces); // sent to contact lists $this->assertEquals(1, count($campaign->sent_to_contact_lists)); $this->assertEquals(3, $campaign->sent_to_contact_lists[0]->id); //click through details $this->assertEquals("http://www.constantcontact.com", $campaign->click_through_details[0]->url); $this->assertEquals("1100394163874", $campaign->click_through_details[0]->url_uid); $this->assertEquals(10, $campaign->click_through_details[0]->click_count); }