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(trim($doiMailingKey))) {
54 $queryParameters[
'doimailing'] = trim($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' => trim($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 (!empty(trim($doiMailingKey))) $queryParameters[
'doimailing'] = trim($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);
398 function synchronizeContacts($contacts, $permission = null, $syncMode = null, $useExternalId =
false, $ignoreInvalidContacts =
false, $reimportUnsubscribedContacts =
true, $overridePermission =
true, $updateOnly =
false, $preferMaileonId =
false)
400 $queryParameters = array(
401 'permission' => ($permission == null) ? 1 : $permission->getCode(),
402 'sync_mode' => ($syncMode == null) ? 2 : $syncMode->getCode(),
403 'use_external_id' => ($useExternalId == TRUE) ?
"true" :
"false",
404 'ignore_invalid_contacts' => ($ignoreInvalidContacts == TRUE) ?
"true" :
"false",
405 'reimport_unsubscribed_contacts' => ($reimportUnsubscribedContacts == TRUE) ?
"true" :
"false",
406 'override_permission' => ($overridePermission == TRUE) ?
"true" :
"false",
407 'update_only' => ($updateOnly == TRUE) ?
"true" :
"false",
408 'prefer_maileon_id' => ($preferMaileonId == TRUE) ?
"true" :
"false"
412 foreach ($contacts as $contact) {
413 $cleanedContact =
new com_maileon_api_contacts_Contact($contact->id, $contact->email, null, $contact->external_id, null, $contact->standard_fields, $contact->custom_fields);
414 $cleanedContacts->addContact($cleanedContact);
417 return $this->
post(
"contacts", $cleanedContacts->toXMLString(), $queryParameters);
435 $queryParameters = array();
436 if (!empty($mailingId)) {
437 $queryParameters[
'mailingId'] = $mailingId;
440 if (!empty($reasons)) {
441 if (is_array($reasons)) {
442 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
444 $queryParameters[
'reason'] = urlencode($reasons);
448 $encodedEmail = utf8_encode($email);
449 return $this->
delete(
"contacts/email/${encodedEmail}/unsubscribe", $queryParameters);
469 $queryParameters = array();
470 $queryParameters[
'id'] = $id;
471 if (!empty($checksum)) {
472 $queryParameters[
'checksum'] = $checksum;
474 if ($ignore_checksum===
true) $queryParameters[
'ignore_checksum'] =
"true";
476 if (!empty($reasons)) {
477 if (is_array($reasons)) {
478 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
480 $queryParameters[
'reason'] = urlencode($reasons);
484 return $this->
put(
"contacts/contact/unsubscribe/reasons", null, $queryParameters);
502 $queryParameters = array(
506 if (!empty($mailingId)) {
507 $queryParameters[
'mailingId'] = $mailingId;
509 if (!empty($reasons)) {
510 if (is_array($reasons)) {
511 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
513 $queryParameters[
'reason'] = urlencode($reasons);
517 return $this->
delete(
"contacts/contact/unsubscribe", $queryParameters);
535 $queryParameters = array();
536 if (!empty($mailingId)) {
537 $queryParameters[
'mailingId'] = $mailingId;
540 if (!empty($reasons)) {
541 if (is_array($reasons)) {
542 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
544 $queryParameters[
'reason'] = urlencode($reasons);
548 $encodedExternalId = utf8_encode($externalId);
549 return $this->
delete(
"contacts/externalid/${encodedExternalId}/unsubscribe", $queryParameters);
564 $queryParameters = array();
565 $queryParameters = $this->appendArrayFields($queryParameters,
"nlaccountid", $nlAccountIds);
567 $encodedExternalId = utf8_encode($externalId);
568 return $this->
delete(
"contacts/externalid/${encodedExternalId}/unsubscribe", $queryParameters);
592 function getBlockedContacts($standardFields = array(), $customFields = array(), $pageIndex = 1, $pageSize = 1000)
594 $queryParameters = array(
595 'standard_field' => $standardFields,
596 'page_index' => $pageIndex,
597 'page_size' => $pageSize
600 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $customFields);
602 return $this->
get(
'contacts/blocked', $queryParameters);
618 $queryParameters = array(
'id' => $id);
619 return $this->
delete(
"contacts/contact", $queryParameters);
635 return $this->
delete(
"contacts/email/" . utf8_encode($email));
651 return $this->
delete(
"contacts/externalid/" . utf8_encode($externalId));
665 $queryParameters = array(
666 'authorized' => $authorized
668 return $this->
delete(
"contacts", $queryParameters);
686 $queryParameters = array(
'type' => $type);
687 $encodedName = urlencode(mb_convert_encoding($name,
"UTF-8"));
688 return $this->
post(
"contacts/fields/custom/${encodedName}",
"", $queryParameters);
702 return $this->
get(
'contacts/fields/custom');
720 $encodedOldName = urlencode(mb_convert_encoding($oldName,
"UTF-8"));
721 $encodedNewName = urlencode(mb_convert_encoding($newName,
"UTF-8"));
722 return $this->
put(
"contacts/fields/custom/${encodedOldName}/${encodedNewName}");
738 $encodedName = urlencode(mb_convert_encoding($name,
"UTF-8"));
739 return $this->
delete(
"contacts/fields/custom/{$encodedName}");
754 $encodedName = urlencode(mb_convert_encoding($name,
"UTF-8"));
755 return $this->
delete(
"contacts/fields/standard/{$encodedName}/values");
770 $encodedName = urlencode(mb_convert_encoding($name,
"UTF-8"));
771 return $this->
delete(
"contacts/fields/custom/{$encodedName}/values");
post($resourcePath, $payload="", $queryParameters=array(), $mimeType= 'application/vnd.maileon.api+xml', $deserializationType=null, $contentType=null, $contentLength=null)
put($resourcePath, $payload="", $queryParameters=array(), $mimeType= 'application/vnd.maileon.api+xml', $deserializationType=null)