1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Quote\Model\Quote\Address;
use Zend_Validate_Exception;
class Validator extends \Magento\Framework\Validator\AbstractValidator
{
/**
* @var \Magento\Directory\Model\CountryFactory
*/
protected $countryFactory;
/**
* @param \Magento\Directory\Model\CountryFactory $countryFactory
*/
public function __construct(
\Magento\Directory\Model\CountryFactory $countryFactory
) {
$this->countryFactory = $countryFactory;
}
/**
* Returns true if and only if $value meets the validation requirements
*
* If $value fails validation, then this method returns false, and
* getMessages() will return an array of messages that explain why the
* validation failed.
*
* @param \Magento\Quote\Model\Quote\Address $value
* @return boolean
* @throws Zend_Validate_Exception If validation of $value is impossible
*/
public function isValid($value)
{
$messages = [];
$email = $value->getEmail();
if (!empty($email) && !\Zend_Validate::is($email, \Magento\Framework\Validator\EmailAddress::class)) {
$messages['invalid_email_format'] = 'Invalid email format';
}
$countryId = $value->getCountryId();
if (!empty($countryId)) {
$country = $this->countryFactory->create();
$country->load($countryId);
if (!$country->getId()) {
$messages['invalid_country_code'] = 'Invalid country code';
}
}
$this->_addMessages($messages);
return empty($messages);
}
}