<?php /** @license MIT * Copyright 2017 J. King, Dustin Wilson et al. * See LICENSE and AUTHORS files for details */ declare(strict_types=1); namespace JKingWeb\Arsse\REST\NextCloudNews; use JKingWeb\Arsse\REST\Response; class Versions implements \JKingWeb\Arsse\REST\Handler { public function __construct() { } public function dispatch(\JKingWeb\Arsse\REST\Request $req): Response { if (!preg_match("<^/?$>", $req->path)) { // if the request path is an empty string or just a slash, the client is probably trying a version we don't support return new Response(404); } elseif ($req->method=="OPTIONS") { // if the request method is OPTIONS, respond accordingly return new Response(204, "", "", ["Allow: HEAD,GET"]); } elseif ($req->method != "GET") { // if a method other than GET was used, this is an error return new Response(405, "", "", ["Allow: HEAD,GET"]); } else { // otherwise return the supported versions $out = [ 'apiLevels' => [ 'v1-2', ] ]; return new Response(200, $out); } } }