INFRA-132 - Misc
[civicrm-core.git] / api / v3 / Mailing.php
index 4f28386615ee9d332b940064f1c48004ff32e10d..ed73b8a1ed26e3f8478102d78e81c7a24d080858 100755 (executable)
@@ -1,8 +1,7 @@
 <?php
-
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.5                                                |
+ | CiviCRM version 4.6                                                |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
@@ -24,7 +23,7 @@
  | GNU Affero General Public License or the licensing of CiviCRM,     |
  | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
  +--------------------------------------------------------------------+
-*/
+ */
 
 /**
  *
  *
  */
 
-/**
- * Files required for this package
- */
-
 /**
  * Handle a create event.
  *
  * @param array $params
- * @param array $ids
- *
  * @return array API Success Array
+ *    API Success Array
+ * @throws \API_Exception
+ * @throws \Civi\API\Exception\UnauthorizedException
  */
-function civicrm_api3_mailing_create($params, $ids = array()) {
+function civicrm_api3_mailing_create($params) {
   if (CRM_Mailing_Info::workflowEnabled()) {
     if (!CRM_Core_Permission::check('create mailings')) {
       throw new \Civi\API\Exception\UnauthorizedException("This system uses advanced CiviMail workflows which require additional permissions");
@@ -68,6 +64,11 @@ function civicrm_api3_mailing_create($params, $ids = array()) {
   return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params);
 }
 
+/**
+ * @param array $params
+ * @return array
+ * @throws \API_Exception
+ */
 function civicrm_api3_mailing_get_token($params) {
   if (!array_key_exists("usage", $params)) {
     throw new API_Exception('Mandatory keys missing from params array: entity');
@@ -75,15 +76,17 @@ function civicrm_api3_mailing_get_token($params) {
 
   $tokens = CRM_Core_SelectValues::contactTokens();
   switch ($params['usage']) {
-    case 'Mailing' :
+    case 'Mailing':
       $tokens = array_merge(CRM_Core_SelectValues::mailingTokens(), $tokens);
       break;
-    case 'ScheduleEventReminder' :
+
+    case 'ScheduleEventReminder':
       $tokens = array_merge(CRM_Core_SelectValues::activityTokens(), $tokens);
       $tokens = array_merge(CRM_Core_SelectValues::eventTokens(), $tokens);
       $tokens = array_merge(CRM_Core_SelectValues::membershipTokens(), $tokens);
       break;
-    case 'ManageEventScheduleReminder' :
+
+    case 'ManageEventScheduleReminder':
       $tokens = array_merge(CRM_Core_SelectValues::eventTokens(), $tokens);
       break;
   }
@@ -95,7 +98,8 @@ function civicrm_api3_mailing_get_token($params) {
  * Adjust Metadata for Create action
  *
  * The metadata is used for setting defaults, documentation & validation
- * @param array $params array or parameters determined by getfields
+ * @param array $params
+ *   Array or parameters determined by getfields.
  */
 function _civicrm_api3_mailing_create_spec(&$params) {
   $params['name']['api.required'] = 1;
@@ -110,11 +114,11 @@ function _civicrm_api3_mailing_create_spec(&$params) {
  * Handle a delete event.
  *
  * @param array $params
- * @param array $ids
  *
- * @return array API Success Array
+ * @return array
+ *   API Success Array
  */
-function civicrm_api3_mailing_delete($params, $ids = array()) {
+function civicrm_api3_mailing_delete($params) {
   return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params);
 }
 
@@ -128,6 +132,9 @@ function civicrm_api3_mailing_get($params) {
   return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params);
 }
 
+/**
+ * @param array $spec
+ */
 function _civicrm_api3_mailing_submit_spec(&$spec) {
   $mailingFields = CRM_Mailing_DAO_Mailing::fields();
   $spec['id'] = $mailingFields['id'];
@@ -199,7 +206,7 @@ function civicrm_api3_mailing_event_bounce($params) {
     return civicrm_api3_create_success($params);
   }
   else {
-    throw new API_Exception(ts('Queue event could not be found'),'no_queue_event
+    throw new API_Exception(ts('Queue event could not be found'), 'no_queue_event
       ');
   }
 }
@@ -208,7 +215,8 @@ function civicrm_api3_mailing_event_bounce($params) {
  * Adjust Metadata for bounce_spec action
  *
  * The metadata is used for setting defaults, documentation & validation
- * @param array $params array or parameters determined by getfields
+ * @param array $params
+ *   Array or parameters determined by getfields.
  */
 function _civicrm_api3_mailing_event_bounce_spec(&$params) {
   $params['job_id']['api.required'] = 1;
@@ -235,7 +243,8 @@ function civicrm_api3_mailing_event_confirm($params) {
 
 /**
  * @deprecated api notice
- * @return array of deprecated actions
+ * @return array
+ *   Array of deprecated actions
  */
 function _civicrm_api3_mailing_deprecation() {
   return array('event_confirm' => 'Mailing api "event_confirm" action is deprecated. Use the mailing_event_confirm api instead.');
@@ -272,7 +281,8 @@ function civicrm_api3_mailing_event_reply($params) {
  * Adjust Metadata for event_reply action
  *
  * The metadata is used for setting defaults, documentation & validation
- * @param array $params array or parameters determined by getfields
+ * @param array $params
+ *   Array or parameters determined by getfields.
  */
 function _civicrm_api3_mailing_event_reply_spec(&$params) {
   $params['job_id']['api.required'] = 1;
@@ -313,7 +323,8 @@ function civicrm_api3_mailing_event_forward($params) {
  * Adjust Metadata for event_forward action
  *
  * The metadata is used for setting defaults, documentation & validation
- * @param array $params array or parameters determined by getfields
+ * @param array $params
+ *   Array or parameters determined by getfields.
  */
 function _civicrm_api3_mailing_event_forward_spec(&$params) {
   $params['job_id']['api.required'] = 1;
@@ -377,6 +388,11 @@ function civicrm_api3_mailing_event_open($params) {
   return civicrm_api3_create_success($params);
 }
 
+/**
+ * @param array $params
+ * @return array
+ * @throws \API_Exception
+ */
 function civicrm_api3_mailing_preview($params) {
   civicrm_api3_verify_mandatory($params,
     'CRM_Mailing_DAO_Mailing',
@@ -421,14 +437,23 @@ function civicrm_api3_mailing_preview($params) {
   ));
 }
 
+/**
+ * @param array $spec
+ */
 function _civicrm_api3_mailing_send_test_spec(&$spec) {
   $spec['test_group']['title'] = 'Test Group ID';
   $spec['test_email']['title'] = 'Test Email Address';
 }
 
+/**
+ * @param array $params
+ * @return array
+ * @throws \API_Exception
+ * @throws \CiviCRM_API3_Exception
+ */
 function civicrm_api3_mailing_send_test($params) {
   if (!array_key_exists('test_group', $params) && !array_key_exists('test_email', $params)) {
-    throw new API_Exception("Mandatory key(s) missing from params array: test_group and/or test_email field are required" );
+    throw new API_Exception("Mandatory key(s) missing from params array: test_group and/or test_email field are required");
   }
   civicrm_api3_verify_mandatory($params,
     'CRM_Mailing_DAO_MailingJob',
@@ -473,18 +498,20 @@ function civicrm_api3_mailing_send_test($params) {
       if (!$contactId) {
         //create new contact.
         $contact   = civicrm_api3('Contact', 'create',
-          array('contact_type' => 'Individual',
+          array(
+            'contact_type' => 'Individual',
             'email' => $email,
-            'api.Email.get' => array('return' => 'id')
+            'api.Email.get' => array('return' => 'id'),
           )
         );
         $contactId = $contact['id'];
         $emailId   = $contact['values'][$contactId]['api.Email.get']['id'];
       }
       civicrm_api3('MailingEventQueue', 'create',
-        array('job_id' => $job['id'],
+        array(
+          'job_id' => $job['id'],
           'email_id' => $emailId,
-          'contact_id' => $contactId
+          'contact_id' => $contactId,
         )
       );
     }
@@ -511,13 +538,19 @@ function civicrm_api3_mailing_send_test($params) {
  * Adjust Metadata for send_mail action
  *
  * The metadata is used for setting defaults, documentation & validation
- * @param array $params array or parameters determined by getfields
+ * @param array $params
+ *   Array or parameters determined by getfields.
  */
 function _civicrm_api3_mailing_stats_spec(&$params) {
   $params['date']['api.default'] = 'now';
   $params['date']['title'] = 'Date';
 }
 
+/**
+ * @param array $params
+ * @return array
+ * @throws \API_Exception
+ */
 function civicrm_api3_mailing_stats($params) {
   civicrm_api3_verify_mandatory($params,
     'CRM_Mailing_DAO_MailingJob',
@@ -540,27 +573,31 @@ function civicrm_api3_mailing_stats($params) {
     switch ($detail) {
       case 'Delivered':
         $stats[$params['mailing_id']] += array(
-          $detail =>  CRM_Mailing_Event_BAO_Delivered::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, $params['date'])
+          $detail => CRM_Mailing_Event_BAO_Delivered::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, $params['date']),
         );
         break;
+
       case 'Bounces':
         $stats[$params['mailing_id']] += array(
-          $detail =>  CRM_Mailing_Event_BAO_Bounce::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, $params['date'])
+          $detail => CRM_Mailing_Event_BAO_Bounce::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, $params['date']),
         );
         break;
+
       case 'Unsubscribers':
         $stats[$params['mailing_id']] += array(
-          $detail =>  CRM_Mailing_Event_BAO_Unsubscribe::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, NULL, $params['date'])
+          $detail => CRM_Mailing_Event_BAO_Unsubscribe::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, NULL, $params['date']),
         );
         break;
+
       case 'Unique Clicks':
         $stats[$params['mailing_id']] += array(
-          $detail =>  CRM_Mailing_Event_BAO_TrackableURLOpen::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, NULL, $params['date'])
+          $detail => CRM_Mailing_Event_BAO_TrackableURLOpen::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, NULL, $params['date']),
         );
         break;
+
       case 'Opened':
         $stats[$params['mailing_id']] += array(
-          $detail =>  CRM_Mailing_Event_BAO_Opened::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, $params['date'])
+          $detail => CRM_Mailing_Event_BAO_Opened::getTotalCount($params['mailing_id'], $params['job_id'], FALSE, $params['date']),
         );
         break;
     }
@@ -572,6 +609,8 @@ function civicrm_api3_mailing_stats($params) {
  * Fix the reset dates on the email record based on when a mail was last delivered
  * We only consider mailings that were completed and finished in the last 3 to 7 days
  * Both the min and max days can be set via the params
+ * @param array $params
+ * @return array
  */
 function civicrm_api3_mailing_update_email_resetdate($params) {
   CRM_Mailing_Event_BAO_Delivered::updateEmailResetDate(