Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 28 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 1 |
EasyPost_Address_Validator | |
0.00% |
0 / 28 |
|
0.00% |
0 / 2 |
12 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
validate | |
0.00% |
0 / 26 |
|
0.00% |
0 / 1 |
6 |
1 | <?php |
2 | /** |
3 | * @see https://www.easypost.com/address-verification-api |
4 | * @see https://www.easypost.com/address-verification-guide |
5 | * @see https://www.easypost.com/docs/api#addresses |
6 | * @see https://www.easypost.com/docs/address-verification-by-country |
7 | * @see https://github.com/easypost/easypost-php |
8 | */ |
9 | |
10 | namespace BrianHenryIE\WC_Address_Validation\API\Validators; |
11 | |
12 | use BrianHenryIE\WC_Address_Validation\API\Address_Validator_Interface; |
13 | use BrianHenryIE\WC_Address_Validation\EasyPost\Address; |
14 | use BrianHenryIE\WC_Address_Validation\EasyPost\EasyPost; |
15 | use Psr\Log\LoggerAwareTrait; |
16 | use Psr\Log\LoggerInterface; |
17 | |
18 | class EasyPost_Address_Validator implements Address_Validator_Interface { |
19 | |
20 | use LoggerAwareTrait; |
21 | |
22 | public function __construct( string $api_key, LoggerInterface $logger ) { |
23 | $this->setLogger( $logger ); |
24 | |
25 | EasyPost::setApiKey( $api_key ); |
26 | } |
27 | |
28 | /** |
29 | * |
30 | * |
31 | * @param array{address_1: string, address_2: string, city: string, state: string, postcode: string, country: string} $address |
32 | * @return array{success: bool, original_address: array, updated_address: ?array, message: ?string, error_message: ?string} |
33 | */ |
34 | public function validate( array $address ): array { |
35 | |
36 | $easypost_address_array = array( |
37 | 'street1' => $address['address_1'], |
38 | 'street2' => $address['address_2'], |
39 | 'city' => $address['city'], |
40 | 'state' => $address['state'], |
41 | 'zip' => $address['postcode'], |
42 | 'country' => $address['country'], |
43 | ); |
44 | |
45 | try { |
46 | /** @var Address $verified */ |
47 | $verified = Address::create_and_verify( $easypost_address_array ); |
48 | |
49 | } catch ( \Exception $e ) { |
50 | $result['success'] = false; |
51 | $result['error_message'] = 'fail!'; |
52 | |
53 | $this->logger->info( 'error' ); |
54 | |
55 | return $result; |
56 | } |
57 | |
58 | $result['success'] = true; |
59 | |
60 | $updated_address = array( |
61 | 'address_1' => $verified['street1'], |
62 | 'address_2' => $verified['street2'], |
63 | 'city' => $verified['city'], |
64 | 'state' => $verified['state'], |
65 | 'postcode' => $verified['zip'], |
66 | 'country' => $verified['country'], |
67 | ); |
68 | |
69 | $result['updated_address'] = $updated_address; |
70 | |
71 | $result['message'] = ''; |
72 | |
73 | return $result; |
74 | } |
75 | } |