Skip to content

Commit 197ef51

Browse files
authored
Merge pull request #74 from mezzio/2.5.x-merge-up-into-2.6.x_lbfad0Tt
Merge release 2.5.2 into 2.6.x
2 parents 9e89b55 + 2380d3b commit 197ef51

File tree

5 files changed

+22
-16
lines changed

5 files changed

+22
-16
lines changed

psalm-baseline.xml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -401,21 +401,19 @@
401401
<code>protected function generateSelfLink(</code>
402402
</MethodSignatureMismatch>
403403
<MixedArgument>
404+
<code>$metadata-&gt;getQueryStringArguments()</code>
404405
<code>$metadata-&gt;getQueryStringArguments() ?? []</code>
405406
<code>$metadata-&gt;getRoute()</code>
406-
<code>$queryParams</code>
407-
<code>$queryStringArgs</code>
408407
<code>$route</code>
409408
<code>$routeParams</code>
410409
<code>$routeParams</code>
411410
<code>$routeParams</code>
412411
</MixedArgument>
413412
<MixedArgumentTypeCoercion>
413+
<code>$queryParams</code>
414414
<code>$queryStringArgs</code>
415415
</MixedArgumentTypeCoercion>
416416
<MixedAssignment>
417-
<code>$queryParams</code>
418-
<code>$queryStringArgs</code>
419417
<code>$route</code>
420418
<code>$routeParams</code>
421419
<code>$routeParams</code>

src/ResourceGenerator/RouteBasedCollectionStrategy.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ protected function generateLinkForPage(
6363
$paginationType = $metadata->getPaginationParamType();
6464
$paginationParam = $metadata->getPaginationParam();
6565
$routeParams = $metadata->getRouteParams();
66-
$queryStringArgs = $metadata->getQueryStringArguments();
66+
$queryStringArgs = array_merge($request->getQueryParams(), $metadata->getQueryStringArguments());
6767

6868
$paramsWithPage = [$paginationParam => $page];
6969
$routeParams = $paginationType === Metadata\AbstractCollectionMetadata::TYPE_PLACEHOLDER

test/ResourceGenerator/DoctrinePaginatorTest.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ public function testCreatesLinksForQueryBasedPagination(): void
261261
->willReturn('test');
262262

263263
$this->request
264-
->expects(self::once())
264+
->expects(self::exactly(6))
265265
->method('getQueryParams')
266266
->willReturn(['page_num' => 3]);
267267

@@ -382,8 +382,9 @@ public function testCreatesLinksForRouteBasedPagination(): void
382382
->willReturn('test');
383383

384384
$this->request
385-
->expects(self::never())
386-
->method('getQueryParams');
385+
->expects(self::exactly(5))
386+
->method('getQueryParams')
387+
->willReturn([]);
387388

388389
$this->request
389390
->expects(self::once())

test/ResourceGenerator/RouteBasedCollectionWithRouteParamsTest.php

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ public function testUsesRouteParamsAndQueriesWithPaginatorSpecifiedInMetadataWhe
3636
{
3737
$request = $this->prophesize(ServerRequestInterface::class);
3838
$request->getAttribute('p', 1)->willReturn(3);
39-
$request->getQueryParams()->shouldNotBeCalled();
39+
$request->getQueryParams()->willReturn([
40+
'query_1' => 'value_1',
41+
]);
4042

4143
$linkGenerator = $this->prophesize(LinkGenerator::class);
4244
$this->createLinkGeneratorProphecy($linkGenerator, $request, 'self', 3);
@@ -103,15 +105,15 @@ public function testUsesRouteParamsAndQueriesWithPaginatorSpecifiedInMetadataWhe
103105

104106
$this->assertInstanceOf(HalResource::class, $resource);
105107
$self = $this->getLinkByRel('self', $resource);
106-
$this->assertLink('self', '/api/foo/1234/p/3?sort=ASC', $self);
108+
$this->assertLink('self', '/api/foo/1234/p/3?query_1=value_1&sort=ASC', $self);
107109
$first = $this->getLinkByRel('first', $resource);
108-
$this->assertLink('first', '/api/foo/1234/p/1?sort=ASC', $first);
110+
$this->assertLink('first', '/api/foo/1234/p/1?query_1=value_1&sort=ASC', $first);
109111
$prev = $this->getLinkByRel('prev', $resource);
110-
$this->assertLink('prev', '/api/foo/1234/p/2?sort=ASC', $prev);
112+
$this->assertLink('prev', '/api/foo/1234/p/2?query_1=value_1&sort=ASC', $prev);
111113
$next = $this->getLinkByRel('next', $resource);
112-
$this->assertLink('next', '/api/foo/1234/p/4?sort=ASC', $next);
114+
$this->assertLink('next', '/api/foo/1234/p/4?query_1=value_1&sort=ASC', $next);
113115
$last = $this->getLinkByRel('last', $resource);
114-
$this->assertLink('last', '/api/foo/1234/p/5?sort=ASC', $last);
116+
$this->assertLink('last', '/api/foo/1234/p/5?query_1=value_1&sort=ASC', $last);
115117
}
116118

117119
public function testUsesRouteParamsAndQueriesSpecifiedInMetadataWhenGeneratingLinkHref(): void
@@ -209,8 +211,11 @@ private function createLinkGeneratorProphecy($linkGenerator, $request, string $r
209211
&& $params['foo_id'] === 1234
210212
&& $params['p'] === $page;
211213
}),
212-
['sort' => 'ASC']
213-
)->willReturn(new Link($rel, sprintf('/api/foo/1234/p/%d?sort=ASC', $page)));
214+
[
215+
'query_1' => 'value_1',
216+
'sort' => 'ASC',
217+
]
218+
)->willReturn(new Link($rel, sprintf('/api/foo/1234/p/%d?query_1=value_1&sort=ASC', $page)));
214219
}
215220

216221
/**

test/ResourceGeneratorTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,8 @@ public function testGeneratorAcceptsOnePageWhenCollectionHasNoEmbedded(): void
646646
$this->metadataMap->has(TestAsset\FooBar::class)->willReturn(true);
647647
$this->metadataMap->get(TestAsset\FooBar::class)->willReturn($resourceMetadata);
648648

649+
$this->request->getQueryParams()->willReturn([]);
650+
649651
$this->linkGenerator
650652
->fromRoute(
651653
'self',

0 commit comments

Comments
 (0)