/**
  * 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);
     }
 }
Example #2
0
 /**
  * @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()));
 }