53 lines
1.5 KiB
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);
|
||
|
}
|