Skip to content

Commit

Permalink
Merge pull request #109 from PayGreen/develop
Browse files Browse the repository at this point in the history
version
  • Loading branch information
guillaumbertin authored May 15, 2023
2 parents 0685d0e + e7e1bba commit 900d4a1
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 12 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Test

on: [push, pull_request, workflow_dispatch]
on: [push, workflow_dispatch]

jobs:
phpunit:
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "paygreen/paygreen-php",
"version": "1.3.10",
"version": "1.3.11",
"description": "PayGreen PHP SDK",
"type": "library",
"license": "proprietary",
Expand Down
11 changes: 10 additions & 1 deletion docs/v3/notification.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,16 @@ $client->getListener('lis_0000');
## Update a listener

```php
$client->updateListener('lis_0000', 'https://my-store.fr');
/**
* The third argument $params is optional
* (Authorized values : url, events, type)
*/
$client->updateListener('lis_0000', 'https://my-store.fr', array(
'events' => array(
'payment_order.authorized',
'payment_order.refused'
)
));
```

## Delete a listener
Expand Down
11 changes: 8 additions & 3 deletions lib/PaygreenSdk/Payment/V3/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -469,14 +469,19 @@ public function createListener(ListenerInterface $listener, $shopId = null)

/**
* @param string $listenerId
* @param string $url
* @param string|null $url
* @param array $params
* @return ResponseInterface
* @throws Exception
*
*/
public function updateListener($listenerId, $url)
public function updateListener($listenerId, $url = null, $params = [])
{
$request = (new ListenerRequest($this->requestFactory, $this->environment))->getUpdateRequest($listenerId, $url);
if ($url !== null) {
$params['url'] = $url;
}

$request = (new ListenerRequest($this->requestFactory, $this->environment))->getUpdateRequest($listenerId, $params);
$this->setLastRequest($request);

$response = $this->sendRequest($request);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,15 @@ public function getCreateRequest(ListenerInterface $listener, $shopId = null)

/**
* @param string $listenerId
* @param string $url
* @param array $params
*
* @return RequestInterface
*/
public function getUpdateRequest($listenerId, $url)
public function getUpdateRequest($listenerId, $params)
{
$body = ['url' => $url];

return $this->requestFactory->create(
"/notifications/listeners/{$listenerId}",
(new Serializer([new CleanEmptyValueNormalizer()], [new JsonEncoder()]))->serialize($body, 'json')
(new Serializer([new CleanEmptyValueNormalizer()], [new JsonEncoder()]))->serialize($params, 'json')
)->withAuthorization()->isJson()->getRequest();
}

Expand Down
9 changes: 8 additions & 1 deletion tests/Unit/Payment/V3/ClientTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -438,14 +438,21 @@ public function testRequestCreateListener()

public function testRequestUpdateListener()
{
$this->client->updateListener('lis_12345', 'https://my-listener-url.fr');
$this->client->updateListener(
'lis_12345',
'https://my-listener-url.fr',
array(
'events' => array('payment_order.authorized', 'payment_order.successed')
)
);
$request = $this->client->getLastRequest();

$content = json_decode($request->getBody()->getContents());

$this->assertEquals('POST', $request->getMethod());
$this->assertEquals('/notifications/listeners/lis_12345', $request->getUri()->getPath());
$this->assertEquals('https://my-listener-url.fr', $content->url);
$this->assertEquals(array('payment_order.authorized', 'payment_order.successed'), $content->events);
}

public function testRequestGetListener()
Expand Down

0 comments on commit 900d4a1

Please sign in to comment.