42 $subscriptionPage =
"", $doi = FALSE, $doiPlus = FALSE, $doiMailingKey =
"")
44 $queryParameters = array(
45 'sync_mode' => $syncMode->getCode(),
46 'src' => urlencode($src),
47 'subscription_page' => urlencode($subscriptionPage),
48 'doi' => ($doi == TRUE) ?
"true" :
"false",
49 'doiplus' => ($doiPlus == TRUE) ?
"true" :
"false"
54 $doiMailingKey = trim($doiMailingKey);
55 if (!empty($doiMailingKey)) {
56 $queryParameters[
'doimailing'] = $doiMailingKey;
59 if (isset($contact->permission)) {
60 $queryParameters[
'permission'] = $contact->permission->getCode();
64 $contactToSend =
new com_maileon_api_contacts_Contact(null, $contact->email, null, $contact->external_id, null, $contact->standard_fields, $contact->custom_fields);
66 return $this->
post(
"contacts/email/" . $contactToSend->email, $contactToSend->toXMLString(), $queryParameters);
100 $subscriptionPage =
"", $doi = FALSE, $doiPlus = FALSE, $doiMailingKey =
"")
102 $queryParameters = array(
103 'permission' => $contact->permission->getCode(),
104 'sync_mode' => $syncMode->getCode(),
105 'src' => urlencode($src),
106 'subscription_page' => urlencode($subscriptionPage),
107 'doi' => ($doi == TRUE) ?
"true" :
"false",
108 'doiplus' => ($doiPlus == TRUE) ?
"true" :
"false",
109 'doimailing' => trim($doiMailingKey)
113 $contactToSend =
new com_maileon_api_contacts_Contact(null, $contact->email, null, $contact->external_id, null, $contact->standard_fields, $contact->custom_fields);
115 return $this->
post(
"contacts/externalid/" . $contactToSend->external_id, $contactToSend->toXMLString(), $queryParameters);
141 function getContact($contactId, $checksum, $standard_fields = array(), $custom_fields = array(), $ignoreChecksum =
false)
143 $queryParameters = array(
145 'checksum' => $checksum,
146 'standard_field' => $standard_fields,
147 'ignore_checksum' => $ignoreChecksum ?
"true" :
"false"
150 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
152 return $this->
get(
'contacts/contact', $queryParameters);
166 return $this->
get(
'contacts/count');
186 function getContacts($page_index = 1, $page_size = 100, $standard_fields = array(), $custom_fields = array())
188 $queryParameters = array(
189 'page_index' => $page_index,
190 'page_size' => $page_size,
191 'standard_field' => $standard_fields
194 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
196 return $this->
get(
'contacts', $queryParameters);
216 $queryParameters = array(
217 'standard_field' => $standard_fields
220 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
222 return $this->
get(
'contacts/email/' . utf8_encode($email), $queryParameters);
242 $queryParameters = array(
243 'standard_field' => $standard_fields
246 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
248 return $this->
get(
'contacts/emails/' . utf8_encode($email), $queryParameters);
265 $queryParameters = array(
266 'standard_field' => $standard_fields
269 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
271 return $this->
get(
'contacts/externalid/' . utf8_encode($externalId), $queryParameters);
286 function getContactsByFilterId($filterId, $page_index = 1, $page_size = 100, $standard_fields = array(), $custom_fields = array())
288 $queryParameters = array(
289 'page_index' => $page_index,
290 'page_size' => $page_size,
291 'standard_field' => $standard_fields
293 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $custom_fields);
294 return $this->
get(
'contacts/filter/' . utf8_encode($filterId), $queryParameters);
309 return $this->
get(
'contacts/filter/' . utf8_encode($filterId) .
'/count');
324 return $this->
get(
'contacts/filter/' . utf8_encode($filterId) .
'/count/active');
349 function updateContact($contact, $checksum =
"", $src = null, $subscriptionPage = null, $triggerDoi = FALSE, $doiMailingKey = null, $ignoreChecksum =
false)
351 $queryParameters = array(
352 'id' => $contact->id,
353 'checksum' => $checksum,
354 'triggerdoi' => ($triggerDoi == TRUE) ?
"true" :
"false",
355 'ignore_checksum' => $ignoreChecksum ?
"true" :
"false"
358 if (isset($contact->permission)) $queryParameters[
'permission'] = $contact->permission->getCode();
359 if (isset($src)) $queryParameters[
'src'] = $src;
360 if (isset($subscriptionPage)) $queryParameters[
'page_key'] = $subscriptionPage;
361 $doiMailingKey = trim($doiMailingKey);
362 if (!empty($doiMailingKey)) $queryParameters[
'doimailing'] = $doiMailingKey;
365 $contactToSend =
new com_maileon_api_contacts_Contact(null, $contact->email, null, $contact->external_id, null, $contact->standard_fields, $contact->custom_fields);
367 return $this->
put(
"contacts/contact", $contactToSend->toXMLString(), $queryParameters);
401 function synchronizeContacts($contacts, $permission = null, $syncMode = null, $useExternalId =
false, $ignoreInvalidContacts =
false, $reimportUnsubscribedContacts =
true, $overridePermission =
true, $updateOnly =
false, $preferMaileonId =
false)
403 $queryParameters = array(
404 'permission' => ($permission == null) ? 1 : $permission->getCode(),
405 'sync_mode' => ($syncMode == null) ? 2 : $syncMode->getCode(),
406 'use_external_id' => ($useExternalId == TRUE) ?
"true" :
"false",
407 'ignore_invalid_contacts' => ($ignoreInvalidContacts == TRUE) ?
"true" :
"false",
408 'reimport_unsubscribed_contacts' => ($reimportUnsubscribedContacts == TRUE) ?
"true" :
"false",
409 'override_permission' => ($overridePermission == TRUE) ?
"true" :
"false",
410 'update_only' => ($updateOnly == TRUE) ?
"true" :
"false",
411 'prefer_maileon_id' => ($preferMaileonId == TRUE) ?
"true" :
"false"
415 foreach ($contacts as $contact) {
416 $cleanedContact =
new com_maileon_api_contacts_Contact($contact->id, $contact->email, null, $contact->external_id, null, $contact->standard_fields, $contact->custom_fields);
417 $cleanedContacts->addContact($cleanedContact);
420 return $this->
post(
"contacts", $cleanedContacts->toXMLString(), $queryParameters);
439 $queryParameters = array();
440 if (!empty($mailingId)) {
441 $queryParameters[
'mailingId'] = $mailingId;
444 if (!empty($reasons)) {
445 if (is_array($reasons)) {
446 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
448 $queryParameters[
'reason'] = urlencode($reasons);
452 if (!empty($nlAccountIds)) {
453 if (is_array($nlAccountIds)) {
454 $queryParameters = $this->appendArrayFields($queryParameters,
'nlaccountid', $nlAccountIds);
456 $queryParameters[
'nlaccountid'] = urlencode($nlAccountIds);
460 $queryParameters = $this->appendArrayFields($queryParameters,
"nlaccountid", $nlAccountIds);
462 $encodedEmail = utf8_encode($email);
463 return $this->
delete(
"contacts/email/${encodedEmail}/unsubscribe", $queryParameters);
483 $queryParameters = array();
484 $queryParameters[
'id'] = $id;
485 if (!empty($checksum)) {
486 $queryParameters[
'checksum'] = $checksum;
488 if ($ignore_checksum===
true) $queryParameters[
'ignore_checksum'] =
"true";
490 if (!empty($reasons)) {
491 if (is_array($reasons)) {
492 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
494 $queryParameters[
'reason'] = urlencode($reasons);
498 return $this->
put(
"contacts/contact/unsubscribe/reasons", null, $queryParameters);
516 $queryParameters = array(
520 if (!empty($mailingId)) {
521 $queryParameters[
'mailingId'] = $mailingId;
523 if (!empty($reasons)) {
524 if (is_array($reasons)) {
525 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
527 $queryParameters[
'reason'] = urlencode($reasons);
531 return $this->
delete(
"contacts/contact/unsubscribe", $queryParameters);
549 $queryParameters = array();
550 if (!empty($mailingId)) {
551 $queryParameters[
'mailingId'] = $mailingId;
554 if (!empty($reasons)) {
555 if (is_array($reasons)) {
556 $queryParameters = $this->appendArrayFields($queryParameters,
'reason', $reasons);
558 $queryParameters[
'reason'] = urlencode($reasons);
562 $encodedExternalId = utf8_encode($externalId);
563 return $this->
delete(
"contacts/externalid/${encodedExternalId}/unsubscribe", $queryParameters);
578 $queryParameters = array();
579 $queryParameters = $this->appendArrayFields($queryParameters,
"nlaccountid", $nlAccountIds);
581 $encodedExternalId = utf8_encode($externalId);
582 return $this->
delete(
"contacts/externalid/${encodedExternalId}/unsubscribe", $queryParameters);
606 function getBlockedContacts($standardFields = array(), $customFields = array(), $pageIndex = 1, $pageSize = 1000)
608 $queryParameters = array(
609 'standard_field' => $standardFields,
610 'page_index' => $pageIndex,
611 'page_size' => $pageSize
614 $queryParameters = $this->appendArrayFields($queryParameters,
'custom_field', $customFields);
616 return $this->
get(
'contacts/blocked', $queryParameters);
632 $queryParameters = array(
'id' => $id);
633 return $this->
delete(
"contacts/contact", $queryParameters);
649 return $this->
delete(
"contacts/email/" . utf8_encode($email));
665 return $this->
delete(
"contacts/externalid/" . utf8_encode($externalId));
679 $queryParameters = array(
680 'authorized' => $authorized
682 return $this->
delete(
"contacts", $queryParameters);
700 $queryParameters = array(
'type' => $type);
701 $encodedName = rawurlencode(mb_convert_encoding($name,
"UTF-8"));
702 return $this->
post(
"contacts/fields/custom/${encodedName}",
"", $queryParameters);
716 return $this->
get(
'contacts/fields/custom');
734 $encodedOldName = rawurlencode(mb_convert_encoding($oldName,
"UTF-8"));
735 $encodedNewName = rawurlencode(mb_convert_encoding($newName,
"UTF-8"));
736 return $this->
put(
"contacts/fields/custom/${encodedOldName}/${encodedNewName}");
752 $encodedName = rawurlencode(mb_convert_encoding($name,
"UTF-8"));
753 return $this->
delete(
"contacts/fields/custom/{$encodedName}");
768 $encodedName = urlencode(mb_convert_encoding($name,
"UTF-8"));
769 return $this->
delete(
"contacts/fields/standard/{$encodedName}/values");
784 $encodedName = rawurlencode(mb_convert_encoding($name,
"UTF-8"));
785 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)