+/**
+ * We currently retrieve all custom fields or none at this level so if we know the entity
+ * && it can take custom fields & there is the string 'custom' in their return request we get them all, they are filtered on the way out
+ * @todo filter so only required fields are queried
+ *
+ * @param $params
+ * @param string $entity - entity name in CamelCase
+ *
+ * @return bool
+ */
+function _civicrm_api3_custom_fields_are_required($entity, $params) {
+ if (!array_key_exists($entity, CRM_Core_BAO_CustomQuery::$extendsMap)) {
+ return FALSE;
+ }
+ $options = _civicrm_api3_get_options_from_params($params);
+ //we check for possibility of 'custom' => 1 as well as specific custom fields
+ $returnString = implode('', $options['return']) . implode('', array_keys($options['return']));
+ if(stristr($returnString, 'custom')) {
+ return TRUE;
+ }
+}