Browse Source

Implement feed deletion

rpm
J. King 3 years ago
parent
commit
9197a8d08b
  1. 11
      lib/REST/Miniflux/V1.php
  2. 12
      tests/cases/REST/Miniflux/TestV1.php

11
lib/REST/Miniflux/V1.php

@ -785,7 +785,6 @@ class V1 extends \JKingWeb\Arsse\REST\AbstractHandler {
}
try {
Arsse::$db->subscriptionPropertiesSet(Arsse::$user->id, (int) $path[1], $in);
return $this->getFeed($path);
} catch (ExceptionInput $e) {
switch ($e->getCode()) {
case 10231:
@ -797,6 +796,16 @@ class V1 extends \JKingWeb\Arsse\REST\AbstractHandler {
return new ErrorResponse("404", 404);
}
}
return $this->getFeed($path);
}
protected function deleteFeed(array $path): ResponseInterface {
try {
Arsse::$db->subscriptionRemove(Arsse::$user->id, (int) $path[1]);
return new EmptyResponse(204);
} catch (ExceptionInput $e) {
return new ErrorResponse("404", 404);
}
}
public static function tokenGenerate(string $user, string $label): string {

12
tests/cases/REST/Miniflux/TestV1.php

@ -712,4 +712,16 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest {
[['title' => "Ook!", 'crawler' => true], ['title' => "Ook!", 'scrape' => true], true, $success]
];
}
public function testDeleteAFeed(): void {
\Phake::when(Arsse::$db)->subscriptionRemove->thenReturn(true);
$this->assertMessage(new EmptyResponse(204), $this->req("DELETE", "/feeds/2112"));
\Phake::verify(Arsse::$db)->subscriptionRemove(Arsse::$user->id, 2112);
}
public function testDeleteAMissingFeed(): void {
\Phake::when(Arsse::$db)->subscriptionRemove->thenThrow(new ExceptionInput("subjectMissing"));
$this->assertMessage(new ErrorResponse("404", 404), $this->req("DELETE", "/feeds/2112"));
\Phake::verify(Arsse::$db)->subscriptionRemove(Arsse::$user->id, 2112);
}
}

Loading…
Cancel
Save