Merge remote-tracking branch 'upstream/4.5' into 4.5-master-2015-03-09-21-44-34
[civicrm-core.git] / api / v3 / MailingContact.php
index d2f6313a23b3fd29a2e2d8f5493c1fdc68fd9216..4f1c563a4671a99089db0b91bc020dd3d16ec010 100644 (file)
  */
 
 /**
- * File for the CiviCRM APIv3 contact and mailing functions
+ * This api exposes CiviCRM contact and mailing.
  *
  * @package CiviCRM_APIv3
- * @subpackage API_MailingContact
- *
- * @copyright CiviCRM LLC (c) 2004-2014
- * @version $Id$
- *
  */
 
 /**
- * Get all the mailings and details that a contact was involved with
- *
- * @param array    $params input parameters
- *                    - key: contact_id, value: int - required
- *                    - key: type, value: Delivered | Bounced - optional, defaults to Delivered
- *                    - Future extensions will include: Opened, Clicked, Forwarded
+ * Get all the mailings and details that a contact was involved with.
  *
- * @return array API result
- * @static void
- * @access public
- * @example CRM/Mailing/BAO/Mailing.php
+ * @param array $params
+ *   Input parameters - see _spec for details (returned by getfields)
  *
+ * @return array
+ *   API result
  */
 function civicrm_api3_mailing_contact_get($params) {
   return civicrm_api3_create_success(_civicrm_api3_mailing_contact_getresults($params, FALSE));
 }
+
 /**
- * This is a wrapper for the functions that return the results from the 'quasi-entity'
- * mailing contact
+ * This is a wrapper for the functions that return the results from the 'quasi-entity' mailing contact.
+ *
  * @param array $params
- * @param Boolean $count
+ * @param bool $count
+ *
  * @throws Exception
  */
-function _civicrm_api3_mailing_contact_getresults($params, $count){
-  if(empty($params['type'])){
-    //ie. because the api is an anomoly & passing in id is not valid
+function _civicrm_api3_mailing_contact_getresults($params, $count) {
+  if (empty($params['type'])) {
+    //ie. because the api is an anomaly & passing in id is not valid
     throw new Exception('This api call does not accept api as a parameter');
   }
-  $options  = _civicrm_api3_get_options_from_params($params, TRUE,'contribution','get');
+  $options  = _civicrm_api3_get_options_from_params($params, TRUE, 'contribution', 'get');
   $fnName = '_civicrm_api3_mailing_contact_get_' . strtolower($params['type']);
   return $fnName(
       $params['contact_id'],
@@ -75,27 +67,30 @@ function _civicrm_api3_mailing_contact_getresults($params, $count){
       $count
   );
 }
+
 /**
- * Adjust Metadata for Get action
+ * Adjust Metadata for Get action.
  *
- * @param array $params array or parameters determined by getfields
+ * @param array $params
+ *   Array of parameters determined by getfields.
  */
 function _civicrm_api3_mailing_contact_get_spec(&$params) {
   $params['contact_id']['api.required'] = 1;
   $params['contact_id']['title'] = 'Contact ID';
   $params['type'] = array(
     'api.default' => 'Delivered',
-    'title' => 'Type',// doesn't really explain the field - but not sure I understand it to explain it better
+    'title' => 'Type', // doesn't really explain the field - but not sure I understand it to explain it better
     'type' => CRM_Utils_Type::T_STRING,
     'options' => array(
       'Delivered' => 'Delivered',
       'Bounced' => 'Bounced',
-    )
+    ),
   );
 }
 
 /**
- * @param $type
+ * Helper function for mailing contact queries.
+ *
  * @param int $contactID
  * @param $offset
  * @param $limit
@@ -108,7 +103,6 @@ function _civicrm_api3_mailing_contact_get_spec(&$params) {
  * @return array
  */
 function _civicrm_api3_mailing_contact_query(
-  $type,
   $contactID,
   $offset,
   $limit,
@@ -134,15 +128,10 @@ GROUP BY   m.id
 ";
 
     $qParams = array(
-      1 => array($contactID, 'Integer')
+      1 => array($contactID, 'Integer'),
     );
     $dao = CRM_Core_DAO::executeQuery($sql, $qParams);
 
-    $params = array(
-      'type'   => $type,
-      'contact_id' => $contactID
-    );
-
     $results = $dao->N;
   }
   else {
@@ -194,7 +183,7 @@ LIMIT %2, %3
     $qParams = array(
       1 => array($contactID, 'Integer'),
       2 => array($offset, 'Integer'),
-      3 => array($limit, 'Integer')
+      3 => array($limit, 'Integer'),
     );
     $dao = CRM_Core_DAO::executeQuery($sql, $qParams);
 
@@ -210,6 +199,8 @@ LIMIT %2, %3
 }
 
 /**
+ * Get delivered mailing contacts.
+ *
  * @param int $contactID
  * @param $offset
  * @param $limit
@@ -237,7 +228,6 @@ AND        meb.id IS NULL
 ";
 
   return _civicrm_api3_mailing_contact_query(
-    'Delivered',
     $contactID,
     $offset,
     $limit,
@@ -250,6 +240,8 @@ AND        meb.id IS NULL
 }
 
 /**
+ * Get bounced mailing contact records.
+ *
  * @param int $contactID
  * @param $offset
  * @param $limit
@@ -270,7 +262,6 @@ INNER JOIN civicrm_mailing_event_bounce meb ON meb.event_queue_id = meq.id
 ";
 
   return _civicrm_api3_mailing_contact_query(
-    'Bounced',
     $contactID,
     $offset,
     $limit,
@@ -283,18 +274,13 @@ INNER JOIN civicrm_mailing_event_bounce meb ON meb.event_queue_id = meq.id
 }
 
 /**
- * Get count of all the mailings that a contact was involved with
- *
- * @param array    $params input parameters
- *                    - key: contact_id, value: int - required
- *                    - key: type, value: Delivered | Bounced - optional, defaults to Delivered
- *                    - Future extensions will include: Opened, Clicked, Forwarded
+ * Get count of all the mailings that a contact was involved with.
  *
- * @return array API result
- * @static void
- * @access public
- * @example CRM/Mailing/BAO/Mailing.php
+ * @param array $params
+ *   Input parameters per getfields
  *
+ * @return array
+ *   API result
  */
 function civicrm_api3_mailing_contact_getcount($params) {
   return _civicrm_api3_mailing_contact_getresults($params, TRUE);