42 $subscriptionPage =
"", $doi = FALSE, $doiPlus = FALSE, $doiMailingKey =
"")
44 $queryParameters = array(
45 'sync_mode' => $syncMode->getCode(),
47 'subscription_page' => $subscriptionPage,
48 'doi' => ($doi == TRUE) ?
"true" :
"false",
49 'doiplus' => ($doiPlus == TRUE) ?
"true" :
"false"
53 if (!empty($doiMailingKey)) {
54 $queryParameters[
'doimailing'] = $doiMailingKey;
57 if (isset($contact->permission)) {
58 $queryParameters[
'permission'] = $contact->permission->getCode();
62 $contactToSend =
new com_maileon_api_contacts_Contact(null, $contact->email, null, $contact->external_id, null, $contact->standard_fields, $contact->custom_fields);
64 return $this->
post(
"contacts/" . $contactToSend->email, $contactToSend->toXMLString(), $queryParameters);
98 $subscriptionPage =
"", $doi = FALSE, $doiPlus = FALSE, $doiMailingKey =
"")
100 $queryParameters = array(
101 'permission' => $contact->permission->getCode(),
102 'sync_mode' => $syncMode->getCode(),
104 'subscription_page' => $subscriptionPage,
105 'doi' => ($doi == TRUE) ?
"true" :
"false",
106 'doiplus' => ($doiPlus == TRUE) ?
"true" :
"false",
107 'doimailing' => $doiMailingKey
111 $contactToSend =
new com_maileon_api_contacts_Contact(null, $contact->email, null, $contact->external_id, null, $contact->standard_fields, $contact->custom_fields);
113 return $this->
post(
"contacts/externalid/" . $contactToSend->external_id, $contactToSend->toXMLString(), $queryParameters);
139 function getContact($contactId, $checksum, $standard_fields = array(), $custom_fields = array(), $ignoreChecksum =
false)
141 $queryParameters = array(
143 'checksum' => $checksum,
144 'standard_field' => $standard_fields,
145 'ignore_checksum' => $ignoreChecksum ?
"true" :
"false"
148 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
150 return $this->
get(
'contacts/contact', $queryParameters);
164 return $this->
get(
'contacts/count');
184 function getContacts($page_index = 1, $page_size = 100, $standard_fields = array(), $custom_fields = array())
186 $queryParameters = array(
187 'page_index' => $page_index,
188 'page_size' => $page_size,
189 'standard_field' => $standard_fields
192 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
194 return $this->
get(
'contacts', $queryParameters);
214 $queryParameters = array(
215 'standard_field' => $standard_fields
218 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
220 return $this->
get(
'contacts/email/' . utf8_encode($email), $queryParameters);
240 $queryParameters = array(
241 'standard_field' => $standard_fields
244 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
246 return $this->
get(
'contacts/emails/' . utf8_encode($email), $queryParameters);
263 $queryParameters = array(
264 'standard_field' => $standard_fields
267 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
269 return $this->
get(
'contacts/externalid/' . utf8_encode($externalId), $queryParameters);
284 function getContactsByFilterId($filterId, $page_index = 1, $page_size = 100, $standard_fields = array(), $custom_fields = array())
286 $queryParameters = array(
287 'page_index' => $page_index,
288 'page_size' => $page_size,
289 'standard_field' => $standard_fields
291 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
292 return $this->
get(
'contacts/filter/' . utf8_encode($filterId), $queryParameters);
307 return $this->
get(
'contacts/filter/' . utf8_encode($filterId) .
'/count');
322 return $this->
get(
'contacts/filter/' . utf8_encode($filterId) .
'/count/active');
347 function updateContact($contact, $checksum, $src = null, $subscriptionPage = null, $triggerDoi = FALSE, $doiMailingKey = null, $ignoreChecksum =
false)
349 $queryParameters = array(
350 'id' => $contact->id,
351 'checksum' => $checksum,
352 'triggerdoi' => ($triggerDoi == TRUE) ?
"true" :
"false",
353 'ignore_checksum' => $ignoreChecksum ?
"true" :
"false"
356 if (isset($contact->permission)) $queryParameters[
'permission'] = $contact->permission->getCode();
357 if (isset($src)) $queryParameters[
'src'] = $src;
358 if (isset($subscriptionPage)) $queryParameters[
'page_key'] = $subscriptionPage;
359 if (isset($doiMailingKey)) $queryParameters[
'doimailing'] = $doiMailingKey;
362 $contactToSend =
new com_maileon_api_contacts_Contact(null, $contact->email, null, $contact->external_id, null, $contact->standard_fields, $contact->custom_fields);
364 return $this->
put(
"contacts/contact", $contactToSend->toXMLString(), $queryParameters);
396 function synchronizeContacts($contacts, $permission = null, $syncMode = null, $useExternalId =
false, $ignoreInvalidContacts =
false, $reimportUnsubscribedContacts =
true, $overridePermission =
true, $updateOnly =
false)
398 $queryParameters = array(
399 'permission' => ($permission == null) ? 1 : $permission->getCode(),
400 'sync_mode' => ($syncMode == null) ? 2 : $syncMode->getCode(),
401 'use_external_id' => ($useExternalId == TRUE) ?
"true" :
"false",
402 'ignore_invalid_contacts' => ($ignoreInvalidContacts == TRUE) ?
"true" :
"false",
403 'reimport_unsubscribed_contacts' => ($reimportUnsubscribedContacts == TRUE) ?
"true" :
"false",
404 'override_permission' => ($overridePermission == TRUE) ?
"true" :
"false",
405 'update_only' => ($updateOnly == TRUE) ?
"true" :
"false"
409 foreach ($contacts as $contact) {
410 $cleanedContact =
new com_maileon_api_contacts_Contact(null, $contact->email, null, $contact->external_id, null, $contact->standard_fields, $contact->custom_fields);
411 $cleanedContacts->addContact($cleanedContact);
414 return $this->
post(
"contacts", $cleanedContacts->toXMLString(), $queryParameters);
432 $queryParameters = array();
433 if (!empty($mailingId)) {
434 $queryParameters[
'mailingId'] = $mailingId;
437 if (!empty($reasons)) {
438 if (is_array($reasons)) {
439 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
441 $queryParameters[
'reason'] = urlencode($reasons);
445 $encodedEmail = utf8_encode($email);
446 return $this->
delete(
"contacts/${encodedEmail}/unsubscribe", $queryParameters);
466 $queryParameters = array();
467 $queryParameters[
'id'] = $id;
468 if (!empty($checksum)) {
469 $queryParameters[
'checksum'] = $checksum;
471 if ($ignore_checksum===
true) $queryParameters[
'ignore_checksum'] =
"true";
473 if (!empty($reasons)) {
474 if (is_array($reasons)) {
475 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
477 $queryParameters[
'reason'] = urlencode($reasons);
481 return $this->
put(
"contacts/contact/unsubscribe/reasons", null, $queryParameters);
499 $queryParameters = array(
503 if (!empty($mailingId)) {
504 $queryParameters[
'mailingId'] = $mailingId;
506 if (!empty($reasons)) {
507 if (is_array($reasons)) {
508 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
510 $queryParameters[
'reason'] = urlencode($reasons);
514 return $this->
delete(
"contacts/contact/unsubscribe", $queryParameters);
532 $queryParameters = array();
533 if (!empty($mailingId)) {
534 $queryParameters[
'mailingId'] = $mailingId;
537 if (!empty($reasons)) {
538 if (is_array($reasons)) {
539 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
541 $queryParameters[
'reason'] = urlencode($reasons);
545 $encodedExternalId = utf8_encode($externalId);
546 return $this->
delete(
"contacts/externalid/${encodedExternalId}/unsubscribe", $queryParameters);
561 $queryParameters = array();
562 $queryParameters = $this->appendArrayFields($queryParameters,
"nlaccountid", $nlAccountIds);
564 $encodedExternalId = utf8_encode($externalId);
565 return $this->
delete(
"contacts/externalid/${encodedExternalId}/unsubscribe", $queryParameters);
589 function getBlockedContacts($standardFields = array(), $customFields = array(), $pageIndex = 1, $pageSize = 1000)
591 $queryParameters = array(
592 'standard_field' => $standardFields,
593 'page_index' => $pageIndex,
594 'page_size' => $pageSize
597 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $customFields);
599 return $this->
get(
'contacts/blocked', $queryParameters);
615 $queryParameters = array(
'id' => $id);
616 return $this->
delete(
"contacts/contact", $queryParameters);
632 return $this->
delete(
"contacts/" . utf8_encode($email));
648 return $this->
delete(
"contacts/externalid/" . utf8_encode($externalId));
662 return $this->
delete(
"contacts");
680 $queryParameters = array(
'type' => $type);
681 $encodedName = urlencode(mb_convert_encoding($name,
"UTF-8"));
682 return $this->
post(
"contacts/fields/custom/${encodedName}",
"", $queryParameters);
696 return $this->
get(
'contacts/fields/custom');
714 $encodedOldName = urlencode(mb_convert_encoding($oldName,
"UTF-8"));
715 $encodedNewName = urlencode(mb_convert_encoding($newName,
"UTF-8"));
716 return $this->
put(
"contacts/fields/custom/${encodedOldName}/${encodedNewName}");
732 $encodedName = urlencode(mb_convert_encoding($name,
"UTF-8"));
733 return $this->
delete(
"contacts/fields/custom/{$encodedName}");
748 $encodedName = urlencode(mb_convert_encoding($name,
"UTF-8"));
749 return $this->
delete(
"contacts/fields/standard/{$encodedName}/values");
764 $encodedName = urlencode(mb_convert_encoding($name,
"UTF-8"));
765 return $this->
delete(
"contacts/fields/custom/{$encodedName}/values");
post($resourcePath, $payload="", $queryParameters=array(), $mimeType= 'application/vnd.maileon.api+xml', $deserializationType=null)
put($resourcePath, $payload="", $queryParameters=array(), $mimeType= 'application/vnd.maileon.api+xml', $deserializationType=null)