Make the type parameter of pkgreq_by_pkgbase() optional

This simplifies the code a bit, improves maintainability and reduces the
number of SQL queries when deleting a package.

Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Lukas Fleischer 2015-05-21 17:08:58 +02:00
parent c3614c4f09
commit 01bfae82ce
2 changed files with 7 additions and 7 deletions

View file

@ -513,10 +513,7 @@ function pkgbase_delete ($base_ids, $merge_base_id, $via, $grant=false) {
if (!$action) {
$username = username_from_sid($_COOKIE['AURSID']);
foreach ($base_ids as $base_id) {
$pkgreq_ids = array_merge(
pkgreq_by_pkgbase($base_id, 'deletion'),
pkgreq_by_pkgbase($base_id, 'merge'),
pkgreq_by_pkgbase($base_id, 'orphan'));
$pkgreq_ids = array_merge(pkgreq_by_pkgbase($base_id));
foreach ($pkgreq_ids as $pkgreq_id) {
pkgreq_close(intval($pkgreq_id), 'accepted',
'The user ' . $username .

View file

@ -49,15 +49,18 @@ function pkgreq_list($offset, $limit) {
*
* @return array List of package request IDs
*/
function pkgreq_by_pkgbase($baseid, $type) {
function pkgreq_by_pkgbase($baseid, $type=false) {
$dbh = DB::connect();
$q = "SELECT PackageRequests.ID ";
$q.= "FROM PackageRequests INNER JOIN RequestTypes ON ";
$q.= "RequestTypes.ID = PackageRequests.ReqTypeID ";
$q.= "WHERE PackageRequests.Status = 0 ";
$q.= "AND PackageRequests.PackageBaseID = " . intval($baseid) . " ";
$q.= "AND RequestTypes.Name = " . $dbh->quote($type);
$q.= "AND PackageRequests.PackageBaseID = " . intval($baseid);
if ($type) {
$q .= " AND RequestTypes.Name = " . $dbh->quote($type);
}
return $dbh->query($q)->fetchAll(PDO::FETCH_COLUMN, 0);
}