Skip to content

Commit 64474e6

Browse files
committed
fixup! feat(dav): introduce paginate with custom headers
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
1 parent e35b1ab commit 64474e6

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

apps/dav/lib/Paginate/PaginateCache.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public function __construct(
2727
/**
2828
* @param string $uri
2929
* @param \Iterator $items
30-
* @return array{'token': int, 'count': int}
30+
* @return array{'token': string, 'count': int}
3131
*/
3232
public function store(string $uri, \Iterator $items): array {
3333
$token = $this->random->generate(32);
@@ -45,7 +45,7 @@ public function store(string $uri, \Iterator $items): array {
4545

4646
$count = 0;
4747
foreach ($items as $item) {
48-
$value = json_encode($item);
48+
$value = serialize($item);
4949
$query->setParameter('index', $count, IQueryBuilder::PARAM_INT);
5050
$query->setParameter('value', $value);
5151
$query->executeStatement();
@@ -72,8 +72,10 @@ public function get(string $url, string $token, int $offset, int $count) {
7272
->andWhere($query->expr()->lt('result_index', $query->createNamedParameter($offset + $count, IQueryBuilder::PARAM_INT)));
7373

7474
$result = $query->executeQuery();
75+
ini_set('html_errors', 0);
7576
return array_map(function (string $entry) {
76-
return json_decode($entry, true);
77+
var_dump($entry, unserialize($entry));
78+
return unserialize($entry);
7779
}, $result->fetchAll(\PDO::FETCH_COLUMN));
7880
}
7981

apps/dav/lib/Paginate/PaginatePlugin.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
use Sabre\HTTP\ResponseInterface;
1616

1717
class PaginatePlugin extends ServerPlugin {
18-
public const PAGINATE_HEADER = 'x-nc-paginate';
19-
public const PAGINATE_TOTAL_HEADER = 'x-nc-paginate-total';
20-
public const PAGINATE_TOKEN_HEADER = 'x-nc-paginate-token';
21-
public const PAGINATE_OFFSET_HEADER = 'x-nc-paginate-offset';
22-
public const PAGINATE_COUNT_HEADER = 'x-nc-paginate-count';
18+
public const PAGINATE_HEADER = 'X-NC-Paginate';
19+
public const PAGINATE_TOTAL_HEADER = 'X-NC-Paginate-Total';
20+
public const PAGINATE_TOKEN_HEADER = 'X-NC-Paginate-Token';
21+
public const PAGINATE_OFFSET_HEADER = 'X-NC-Paginate-Offset';
22+
public const PAGINATE_COUNT_HEADER = 'X-NC-Paginate-Count';
2323

2424
/** @var Server */
2525
private $server;
@@ -86,6 +86,7 @@ public function onMethod(RequestInterface $request, ResponseInterface $response)
8686

8787
$data = $this->server->generateMultiStatus($items, $minimal);
8888
$response->setBody($data);
89+
8990
return false;
9091
}
9192
}

0 commit comments

Comments
 (0)