Skip to content

Commit 2d57869

Browse files
committed
Show correct Pushover error message in exception
1 parent 81bc0f2 commit 2d57869

File tree

2 files changed

+4
-7
lines changed

2 files changed

+4
-7
lines changed

src/Exceptions/CouldNotSendNotification.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public static function serviceRespondedWithAnError(ResponseInterface $response)
1313

1414
$result = json_decode($response->getBody());
1515

16-
if ($result && isset($result->message)) {
17-
return new static('Pushover responded with an error ('.$statusCode.'): '.$result->message);
16+
if ($result && isset($result->errors)) {
17+
return new static('Pushover responded with an error ('.$statusCode.'): '.implode(', ', $result->errors));
1818
}
1919

2020
return new static('Pushover responded with an error ('.$statusCode.').');

tests/PushoverTest.php

+2-5
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,12 @@ public function it_throws_an_exception_when_pushover_returns_an_error_with_inval
7373
/** @test */
7474
public function it_throws_an_exception_when_pushover_returns_an_error_with_valid_json()
7575
{
76-
$this->setExpectedException(CouldNotSendNotification::class, 'Pushover responded with an error (400): [error_message]');
76+
$this->setExpectedException(CouldNotSendNotification::class, 'Pushover responded with an error (400): error_message_1, error_message_2');
7777

7878
$guzzleRequest = Mockery::mock(\Psr\Http\Message\RequestInterface::class);
7979
$guzzleResponse = Mockery::mock(\Psr\Http\Message\ResponseInterface::class);
8080
$guzzleResponse->shouldReceive('getStatusCode')->andReturn(400);
81-
$guzzleResponse->shouldReceive('getBody')->andReturn('{"message": "[error_message]"}');
81+
$guzzleResponse->shouldReceive('getBody')->andReturn('{"errors": ["error_message_1", "error_message_2"]}');
8282

8383
$this->guzzleClient->shouldReceive('post')->andThrow(new RequestException(null, $guzzleRequest, $guzzleResponse));
8484

@@ -91,9 +91,6 @@ public function it_throws_an_exception_when_pushover_returns_nothing()
9191
$this->setExpectedException(CouldNotSendNotification::class, 'The communication with Pushover failed because');
9292

9393
$guzzleRequest = Mockery::mock(\Psr\Http\Message\RequestInterface::class);
94-
$guzzleResponse = Mockery::mock(\Psr\Http\Message\ResponseInterface::class);
95-
$guzzleResponse->shouldReceive('getStatusCode')->andReturn(400);
96-
$guzzleResponse->shouldReceive('getBody')->andReturn('{"message": "[error_message]"}');
9794

9895
$this->guzzleClient->shouldReceive('post')->andThrow(new RequestException(null, $guzzleRequest, null));
9996

0 commit comments

Comments
 (0)