From 3079b8a75ce23697dc01953553ad6308fe1a4d26 Mon Sep 17 00:00:00 2001 From: David Garcia Date: Fri, 8 Dec 2017 01:02:39 +0000 Subject: [PATCH] Provide model to map the Email Validation Parts --- src/Mailgun/Model/EmailValidation/Parts.php | 83 +++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/Mailgun/Model/EmailValidation/Parts.php diff --git a/src/Mailgun/Model/EmailValidation/Parts.php b/src/Mailgun/Model/EmailValidation/Parts.php new file mode 100644 index 0000000..9e43278 --- /dev/null +++ b/src/Mailgun/Model/EmailValidation/Parts.php @@ -0,0 +1,83 @@ + + */ +final class Parts +{ + /** + * @var string|null + */ + private $displayName; + + /** + * @var string|null + */ + private $domain; + + /** + * @var string|null + */ + private $localPart; + + /** + * Parts constructor. + * + * @param string|null $displayName + * @param string|null $domain + * @param string|null $localPart + */ + private function __construct($displayName, $domain, $localPart) + { + $this->displayName = $displayName; + $this->domain = $domain; + $this->localPart = $localPart; + } + + /** + * @param array $data + * + * @return Parts + */ + public static function create(array $data) + { + return new self( + (isset($data['display_name']) ? $data['display_name'] : null), + (isset($data['domain']) ? $data['domain'] : null), + (isset($data['local_part']) ? $data['local_part'] : null) + ); + } + + /** + * @return null|string + */ + public function getDisplayName() + { + return $this->displayName; + } + + /** + * @return null|string + */ + public function getDomain() + { + return $this->domain; + } + + /** + * @return null|string + */ + public function getLocalPart() + { + return $this->localPart; + } +}