xaostube/public/grid.php

53 lines
1.5 KiB
PHP

<?php
$db = new SQLite3('xaos.sqlite3');
$exists = $db->querySingle("SELECT TRUE FROM pragma_table_info('links')");
if (!$exists) {
$db->exec(<<<EOD
CREATE TABLE links(
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
url TEXT NOT NULL,
audio BOOLEAN NOT NULL CHECK (audio IN (0, 1)),
video BOOLEAN NOT NULL CHECK (video IN (0, 1))
);
EOD);
}
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$data = json_decode(file_get_contents('php://input'));
$url = $data->url;
$audio = $data->audio;
$video = $data->video;
if ($url !== null && $audio !== null && $video !== null) {
$stmt = $db->prepare('INSERT INTO links (url, audio, video) VALUES (:url, :audio, :video);');
$stmt->bindValue(':url', $url);
$stmt->bindValue(':audio', $audio);
$stmt->bindValue(':video', $video);
$result = $stmt->execute();
if (!$result) {
http_response_code(500);
die();
}
$result = $db->querySingle("SELECT last_insert_rowid()");
print_r($result);
} else {
http_response_code(400);
die();
}
} else {
$result = [];
$db_result = $db->query("SELECT * FROM links;");
while ($row = $db_result->fetchArray(SQLITE3_ASSOC)) {
$row["audio"] = $row["audio"] == 1;
$row["video"] = $row["video"] == 1;
array_push($result, $row);
}
header('Content-type: application/json; charset=utf-8');
echo json_encode($result);
}