diff options
Diffstat (limited to 'frontend')
-rw-r--r-- | frontend/.htaccess | 1 | ||||
-rw-r--r-- | frontend/Dockerfile | 3 | ||||
-rw-r--r-- | frontend/conf.php | 9 | ||||
-rw-r--r-- | frontend/list.php | 41 |
4 files changed, 54 insertions, 0 deletions
diff --git a/frontend/.htaccess b/frontend/.htaccess new file mode 100644 index 0000000..e1d2560 --- /dev/null +++ b/frontend/.htaccess @@ -0,0 +1 @@ +Options +Indexes diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..e9e468b --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,3 @@ +FROM php:apache + +RUN docker-php-ext-install mysqli diff --git a/frontend/conf.php b/frontend/conf.php new file mode 100644 index 0000000..f47a7cb --- /dev/null +++ b/frontend/conf.php @@ -0,0 +1,9 @@ +<?php +define('DB_HOST', 'db'); +define('DB_NAME', 'clpmdb'); +define('DB_USER', 'clpm'); +define('DB_PASS', 'clpm'); + +$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); +if (mysqli_connect_errno()) + die('Connection to the database failed.'); diff --git a/frontend/list.php b/frontend/list.php new file mode 100644 index 0000000..24340a8 --- /dev/null +++ b/frontend/list.php @@ -0,0 +1,41 @@ +<?php +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, + '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) + ]; + } + unset($repo[$i]['id']); +} + +print(json_encode($repo)); |