Try to unify API responses

This commit is contained in:
2024-07-21 16:10:02 +02:00
parent a01515aa9c
commit b76c434216
5 changed files with 59 additions and 38 deletions

View File

@ -8,9 +8,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
$name = substr($_SERVER['PATH_INFO'], 1);
if (str_contains($name, "..") || str_contains($name, "/")) {
header('Status: 403');
header('Content-Type: text/plain');
header('Content-Length: 17');
exit("403 Forbidden :(\n");
header('Content-Type: text/plain; charset=UTF-8');
header('Content-Length: 14');
exit("403 Forbidden\n");
}
$upload = fopen("php://input", "r");
@ -19,16 +19,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
fclose($fp);
fclose($upload);
header('Status: 200');
header('Content-Type: text/plain');
header('Content-Length: 10');
exit("200 OK :)\n");
header('Status: 201');
header('Content-Type: text/plain; charset=UTF-8');
header('Content-Length: 12');
exit("201 Created\n");
} else if ($_SERVER['REQUEST_METHOD'] !== 'GET' && $_SERVER['REQUEST_METHOD'] !== 'HEAD') {
header('Status: 405');
header('Allow: GET, HEAD, PUT');
header('Content-Type: text/plain');
header('Content-Length: 26');
exit("405 Method Not Allowed :(\n");
header('Content-Type: text/plain; charset=UTF-8');
header('Content-Length: 23');
exit("405 Method Not Allowed\n");
}
global $getProd;
@ -95,7 +95,7 @@ $entities = array_filter($entities, function($e) {
$format = get_fmt();
if ($format === 'json') {
header('Content-Type: application/json; charset=UTF-8');
echo "{\"status\": \"success\", \"data\": [\n";
echo "{\"data\": [\n";
$first = true;
foreach ($entities as $name => [$prod, $vers, $url, $size, $mtime, $ctime, $mod, $cre]) {
if (!$first) echo ",\n";
@ -112,6 +112,7 @@ if ($format === 'json') {
if (isset($getProd) && isset($getVers) && sizeof($entities) === 1) {
header('Status: 303');
header('Location: ' . $entities[array_key_first($entities)][2]);
header('Content-Length: 0');
exit();
}
header('Content-Type: application/xhtml+xml; charset=UTF-8');