diff options
Diffstat (limited to 'www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Utils/ActionUtil.php')
-rw-r--r-- | www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Utils/ActionUtil.php | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Utils/ActionUtil.php b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Utils/ActionUtil.php new file mode 100644 index 00000000..628bc6fa --- /dev/null +++ b/www/crm/wp-content/plugins/civicrm/civicrm/ext/api4/Civi/Api4/Utils/ActionUtil.php @@ -0,0 +1,27 @@ +<?php + +namespace Civi\Api4\Utils; + +class ActionUtil { + + /** + * @param $entityName + * @param $actionName + * @return \Civi\Api4\Generic\AbstractAction + * @throws \Civi\API\Exception\NotImplementedException + */ + public static function getAction($entityName, $actionName) { + // For custom pseudo-entities + if (strpos($entityName, 'Custom_') === 0) { + return \Civi\Api4\CustomValue::$actionName(substr($entityName, 7)); + } + else { + $callable = ["\\Civi\\Api4\\$entityName", $actionName]; + if (!is_callable($callable)) { + throw new \Civi\API\Exception\NotImplementedException("API ($entityName, $actionName) does not exist (join the API team and implement it!)"); + } + return call_user_func($callable); + } + } + +} |