/** * Saves the metadata of a single extension version into the db. * * @since 0.1 * * @param $metaData Array */ public static function saveExtensionMetadata(array $metaData) { // Get the database connections. $dbr = wfGetDB(DB_SLAVE); // Query for existing units with the same name. $unit = $dbr->selectRow('distribution_units', array('unit_id'), array('unit_name' => $metaData['name'])); // Map the unit values to the db schema. $unitValues = array('unit_name' => $metaData['name'], 'unit_url' => $metaData['url'], 'current_version_nr' => $metaData['version'], 'current_desc' => $metaData['description'], 'current_authors' => $metaData['authors']); // Map the version values to the db schema. $versionValues = array('version_status' => DistributionRelease::mapState(DistributionRelease::getDefaultState()), 'version_desc' => $metaData['description'], 'version_authors' => $metaData['authors'], 'version_directory' => $metaData['directory'], 'version_entrypoint' => $metaData['entrypoint'], 'version_release_date' => $metaData['date']); // Insert or update the unit. if ($unit == false) { self::insertUnit($unitValues, $versionValues); } else { self::updateUnit($unit, $unitValues, $versionValues, $dbr); } }
/** * @see ApiBase::getAllowedParams * * @since 0.1 */ public function getAllowedParams() { return array('mediawiki' => array(ApiBase::PARAM_TYPE => 'string'), 'extensions' => array(ApiBase::PARAM_TYPE => 'string'), 'state' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => DistributionRelease::getStates(), ApiBase::PARAM_DFLT => DistributionRelease::getDefaultState())); }
/** * @see includes/api/ApiBase#getAllowedParams() * * @since 0.1 */ public function getAllowedParams() { return array('limit' => array(ApiBase::PARAM_DFLT => 10, ApiBase::PARAM_TYPE => 'limit', ApiBase::PARAM_MIN => 1, ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1, ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2), 'continue' => null, 'filter' => array(ApiBase::PARAM_TYPE => array('term', 'author', 'tag'), ApiBase::PARAM_DFLT => 'term'), 'value' => array(ApiBase::PARAM_TYPE => 'string', ApiBase::PARAM_REQUIRED => true), 'state' => array(ApiBase::PARAM_ISMULTI => true, ApiBase::PARAM_TYPE => DistributionRelease::getStates(), ApiBase::PARAM_DFLT => DistributionRelease::getDefaultState())); }