X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FGeneric%2FGetactions.php;h=e3520c13a273ae4fa9fe44437f50c8ce044f87e6;hb=3838662faff56daff7b4fbbd25c60a4b7242a484;hp=71b722c43cae2ff003ee5c9464f9cd84908dbe36;hpb=00ca8648aca9637f2678082ce09f98772533a8cc;p=civicrm-core.git diff --git a/api/v3/Generic/Getactions.php b/api/v3/Generic/Getactions.php index 71b722c43c..e3520c13a2 100644 --- a/api/v3/Generic/Getactions.php +++ b/api/v3/Generic/Getactions.php @@ -26,26 +26,15 @@ +--------------------------------------------------------------------+ */ -function civicrm_api3_generic_getActions($params) { - civicrm_api3_verify_mandatory($params, NULL, array('entity')); - $r = civicrm_api('Entity', 'Get', array('version' => 3)); - $entity = CRM_Utils_String::munge($params['entity']); - if (!in_array($entity, $r['values'])) { - return civicrm_api3_create_error("Entity " . $entity . " invalid. Use api.entity.get to have the list", array('entity' => $r['values'])); - } - _civicrm_api_loadEntity($entity); - - $functions = get_defined_functions(); - $actions = array(); - $prefix = 'civicrm_api3_' . strtolower($entity) . '_'; - $prefixGeneric = 'civicrm_api3_generic_'; - foreach ($functions['user'] as $fct) { - if (strpos($fct, $prefix) === 0) { - $actions[] = substr($fct, strlen($prefix)); - } - elseif (strpos($fct, $prefixGeneric) === 0) { - $actions[] = substr($fct, strlen($prefixGeneric)); - } - } +/** + * @param $apiRequest + * + * @return array + * @throws API_Exception + */ +function civicrm_api3_generic_getActions($apiRequest) { + civicrm_api3_verify_mandatory($apiRequest, NULL, array('entity')); + $mfp = \Civi\Core\Container::singleton()->get('magic_function_provider'); + $actions = $mfp->getActionNames($apiRequest['version'], $apiRequest['entity']); return civicrm_api3_create_success($actions); }