summaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'frontend')
-rw-r--r--frontend/.htaccess1
-rw-r--r--frontend/Dockerfile3
-rw-r--r--frontend/conf.php9
-rw-r--r--frontend/list.php41
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));