Skip to content

Commit 9cbd4ca

Browse files
authored
Merge pull request #31 from packagist/t/dependents-endpoints
Package: add endpoints to fetch dependents
2 parents ca62ce3 + bfab6ff commit 9cbd4ca

File tree

5 files changed

+64
-0
lines changed

5 files changed

+64
-0
lines changed

README.md

+13
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,13 @@ $subrepositoryName = 'subrepository';
266266
$client->subrepositories()->packages()->remove($subrepositoryName, 'acme-website/package');
267267
```
268268

269+
##### List all dependents of a subrepository package
270+
```php
271+
$subrepositoryName = 'subrepository';
272+
$client->subrepositories()->packages()->listDependents($subrepositoryName, 'acme-website/package');
273+
```
274+
Returns a list of packages.
275+
269276
##### List a subrepositories's authentication tokens
270277
```php
271278
$subrepositoryName = 'subrepository';
@@ -431,6 +438,12 @@ Returns a new job.
431438
$client->packages()->remove('acme-website/package');
432439
```
433440

441+
##### List all dependents of a package
442+
```php
443+
$client->packages()->listDependents('acme-website/package');
444+
```
445+
Returns a list of packages.
446+
434447
##### List all customers with access to a package
435448
```php
436449
$client->packages()->listCustomers('acme-website/package');

src/Api/Packages.php

+5
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,9 @@ public function listCustomers($packageName)
103103
{
104104
return $this->get(sprintf('/packages/%s/customers/', $packageName));
105105
}
106+
107+
public function listDependents($packageName)
108+
{
109+
return $this->get(sprintf('/packages/%s/dependents/', $packageName));
110+
}
106111
}

src/Api/Subrepositories/Packages.php

+5
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,9 @@ public function remove($subrepositoryName, $packageName)
5656
{
5757
return $this->delete(sprintf('/subrepositories/%s/packages/%s/', $subrepositoryName, $packageName));
5858
}
59+
60+
public function listDependents($subrepositoryName, $packageName)
61+
{
62+
return $this->get(sprintf('/subrepositories/%s/packages/%s/dependents/', $subrepositoryName, $packageName));
63+
}
5964
}

tests/Api/PackagesTest.php

+20
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,26 @@ public function testListPackages()
207207
$this->assertSame($expected, $api->listCustomers('composer/composer'));
208208
}
209209

210+
public function testListDependents()
211+
{
212+
$packageName = 'acme-website/core-package';
213+
$expected = [
214+
[
215+
'id' => 1,
216+
'name' => 'acme-website/package',
217+
],
218+
];
219+
220+
/** @var Packages&\PHPUnit_Framework_MockObject_MockObject $api */
221+
$api = $this->getApiMock();
222+
$api->expects($this->once())
223+
->method('get')
224+
->with($this->equalTo('/packages/acme-website/core-package/dependents/'))
225+
->willReturn($expected);
226+
227+
$this->assertSame($expected, $api->listDependents($packageName));
228+
}
229+
210230
protected function getApiClass()
211231
{
212232
return Packages::class;

tests/Api/Subrepositories/PackagesTest.php

+21
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,27 @@ public function testRemove()
191191
$this->assertSame($expected, $api->remove($subrepositoryName, 'acme-website/package'));
192192
}
193193

194+
public function testListDependents()
195+
{
196+
$subrepositoryName = 'subrepository';
197+
$packageName = 'acme-website/core-package';
198+
$expected = [
199+
[
200+
'id' => 1,
201+
'name' => 'acme-website/package',
202+
],
203+
];
204+
205+
/** @var Packages&\PHPUnit_Framework_MockObject_MockObject $api */
206+
$api = $this->getApiMock();
207+
$api->expects($this->once())
208+
->method('get')
209+
->with($this->equalTo('/subrepositories/subrepository/packages/acme-website/core-package/dependents/'))
210+
->willReturn($expected);
211+
212+
$this->assertSame($expected, $api->listDependents($subrepositoryName, $packageName));
213+
}
214+
194215
protected function getApiClass()
195216
{
196217
return Packages::class;

0 commit comments

Comments
 (0)