Merge pull request #3096 from aaa2000/fix-api-entries-pagination-with-perpage

Fix API pagination is broken if perPage is custom value
This commit is contained in:
Jérémy Benoist 2017-05-09 09:12:15 +02:00 committed by GitHub
commit 832fbd94c0
2 changed files with 18 additions and 1 deletions

View File

@ -98,12 +98,13 @@ class EntryRestController extends WallabagRestController
$tags = $request->query->get('tags', '');
$since = $request->query->get('since', 0);
/** @var \Pagerfanta\Pagerfanta $pager */
$pager = $this->getDoctrine()
->getRepository('WallabagCoreBundle:Entry')
->findEntries($this->getUser()->getId(), $isArchived, $isStarred, $sort, $order, $since, $tags);
$pager->setCurrentPage($page);
$pager->setMaxPerPage($perPage);
$pager->setCurrentPage($page);
$pagerfantaFactory = new PagerfantaFactory('page', 'perPage');
$paginatedCollection = $pagerfantaFactory->createRepresentation(

View File

@ -156,6 +156,22 @@ class EntryRestControllerTest extends WallabagApiTestCase
$this->assertEquals('application/json', $this->client->getResponse()->headers->get('Content-Type'));
}
public function testGetEntriesOnPageTwo()
{
$this->client->request('GET', '/api/entries', [
'page' => 2,
'perPage' => 2,
]);
$this->assertEquals(200, $this->client->getResponse()->getStatusCode());
$content = json_decode($this->client->getResponse()->getContent(), true);
$this->assertGreaterThanOrEqual(0, $content['total']);
$this->assertEquals(2, $content['page']);
$this->assertEquals(2, $content['limit']);
}
public function testGetStarredEntries()
{
$this->client->request('GET', '/api/entries', ['starred' => 1, 'sort' => 'updated']);