Skip to content

Commit 105f199

Browse files
committed
Merge pull request #3 from rtablada/master
Added support for search with tags filter
2 parents bc31bcf + 952090b commit 105f199

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

spec/Packagist/Api/Client.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ function it_search_for_packages($client, $factory, $request, $response)
3737
$this->search('sylius');
3838
}
3939

40+
function it_searches_for_packages_with_filters($client, $factory, $request, $response)
41+
{
42+
$client->get('https://packagist.org/search.json?tag=storage&q=sylius')->shouldBeCalled()->willReturn($request);
43+
$data = FixtureLoader::load('search.json');
44+
$response->getBody(true)->shouldBeCalled()->willReturn($data);
45+
$factory->create(json_decode($data, true))->shouldBeCalled()->willReturn(array());
46+
47+
$this->search('sylius', array('tag' => 'storage'));
48+
}
49+
4050
function it_gets_package_details($client, $factory, $request, $response)
4151
{
4252
$client->get('https://packagist.org/packages/sylius/sylius.json')->shouldBeCalled()->willReturn($request);

src/Packagist/Api/Client.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@ public function __construct(ClientInterface $httpClient = null, Factory $resultF
1717
$this->resultFactory = $resultFactory;
1818
}
1919

20-
public function search($query)
20+
public function search($query, array $filters = array())
2121
{
2222
$results = $response = array();
23-
$response['next'] = $this->url('/search.json?q='.$query);
23+
$filters['q'] = $query;
24+
$url = '/search.json?' . http_build_query($filters);
25+
$response['next'] = $this->url($url);
2426

2527
do {
2628
$response = $this->request($response['next']);

0 commit comments

Comments
 (0)