X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=api%2Fv3%2FExtension.php;h=499bb054f5321505f5a54340f233c5a0f09df9ca;hb=5f53b1c171d164470d6bbf6002841cdd17c55912;hp=2e9d56857f6bd5ee7a43bf345991df5774f079cc;hpb=58a50b22e20f112fdbfc7e50f18353c311ceb1ae;p=civicrm-core.git diff --git a/api/v3/Extension.php b/api/v3/Extension.php index 2e9d56857f..499bb054f5 100644 --- a/api/v3/Extension.php +++ b/api/v3/Extension.php @@ -1,10 +1,7 @@ getManager()->install($keys); - } catch (CRM_Extension_Exception $e) { + } + catch (CRM_Extension_Exception $e) { return civicrm_api3_create_error($e->getMessage()); } return civicrm_api3_create_success(); } +/** + * Upgrade an extension - runs upgrade_N hooks and system.flush + * + * @return array + * API result + * @static + * @access public + * + */ +function civicrm_api3_extension_upgrade() { + CRM_Core_Invoke::rebuildMenuAndCaches(TRUE); + $queue = CRM_Extension_Upgrades::createQueue(); + $runner = new CRM_Queue_Runner(array( + 'title' => 'Extension Upgrades', + 'queue' => $queue, + 'errorMode' => CRM_Queue_Runner::ERROR_ABORT, + )); + + try { + $result = $runner->runAll(); + } + catch (CRM_Extension_Exception $e) { + return civicrm_api3_create_error($e->getMessage()); + } + + if ($result === TRUE) { + return civicrm_api3_create_success(); + } + else { + return $result; + } +} + /** * Enable an extension * - * @param array $params input parameters + * @param array $params + * Input parameters. * - key: string, eg "com.example.myextension" * - keys: mixed; array of string, eg array("com.example.myextension1", "com.example.myextension2") or string with comma-delimited list * using 'keys' should be more performant than making multiple API calls with 'key' * - * @return array API result - * @static void + * @return array + * API result + * @static * @access public * @example ExtensionEnable.php * @@ -95,13 +133,15 @@ function civicrm_api3_extension_enable($params) { /** * Disable an extension * - * @param array $params input parameters + * @param array $params + * Input parameters. * - key: string, eg "com.example.myextension" * - keys: mixed; array of string, eg array("com.example.myextension1", "com.example.myextension2") or string with comma-delimited list * using 'keys' should be more performant than making multiple API calls with 'key' * - * @return array API result - * @static void + * @return array + * API result + * @static * @access public * @example ExtensionDisable.php * @@ -119,14 +159,16 @@ function civicrm_api3_extension_disable($params) { /** * Uninstall an extension * - * @param array $params input parameters + * @param array $params + * Input parameters. * - key: string, eg "com.example.myextension" * - keys: array of string, eg array("com.example.myextension1", "com.example.myextension2") * using 'keys' should be more performant than making multiple API calls with 'key' * - removeFiles: bool, whether to remove source tree; default: FALSE * - * @return array API result - * @static void + * @return array + * API result + * @static * @access public * @example ExtensionUninstall.php * @@ -145,13 +187,15 @@ function civicrm_api3_extension_uninstall($params) { /** * Download and install an extension * - * @param array $params input parameters + * @param array $params + * Input parameters. * - key: string, eg "com.example.myextension" * - url: string eg "http://repo.com/myextension-1.0.zip" * * @throws API_Exception - * @return array API result - * @static void + * @return array + * API result + * @static * @access public * @example ExtensionDownload.php */ @@ -196,12 +240,14 @@ function civicrm_api3_extension_download($params) { /** * Download and install an extension * - * @param array $params input parameters + * @param array $params + * Input parameters. * - local: bool, whether to rescan local filesystem (default: TRUE) * - remote: bool, whether to rescan remote repository (default: TRUE) * - * @return array API result - * @static void + * @return array + * API result + * @static * @access public * @example ExtensionRefresh.php * @@ -230,10 +276,11 @@ function civicrm_api3_extension_refresh($params) { /** * Get a list of available extensions * - * @param $params + * @param array $params * - * @return array API result - * @static void + * @return array + * API result + * @static * @access public * @example ExtensionGet.php */ @@ -245,8 +292,8 @@ function civicrm_api3_extension_get($params) { //try { // $info = (array) $mapper->keyToInfo($key); //} catch (CRM_Extension_Exception $e) { - $info = array(); - $info['key'] = $key; + $info = array(); + $info['key'] = $key; //} $info['status'] = $status; $result[] = $info; @@ -257,22 +304,28 @@ function civicrm_api3_extension_get($params) { /** * Determine the list of extension keys * - * @param array $params API request params with 'key' or 'keys' - * @return array of extension keys + * @param array $params + * API request params with 'key' or 'keys'. + * @return array + * Array of extension keys * @throws API_Exception */ function _civicrm_api3_getKeys($params) { if (array_key_exists('keys', $params) && is_array($params['keys'])) { return $params['keys']; - } elseif (array_key_exists('keys', $params) && is_string($params['keys'])) { + } + elseif (array_key_exists('keys', $params) && is_string($params['keys'])) { if ($params['keys'] == '') { return array(); - } else { + } + else { return explode(API_V3_EXTENSION_DELIMITER, $params['keys']); } - } elseif (array_key_exists('key', $params)) { + } + elseif (array_key_exists('key', $params)) { return array($params['key']); - } else { + } + else { throw new API_Exception('Missing required parameter: key or keys'); } }