2017-03-19 02:30:36 +00:00
|
|
|
<?php
|
|
|
|
declare(strict_types=1);
|
2017-03-28 04:12:12 +00:00
|
|
|
namespace JKingWeb\Arsse\REST\NextCloudNews;
|
2017-08-29 14:50:31 +00:00
|
|
|
|
2017-03-28 04:12:12 +00:00
|
|
|
use JKingWeb\Arsse\REST\Response;
|
2017-03-19 02:30:36 +00:00
|
|
|
|
2017-07-07 12:13:03 +00:00
|
|
|
class Versions implements \JKingWeb\Arsse\REST\Handler {
|
2017-08-29 14:50:31 +00:00
|
|
|
public function __construct() {
|
2017-04-07 01:41:21 +00:00
|
|
|
}
|
2017-03-19 02:30:36 +00:00
|
|
|
|
2017-08-29 14:50:31 +00:00
|
|
|
public function dispatch(\JKingWeb\Arsse\REST\Request $req): Response {
|
2017-04-07 01:41:21 +00:00
|
|
|
// if a method other than GET was used, this is an error
|
2017-08-29 14:50:31 +00:00
|
|
|
if ($req->method != "GET") {
|
2017-09-30 16:52:05 +00:00
|
|
|
return new Response(405, "", "", ["Allow: GET"]);
|
2017-04-07 01:41:21 +00:00
|
|
|
}
|
2017-08-29 14:50:31 +00:00
|
|
|
if (preg_match("<^/?$>", $req->path)) {
|
2017-04-07 01:41:21 +00:00
|
|
|
// if the request path is an empty string or just a slash, return the supported versions
|
|
|
|
$out = [
|
|
|
|
'apiLevels' => [
|
|
|
|
'v1-2',
|
|
|
|
]
|
|
|
|
];
|
|
|
|
return new Response(200, $out);
|
|
|
|
} else {
|
|
|
|
// if the URL path was anything else, the client is probably trying a version we don't support
|
2017-05-20 03:52:26 +00:00
|
|
|
return new Response(501);
|
2017-04-07 01:41:21 +00:00
|
|
|
}
|
|
|
|
}
|
2017-08-29 14:50:31 +00:00
|
|
|
}
|