Skip to content

Commit 9ed88e3

Browse files
authored
Merge pull request #11 from packagist/t/customer-update
Customer: add endpoint to update customer settings
2 parents ee0cce5 + 4fac272 commit 9ed88e3

File tree

3 files changed

+49
-3
lines changed

3 files changed

+49
-3
lines changed

Diff for: README.md

+12
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,18 @@ $customer = $client->customers()->create('New customer name');
7171
```
7272
Returns the customer.
7373

74+
##### Update a customer
75+
```php
76+
$customerId = 42;
77+
$customerData = [
78+
'name' => $name,
79+
'urlName' => 'customer',
80+
'accessToVersionControlSource' => false,
81+
];
82+
$customer = $client->customers()->update($customerId, $customerData);
83+
```
84+
Returns the customer.
85+
7486
##### Delete a customer
7587
```php
7688
$customerId = 42;

Diff for: src/Api/Customers.php

+7-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,14 @@ public function show($customerId)
1616
return $this->get(sprintf('/customers/%s/', $customerId));
1717
}
1818

19-
public function create($name)
19+
public function create($name, $accessToVersionControlSource = false)
2020
{
21-
return $this->post('/customers/', ['name' => $name]);
21+
return $this->post('/customers/', ['name' => $name, 'accessToVersionControlSource' => $accessToVersionControlSource]);
22+
}
23+
24+
public function update($customerId, array $customer)
25+
{
26+
return $this->put(sprintf('/customers/%s/', $customerId), $customer);
2227
}
2328

2429
public function remove($customerId)

Diff for: tests/Api/CustomersTest.php

+30-1
Original file line numberDiff line numberDiff line change
@@ -49,19 +49,48 @@ public function testCreate()
4949
'id' => 1,
5050
'type' => 'composer-repo',
5151
'name' => $name = 'Customer',
52+
'accessToVersionControlSource' => false,
5253
],
5354
];
5455

5556
/** @var Customers&\PHPUnit_Framework_MockObject_MockObject $api */
5657
$api = $this->getApiMock();
5758
$api->expects($this->once())
5859
->method('post')
59-
->with($this->equalTo('/customers/'), $this->equalTo(['name' => $name]))
60+
->with($this->equalTo('/customers/'), $this->equalTo(['name' => $name, 'accessToVersionControlSource' => false]))
6061
->will($this->returnValue($expected));
6162

6263
$this->assertSame($expected, $api->create($name));
6364
}
6465

66+
public function testUpdate()
67+
{
68+
$expected = [
69+
[
70+
'id' => 1,
71+
'type' => 'composer-repo',
72+
'name' => $name = 'Customer',
73+
'urlName' => 'customer',
74+
'accessToVersionControlSource' => false,
75+
],
76+
];
77+
78+
$customer = [
79+
'name' => $name,
80+
'urlName' => 'customer',
81+
'accessToVersionControlSource' => false,
82+
];
83+
84+
/** @var Customers&\PHPUnit_Framework_MockObject_MockObject $api */
85+
$api = $this->getApiMock();
86+
$api->expects($this->once())
87+
->method('put')
88+
->with($this->equalTo('/customers/1/'), $this->equalTo($customer))
89+
->will($this->returnValue($expected));
90+
91+
$this->assertSame($expected, $api->update(1, $customer));
92+
}
93+
6594
public function testRemove()
6695
{
6796
$expected = '';

0 commit comments

Comments
 (0)