diff --git a/.gitignore b/.gitignore index 39060e0..73d3615 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,4 @@ phpunit.xml modd.conf .phpunit.result.cache .php_cs.cache -.phpunit.result.cache +.idea diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d71e49..8eba48b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ The change log describes what is "Added", "Removed", "Changed" or "Fixed" between each release. +## 3.5.1 + +### Fixed + +- Error with empty array for param recipient-variables. Fix was suggested by @deviarte +- Use null coalescing operator in IndexResponse.php when. Fix proposed by @TWithers + ## 3.5.0 ### Added diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 1000dd2..daa4b2c 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,21 +1,13 @@ - - - - - tests - - - - - - src - - + + + + src + + + + + tests + + diff --git a/phpunit.xml.dist.bak b/phpunit.xml.dist.bak new file mode 100644 index 0000000..1000dd2 --- /dev/null +++ b/phpunit.xml.dist.bak @@ -0,0 +1,21 @@ + + + + + + tests + + + + + + src + + + diff --git a/src/Message/BatchMessage.php b/src/Message/BatchMessage.php index d420811..21b4d7c 100644 --- a/src/Message/BatchMessage.php +++ b/src/Message/BatchMessage.php @@ -118,7 +118,7 @@ class BatchMessage extends MessageBuilder throw MissingRequiredParameter::create('text", "html" or "template'); } - $message['recipient-variables'] = json_encode($this->batchRecipientAttributes); + $message['recipient-variables'] = json_encode($this->batchRecipientAttributes, JSON_FORCE_OBJECT); $response = $this->api->send($this->domain, $message); $this->batchRecipientAttributes = []; diff --git a/src/Model/Ip/IndexResponse.php b/src/Model/Ip/IndexResponse.php index 104f7e9..0a2f6b6 100644 --- a/src/Model/Ip/IndexResponse.php +++ b/src/Model/Ip/IndexResponse.php @@ -42,7 +42,7 @@ final class IndexResponse implements ApiResponse $model = new self(); $model->items = $data['items']; $model->totalCount = $data['total_count'] ?? 0; - $model->assignableToPools = $data['assignable_to_pools']; + $model->assignableToPools = $data['assignable_to_pools'] ?? []; return $model; } diff --git a/tests/Message/BatchMessageTest.php b/tests/Message/BatchMessageTest.php index b1e1937..a970d9b 100644 --- a/tests/Message/BatchMessageTest.php +++ b/tests/Message/BatchMessageTest.php @@ -181,4 +181,19 @@ class BatchMessageTest extends MailgunTestCase $this->expectException(MissingRequiredParameter::class); $this->batchMessage->finalize(); } + + public function testEmptyRecipientForBatchMessage(): void + { + $params = [ + 'from' => 'BATCH ', + 'to' => ['example@gmail.com'], + 'subject' => 'Hey %recipient.first%', + 'text' => 'If you wish to unsubscribe, click http://example.com/unsubscribe/%recipient.id%', + 'recipient-variables' => [], + ]; + $this->batchMessage->setMessage($params); + $this->batchMessage->finalize(); + $message = NSA::getProperty($this->batchMessage, 'message'); + $this->assertEquals([], $message['recipient-variables']); + } }