1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?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);
- }
- }
|