summaryrefslogtreecommitdiff
path: root/frontend/list.php
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/list.php')
-rw-r--r--frontend/list.php40
1 files changed, 12 insertions, 28 deletions
diff --git a/frontend/list.php b/frontend/list.php
index 24340a8..39b727a 100644
--- a/frontend/list.php
+++ b/frontend/list.php
@@ -3,39 +3,23 @@ require_once('conf.php');
$repo = [];
-$stmt = $db->prepare(
- 'SELECT `package`.`id`,`package`.`name`,`url`,`desc`,`author`.`name` ' .
- 'FROM `package`,`author` ' .
- 'WHERE `package`.`author_id` = `author`.`id`');
-$stmt->execute();
-$stmt->bind_result($id, $name, $url, $desc, $author);
-while ($stmt->fetch() === true) {
- $repo[] = [
- 'id' => $id,
- 'name' => $name,
- 'author' => $author,
- 'desc' => $desc,
- 'url' => $url,
+foreach (Package::search($_pdo) as $pkg) {
+ $new_pkg = [
+ 'name' => $pkg->name,
+ 'author' => $pkg->getAuthor()->name,
+ 'desc' => $pkg->desc,
+ 'url' => $pkg->url,
'versions' => []
];
-}
-$stmt->close();
-$stmt = $db->prepare(
- 'SELECT `major`,`minor`,`revision`,`depends` ' .
- 'FROM `version` WHERE `package_id`=?');
-$stmt->bind_param('i', $pkg);
-$stmt->bind_result($maj, $min, $rev, $deps);
-for ($i = 0; $i < count($repo); $i++) {
- $pkg = $repo[$i]['id'];
- $stmt->execute();
- while ($stmt->fetch() === true) {
- $repo[$i]['versions'][] = [
- 'version' => [$maj, $min, $rev],
- 'depends' => json_decode($deps)
+ foreach ($pkg->getVersions() as $version) {
+ $new_pkg['version'][] = [
+ 'version' => [$version->major, $version->minor, $version->revision],
+ 'depends' => json_decode($version->depends)
];
}
- unset($repo[$i]['id']);
+
+ $repo[] = $new_pkg;
}
print(json_encode($repo));