Return an explicit error if reload fail

This commit is contained in:
Jeremy Benoist 2016-11-20 16:25:13 +01:00
parent 70584b42aa
commit 56da73969a
No known key found for this signature in database
GPG key ID: BCA73962457ACC3C
2 changed files with 8 additions and 7 deletions

View file

@ -287,7 +287,7 @@ class EntryRestController extends WallabagRestController
/** /**
* Reload an entry. * Reload an entry.
* An empty response with HTTP Status 304 will be send if we weren't able to update the content (because it hasn't changed or we got an error). * A response with HTTP Status 400 will be return if we weren't able to update the content (because it hasn't changed or we got an error).
* *
* @ApiDoc( * @ApiDoc(
* requirements={ * requirements={
@ -302,9 +302,6 @@ class EntryRestController extends WallabagRestController
$this->validateAuthentication(); $this->validateAuthentication();
$this->validateUserAccess($entry->getUser()->getId()); $this->validateUserAccess($entry->getUser()->getId());
// put default title in case of fetching content failed
$entry->setTitle('No title found');
try { try {
$entry = $this->get('wallabag_core.content_proxy')->updateEntry($entry, $entry->getUrl()); $entry = $this->get('wallabag_core.content_proxy')->updateEntry($entry, $entry->getUrl());
} catch (\Exception $e) { } catch (\Exception $e) {
@ -313,12 +310,12 @@ class EntryRestController extends WallabagRestController
'entry' => $entry, 'entry' => $entry,
]); ]);
return new JsonResponse([], 304); return new JsonResponse(['error' => 'Error while trying to fetch content'], 400);
} }
// if refreshing entry failed, don't save it // if refreshing entry failed, don't save it
if ($this->getParameter('wallabag_core.fetching_error_message') === $entry->getContent()) { if ($this->getParameter('wallabag_core.fetching_error_message') === $entry->getContent()) {
return new JsonResponse([], 304); return new JsonResponse(['error' => 'Error while trying to extract content'], 400);
} }
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();

View file

@ -690,7 +690,11 @@ class EntryRestControllerTest extends WallabagApiTestCase
} }
$this->client->request('PATCH', '/api/entries/'.$entry->getId().'/reload.json'); $this->client->request('PATCH', '/api/entries/'.$entry->getId().'/reload.json');
$this->assertEquals(304, $this->client->getResponse()->getStatusCode()); $this->assertEquals(400, $this->client->getResponse()->getStatusCode());
$this->assertContains('Error while trying to extract content', $this->client->getResponse()->getContent());
$this->assertEquals('application/json', $this->client->getResponse()->headers->get('Content-Type'));
} }
public function testReloadEntry() public function testReloadEntry()