id; } } /** * Deletes an existing Email. * * @param array $params * Array per getfields metadata. * * @return array * API result array. * * @throws \API_Exception * @throws \CiviCRM_API3_Exception * @throws \Civi\API\Exception\UnauthorizedException */ function civicrm_api3_email_delete($params) { return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params); } /** * Retrieve one or more emails. * * @param array $params * Array per getfields metadata. * * @return array * api result array */ function civicrm_api3_email_get($params) { return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); } /** * Set default getlist parameters. * * @see _civicrm_api3_generic_getlist_defaults * * @param array $request * * @return array */ function _civicrm_api3_email_getlist_defaults(&$request) { return [ 'description_field' => [ 'email', ], 'params' => [ 'on_hold' => 0, 'contact_id.is_deleted' => 0, 'contact_id.is_deceased' => 0, 'contact_id.do_not_email' => 0, ], // Note that changing this to display name affects query performance. The label field is used // for sorting & mysql will prefer to use the index on the ORDER BY field. So if this is changed // to display name then the filtering will bypass the index. In testing this took around 30 times // as long. 'label_field' => 'contact_id.sort_name', // If no results from sort_name try email. 'search_field' => 'contact_id.sort_name', 'search_field_fallback' => 'email', ]; }