/** * Factory method which creates a FRSRelease from an release id * * @param int The release id * @param array The result array, if it's passed in * @return object FRSRelease object */ function &frsrelease_get_object($release_id, $data = false) { global $FRSRELEASE_OBJ; if (!isset($FRSRELEASE_OBJ['_' . $release_id . '_'])) { if ($data) { //the db result handle was passed in } else { $res = db_query("SELECT * FROM frs_release WHERE\n\t\t\trelease_id='{$release_id}'"); if (db_numrows($res) < 1) { $FRSRELEASE_OBJ['_' . $release_id . '_'] = false; return false; } $data =& db_fetch_array($res); } $FRSPackage =& frspackage_get_object($data['package_id']); $FRSRELEASE_OBJ['_' . $release_id . '_'] = new FRSRelease($FRSPackage, $data['release_id'], $data); } return $FRSRELEASE_OBJ['_' . $release_id . '_']; }
function addFile($session_ser, $group_id, $package_id, $release_id, $name, $base64_contents, $type_id, $processor_id, $release_time) { continue_session($session_ser); $grp =& group_get_object($group_id); if (!$grp || !is_object($grp)) { return new soap_fault('', 'addFile', 'Could Not Get Group', 'Could Not Get Group'); } elseif ($grp->isError()) { return new soap_fault('', 'addFile', $grp->getErrorMessage(), $grp->getErrorMessage()); } $frsp =& frspackage_get_object($package_id); if (!$frsp || !is_object($frsp)) { return new soap_fault('', 'addFile', 'Could Not Get Package', 'Could Not Get Package'); } else { if ($frsp->isError()) { return new soap_fault('', 'addFile', $frsp->getErrorMessage(), $frsp->getErrorMessage()); } } $frsr =& frsrelease_get_object($release_id); if (!$frsr || !is_object($frsr)) { return new soap_fault('', 'addFile', 'Could Not Get Release', 'Could Not Get Release'); } else { if ($frsr->isError()) { return new soap_fault('', 'addFile', $frsr->getErrorMessage(), $frsr->getErrorMessage()); } } $frsf = new FRSFile($frsr); if (!$frsf || !is_object($frsf)) { return new soap_fault('', 'addFile', 'Could Not Get File', 'Could Not Get File'); } $tmpname = tempnam("/tmp", "gforge_cli_frs"); $fh = fopen($tmpname, "wb"); if (!$fh) { return new soap_fault('', 'addFile', 'Could not create temporary file in directory /tmp'); } fwrite($fh, base64_decode($base64_contents)); fclose($fh); if (!$frsf->create($name, $tmpname, $type_id, $processor_id, $release_time)) { @unlink($tmpname); return new soap_fault('', 'addFile', $frsf->getErrorMessage(), $frsf->getErrorMessage()); } else { @unlink($tmpname); return $frsf->getID(); } }