<?php
+/*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 4.6 |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM. |
+ | |
+ | CiviCRM is free software; you can copy, modify, and distribute it |
+ | under the terms of the GNU Affero General Public License |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
+ | |
+ | CiviCRM is distributed in the hope that it will be useful, but |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
+ | See the GNU Affero General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU Affero General Public |
+ | License and the CiviCRM Licensing Exception along |
+ | with this program; if not, contact CiviCRM LLC |
+ | at info[AT]civicrm[DOT]org. If you have questions about the |
+ | GNU Affero General Public License or the licensing of CiviCRM, |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing |
+ +--------------------------------------------------------------------+
+ */
/**
- * Get information about fields for a given api request. Getfields information
- * is used for documentation, validation, default setting
+ * @package CiviCRM_APIv3
+ */
+
+/**
+ * Get information about fields for a given api request.
+ *
+ * Getfields information is used for documentation, validation, default setting
* We first query the scheme using the $dao->fields function & then augment
* that information by calling the _spec functions that apply to the relevant function
* Note that we use 'unique' field names as described in the xml/schema files
*
* @param array $apiRequest
* Api request as an array. Keys are.
- * - entity: string
- * - action: string
- * - version: string
- * - function: callback (mixed)
- * - params: array, varies
+ * - entity: string
+ * - action: string
+ * - version: string
+ * - function: callback (mixed)
+ * - params: array, varies
+ *
* @return array
- * API success object
+ * API success object
*/
function civicrm_api3_generic_getfields($apiRequest) {
static $results = array();
CRM_Utils_PseudoConstant::flushConstant($apiRequest['params']['fieldname']);
}
if (!empty($apiRequest['params']['option_group_id'])) {
- $optionGroupName = civicrm_api('option_group', 'getvalue', array('version' => 3, 'id' => $apiRequest['params']['option_group_id'], 'return' => 'name'));
+ $optionGroupName = civicrm_api('option_group', 'getvalue', array(
+ 'version' => 3,
+ 'id' => $apiRequest['params']['option_group_id'],
+ 'return' => 'name',
+ ));
if (is_string($optionGroupName)) {
CRM_Utils_PseudoConstant::flushConstant(_civicrm_api_get_camel_name($optionGroupName));
}
}
}
- $entity = _civicrm_api_get_camel_name($apiRequest['entity']);
- $lcase_entity = _civicrm_api_get_entity_name_from_camel($entity);
+ $entity = $apiRequest['entity'];
+ $lowercase_entity = _civicrm_api_get_entity_name_from_camel($entity);
$subentity = CRM_Utils_Array::value('contact_type', $apiRequest['params']);
- $action = strtolower(CRM_Utils_Array::value('action', $apiRequest['params']));
+ $action = CRM_Utils_Array::value('action', $apiRequest['params']);
$sequential = empty($apiRequest['params']) ? 0 : 1;
$apiOptions = CRM_Utils_Array::value('options', $apiRequest['params'], array());
if (!$action || $action == 'getvalue' || $action == 'getcount') {
if (empty($metadata['id'])) {
// if id is not set we will set it eg. 'id' from 'case_id', case_id will be an alias
if (!empty($metadata[strtolower($apiRequest['entity']) . '_id'])) {
- $metadata['id'] = $metadata[$lcase_entity . '_id'];
- unset($metadata[$lcase_entity . '_id']);
- $metadata['id']['api.aliases'] = array($lcase_entity . '_id');
+ $metadata['id'] = $metadata[$lowercase_entity . '_id'];
+ unset($metadata[$lowercase_entity . '_id']);
+ $metadata['id']['api.aliases'] = array($lowercase_entity . '_id');
}
}
else {
// (note) or setting for all api where fields is returning 'id' & we want to accept 'note_id' @ the api layer
// nb we don't officially accept note_id anyway - rationale here is more about centralising a now-tested
// inconsistency
- $metadata['id']['api.aliases'] = array($lcase_entity . '_id');
+ $metadata['id']['api.aliases'] = array($lowercase_entity . '_id');
}
break;
'title' => $entity . ' ID',
'name' => 'id',
'api.required' => 1,
- 'api.aliases' => array($lcase_entity . '_id'),
+ 'api.aliases' => array($lowercase_entity . '_id'),
'type' => CRM_Utils_Type::T_INT,
));
break;
$fieldsToResolve = (array) CRM_Utils_Array::value('get_options', $apiOptions, array());
foreach ($metadata as $fieldname => $fieldSpec) {
+ // Ensure 'name' is set
+ if (!isset($fieldSpec['name'])) {
+ $metadata[$fieldname]['name'] = $fieldname;
+ }
_civicrm_api3_generic_get_metadata_options($metadata, $apiRequest, $fieldname, $fieldSpec, $fieldsToResolve);
}
}
/**
- * API return function to reformat results as count
+ * API return function to reformat results as count.
*
* @param array $apiRequest
* Api request as an array. Keys are.
*
* @throws API_Exception
- * @return integer
- * count of results
+ * @return int
+ * count of results
*/
function civicrm_api3_generic_getcount($apiRequest) {
$apiRequest['params']['options']['is_count'] = TRUE;
}
/**
- * API return function to reformat results as single result
+ * API return function to reformat results as single result.
*
* @param array $apiRequest
* Api request as an array. Keys are.
*
- * @return integer
- * count of results
+ * @return int
+ * count of results
*/
function civicrm_api3_generic_getsingle($apiRequest) {
- // so the first entity is always result['values'][0]
+ // So the first entity is always result['values'][0].
$apiRequest['params']['sequential'] = 1;
$result = civicrm_api($apiRequest['entity'], 'get', $apiRequest['params']);
if ($result['is_error'] !== 0) {
}
/**
- * API return function to reformat results as single value
+ * API return function to reformat results as single value.
*
* @param array $apiRequest
* Api request as an array. Keys are.
*
- * @return integer
- * count of results
+ * @return int
+ * count of results
*/
function civicrm_api3_generic_getvalue($apiRequest) {
$apiRequest['params']['sequential'] = 1;
}
/**
+ * Get count of contact references.
+ *
* @param array $params
*/
function _civicrm_api3_generic_getrefcount_spec(&$params) {
}
/**
- * API to determine if a record is in-use
+ * API to determine if a record is in-use.
*
* @param array $apiRequest
* Api request as an array.
*
* @throws API_Exception
* @return array
- * API result (int 0 or 1)
+ * API result (int 0 or 1)
*/
function civicrm_api3_generic_getrefcount($apiRequest) {
$entityToClassMap = CRM_Core_DAO_AllCoreTables::daoToClass();
}
/**
- * API wrapper for replace function
+ * API wrapper for replace function.
*
* @param array $apiRequest
* Api request as an array. Keys are.
*
- * @return integer
- * count of results
+ * @return int
+ * count of results
*/
function civicrm_api3_generic_replace($apiRequest) {
return _civicrm_api3_generic_replace($apiRequest['entity'], $apiRequest['params']);
}
/**
- * API wrapper for getoptions function
+ * API wrapper for getoptions function.
*
* @param array $apiRequest
* Api request as an array.
*
* @return array
- * of results
+ * Array of results
*/
function civicrm_api3_generic_getoptions($apiRequest) {
- // Resolve aliases
+ // Resolve aliases.
$fieldName = _civicrm_api3_api_resolve_alias($apiRequest['entity'], $apiRequest['params']['field']);
if (!$fieldName) {
return civicrm_api3_create_error("The field '{$apiRequest['params']['field']}' doesn't exist.");
}
/**
+ * Get metadata.
+ *
* Function fills the 'options' array on the metadata returned by getfields if
* 1) the param option 'get_options' is defined - e.g. $params['options']['get_options'] => array('custom_1)
* (this is passed in as the $fieldsToResolve array)
*
* @param array $metadata
* The array of metadata that will form the result of the getfields function.
- * @param $apiRequest
+ * @param array $apiRequest
* @param string $fieldname
* Field currently being processed.
* @param array $fieldSpec