public function testGetContactsFromList()
 {
     $response = self::$client->get('/')->json();
     $result = new ResultSet($response['results'], $response['meta']);
     $this->assertInstanceOf('Ctct\\Components\\ResultSet', $result);
     $contact = Contact::create($result->results[1]);
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\Contact', $contact);
     $this->assertEquals(231, $contact->id);
     $this->assertEquals("ACTIVE", $contact->status);
     $this->assertEquals("", $contact->fax);
     $this->assertEquals("", $contact->prefix_name);
     $this->assertEquals("Jimmy", $contact->first_name);
     $this->assertEquals("Roving", $contact->last_name);
     $this->assertEquals("Bear Tamer", $contact->job_title);
     $this->assertEquals("Animal Trainer Pro", $contact->company_name);
     $this->assertEquals("details", $contact->source_details);
     $this->assertEquals(false, $contact->confirmed);
     $this->assertEquals("", $contact->source);
     // custom fields
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\CustomField', $contact->custom_fields[0]);
     $this->assertEquals("CustomField1", $contact->custom_fields[0]->name);
     $this->assertEquals("1", $contact->custom_fields[0]->value);
     //addresses
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\Address', $contact->addresses[0]);
     $this->assertEquals("Suite 101", $contact->addresses[0]->line1);
     $this->assertEquals("line2", $contact->addresses[0]->line2);
     $this->assertEquals("line3", $contact->addresses[0]->line3);
     $this->assertEquals("Brookfield", $contact->addresses[0]->city);
     $this->assertEquals("PERSONAL", $contact->addresses[0]->address_type);
     $this->assertEquals("WI", $contact->addresses[0]->state_code);
     $this->assertEquals("us", $contact->addresses[0]->country_code);
     $this->assertEquals("53027", $contact->addresses[0]->postal_code);
     $this->assertEquals("", $contact->addresses[0]->sub_postal_code);
     //notes
     $this->assertEquals(0, count($contact->notes));
     //lists
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\ContactList', $contact->lists[0]);
     $this->assertEquals(1, $contact->lists[0]->id);
     $this->assertEquals("ACTIVE", $contact->lists[0]->status);
     // EmailAddress
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\EmailAddress', $contact->email_addresses[0]);
     $this->assertEquals("ACTIVE", $contact->email_addresses[0]->status);
     $this->assertEquals("NO_CONFIRMATION_REQUIRED", $contact->email_addresses[0]->confirm_status);
     $this->assertEquals("ACTION_BY_OWNER", $contact->email_addresses[0]->opt_in_source);
     $this->assertEquals("2012-06-22T10:29:09.976Z", $contact->email_addresses[0]->opt_in_date);
     $this->assertEquals("", $contact->email_addresses[0]->opt_out_date);
     $this->assertEquals("*****@*****.**", $contact->email_addresses[0]->email_address);
 }
 /**
  * Update contact details for a specific contact
  * @param string $accessToken - Constant Contact OAuth2 access token
  * @param Contact $contact - Contact to be updated
  * @param boolean $actionByVisitor - is the action being taken by the visitor 
  * @return Contact
  */
 public function updateContact($accessToken, Contact $contact, $actionByVisitor = false)
 {
     $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.contact'), $contact->id);
     $params = array();
     if ($actionByVisitor == true) {
         $params['action_by'] = "ACTION_BY_VISITOR";
     }
     $url = $this->buildUrl($baseUrl, $params);
     $response = parent::getRestClient()->put($url, parent::getHeaders($accessToken), $contact->toJson());
     return Contact::create(json_decode($response->body, true));
 }
Exemple #3
0
 /**
  * Update contact details for a specific contact
  * @param string $accessToken - Constant Contact OAuth2 access token
  * @param Contact $contact - Contact to be updated
  * @param array $params - query params to be appended to the request
  * @return Contact
  */
 public function updateContact($accessToken, Contact $contact, array $params = array())
 {
     $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.contact'), $contact->id);
     $url = $this->buildUrl($baseUrl, $params);
     $response = parent::getRestClient()->put($url, parent::getHeaders($accessToken), $contact->toJson());
     return Contact::create(json_decode($response->body, true));
 }
 /**
  * Get all contacts from an individual list
  * @param string $accessToken - Constant Contact OAuth2 access token
  * @param string $list_id - list id to retrieve contacts for
  * @param array $params - query params to attach to request
  * @return ResultSet
  */
 public function getContactsFromList($accessToken, $list_id, $params = null)
 {
     $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.list_contacts'), $list_id);
     $url = $this->buildUrl($baseUrl, $params);
     $response = parent::getRestClient()->get($url, parent::getHeaders($accessToken));
     $body = json_decode($response->body, true);
     $contacts = array();
     foreach ($body['results'] as $contact) {
         $contacts[] = Contact::create($contact);
     }
     return new ResultSet($contacts, $body['meta']);
 }
 public function testUpdateContact()
 {
     $response = self::$client->put('/');
     $contact = Contact::create($response->json());
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\Contact', $contact);
     $this->assertEquals(238, $contact->id);
     $this->assertEquals("ACTIVE", $contact->status);
     $this->assertEquals("555-1212", $contact->fax);
     $this->assertEquals("Mr.", $contact->prefix_name);
     $this->assertEquals("John", $contact->first_name);
     $this->assertEquals("Smith", $contact->last_name);
     $this->assertEquals("Software Engineer", $contact->job_title);
     $this->assertEquals("Constant Contact", $contact->company_name);
     $this->assertEquals("555-1212", $contact->home_phone);
     $this->assertEquals("555-1213", $contact->work_phone);
     $this->assertEquals("555-1214", $contact->cell_phone);
     $this->assertEquals("69f9d72b-0a5e-479d-b844-722b1da9595f", $contact->source_details);
     $this->assertEquals(false, $contact->confirmed);
     $this->assertEquals("API", $contact->source);
     // custom fields
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\CustomField', $contact->custom_fields[0]);
     $this->assertEquals("CustomField1", $contact->custom_fields[0]->name);
     $this->assertEquals("3/28/2011 11:09 AM EDT", $contact->custom_fields[0]->value);
     $this->assertEquals("CustomField2", $contact->custom_fields[1]->name);
     $this->assertEquals("Site owner", $contact->custom_fields[1]->value);
     //addresses
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\Address', $contact->addresses[0]);
     $this->assertEquals("1601 Trapelo Rd", $contact->addresses[0]->line1);
     $this->assertEquals("Suite 329", $contact->addresses[0]->line2);
     $this->assertEquals("Line 3", $contact->addresses[0]->line3);
     $this->assertEquals("Waltham", $contact->addresses[0]->city);
     $this->assertEquals("PERSONAL", $contact->addresses[0]->address_type);
     $this->assertEquals("MA", $contact->addresses[0]->state_code);
     $this->assertEquals("us", $contact->addresses[0]->country_code);
     $this->assertEquals("01720", $contact->addresses[0]->postal_code);
     $this->assertEquals("7885", $contact->addresses[0]->sub_postal_code);
     //notes
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\Note', $contact->notes[0]);
     $this->assertEquals(1, $contact->notes[0]->id);
     $this->assertEquals("Here are some cool notes to add", $contact->notes[0]->note);
     $this->assertEquals("2012-12-03T17:09:22.702Z", $contact->notes[0]->created_date);
     //lists
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\ContactList', $contact->lists[0]);
     $this->assertEquals(9, $contact->lists[0]->id);
     $this->assertEquals("ACTIVE", $contact->lists[0]->status);
     // EmailAddress
     $this->assertInstanceOf('Ctct\\Components\\Contacts\\EmailAddress', $contact->email_addresses[0]);
     $this->assertEquals("ACTIVE", $contact->email_addresses[0]->status);
     $this->assertEquals("NO_CONFIRMATION_REQUIRED", $contact->email_addresses[0]->confirm_status);
     $this->assertEquals("ACTION_BY_VISITOR", $contact->email_addresses[0]->opt_in_source);
     $this->assertEquals("2012-09-17T14:40:41.271Z", $contact->email_addresses[0]->opt_in_date);
     $this->assertEquals("2012-03-29T14:59:25.427Z", $contact->email_addresses[0]->opt_out_date);
     $this->assertEquals("*****@*****.**", $contact->email_addresses[0]->email_address);
 }
 /**
  * Update contact details for a specific contact
  * @param string $accessToken - Constant Contact OAuth2 access token
  * @param Contact $contact - Contact to be updated
  * @param array $params - associative array of query parameters and values to append to the request.
  *      Allowed parameters include:
  *      action_by - Whether the contact is taking the action, or the account owner. Must be one of
  *                  ACTION_BY_OWNER or ACTION_BY_VISITOR
  * @return Contact
  * @throws CtctException
  */
 public function updateContact($accessToken, Contact $contact, array $params = array())
 {
     $baseUrl = Config::get('endpoints.base_url') . sprintf(Config::get('endpoints.contact'), $contact->id);
     $request = parent::createBaseRequest($accessToken, 'PUT', $baseUrl);
     if ($params) {
         $query = $request->getQuery();
         foreach ($params as $name => $value) {
             $query->add($name, $value);
         }
     }
     $stream = Stream::factory(json_encode($contact));
     $request->setBody($stream);
     try {
         $response = parent::getClient()->send($request);
     } catch (ClientException $e) {
         throw parent::convertException($e);
     }
     return Contact::create($response->json());
 }