Browse Source

Implement NCN API v1-2 server version reporting

- Fixes #29
- Yes, it's trivial, but now it's done!
microsub
J. King 7 years ago
parent
commit
74ae1106a4
  1. 25
      lib/REST/NextCloudNews/V1_2.php
  2. 14
      tests/REST/NextCloudNews/TestNCNV1_2.php

25
lib/REST/NextCloudNews/V1_2.php

@ -131,4 +131,29 @@ class V1_2 extends \JKingWeb\Arsse\REST\AbstractHandler {
}
return new Response(204);
}
protected function versionGET(array $url, array $data): Response {
// if URL is more than '/version' this is an error
if(sizeof($url)) return new Response(404);
return new Response(200, ['version' => \JKingWeb\Arsse\VERSION]);
}
protected function versionPOST(array $url, array $data): Response {
// if URL is more than '/version' this is an error
if(sizeof($url)) return new Response(404);
return new Response(405, "", "", ['Allow: GET']);
}
protected function versionPUT(array $url, array $data): Response {
// if URL is more than '/version' this is an error
if(sizeof($url)) return new Response(404);
return new Response(405, "", "", ['Allow: GET']);
}
protected function versionDELETE(array $url, array $data): Response {
// if URL is more than '/version' this is an error
if(sizeof($url)) return new Response(404);
return new Response(405, "", "", ['Allow: GET']);
}
}

14
tests/REST/NextCloudNews/TestNCNV1_2.php

@ -38,8 +38,17 @@ class TestNCNV1_2 extends \PHPUnit\Framework\TestCase {
['PUT', "/folders/1/invalid"],
['POST', "/folders/1/invalid"],
['DELETE', "/folders/1/invalid"],
['GET', "/version/invalid"],
['PUT', "/version/invalid"],
['POST', "/version/invalid"],
['DELETE', "/version/invalid"],
],
405 => [
'GET' => [
['PUT', "/version"],
['POST', "/version"],
['DELETE', "/version"],
],
'GET, POST' => [
['PUT', "/folders"],
['DELETE', "/folders"],
@ -153,4 +162,9 @@ class TestNCNV1_2 extends \PHPUnit\Framework\TestCase {
$exp = new Response(404);
$this->assertEquals($exp, $this->h->dispatch(new Request("PUT", "/folders/3", json_encode($in[0]), 'application/json')));
}
function testRetrieveServerVersion() {
$exp = new Response(200, ['version' => \JKingWeb\Arsse\VERSION]);
$this->assertEquals($exp, $this->h->dispatch(new Request("GET", "/version")));
}
}
Loading…
Cancel
Save