From ce2bd4b0f1cbf1730795c5ffd63bb7c966b5fbbf Mon Sep 17 00:00:00 2001 From: Quentin Date: Tue, 19 Dec 2017 11:24:03 +0100 Subject: [PATCH] feat(unsubscribe): Handle tags in Unsubscribe v3 api. --- .../Suppression/Unsubscribe/Unsubscribe.php | 24 ++++++++++++++++ .../Unsubscribe/UnsubscribeTest.php | 28 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 tests/Model/Suppression/Unsubscribe/UnsubscribeTest.php diff --git a/src/Mailgun/Model/Suppression/Unsubscribe/Unsubscribe.php b/src/Mailgun/Model/Suppression/Unsubscribe/Unsubscribe.php index a07ca5a..34a6a14 100644 --- a/src/Mailgun/Model/Suppression/Unsubscribe/Unsubscribe.php +++ b/src/Mailgun/Model/Suppression/Unsubscribe/Unsubscribe.php @@ -29,6 +29,11 @@ class Unsubscribe */ private $createdAt; + /** + * @var array + */ + private $tags = []; + /** * @param string $address */ @@ -50,6 +55,9 @@ class Unsubscribe if (isset($data['tag'])) { $unsubscribe->setTag($data['tag']); } + if (isset($data['tags'])) { + $unsubscribe->setTags($data['tags']); + } if (isset($data['created_at'])) { $unsubscribe->setCreatedAt(new \DateTime($data['created_at'])); } @@ -96,4 +104,20 @@ class Unsubscribe { $this->createdAt = $createdAt; } + + /** + * @param array $tags + */ + private function setTags($tags) + { + $this->tags = $tags; + } + + /** + * @return array + */ + public function getTags() + { + return $this->tags; + } } diff --git a/tests/Model/Suppression/Unsubscribe/UnsubscribeTest.php b/tests/Model/Suppression/Unsubscribe/UnsubscribeTest.php new file mode 100644 index 0000000..e93870a --- /dev/null +++ b/tests/Model/Suppression/Unsubscribe/UnsubscribeTest.php @@ -0,0 +1,28 @@ + 'dummy@mailgun.net']); + $this->assertEquals([], $unsubscribe->getTags()); + } + + /** + * @test + */ + public function it_gets_tags() + { + $tags = ['tag1', 'tag2']; + $unsubscribe = Unsubscribe::create(['address' => 'dummy@mailgun.net', 'tags' => $tags]); + $this->assertEquals($tags, $unsubscribe->getTags()); + } +}