Passed
Push — master ( 99a753...df0863 )
by Remco
19:34 queued 09:07
created

AddressTransformer   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 22
dl 0
loc 44
ccs 0
cts 27
cp 0
rs 10
c 0
b 0
f 0
wmc 7

1 Method

Rating   Name   Duplication   Size   Complexity  
B transform() 0 37 7
1
<?php
2
/**
3
 * Address transformer
4
 *
5
 * @author    Pronamic <[email protected]>
6
 * @copyright 2005-2018 Pronamic
7
 * @license   GPL-3.0-or-later
8
 * @package   Pronamic\WordPress\Pay\Gateways\OmniKassa2
9
 */
10
11
namespace Pronamic\WordPress\Pay\Gateways\OmniKassa2;
12
13
use Pronamic\WordPress\Pay\Address as PronamicAddress;
14
15
/**
16
 * Address transformer
17
 *
18
 * @author  Remco Tolsma
19
 * @version 2.1.0
20
 * @since   2.0.2
21
 */
22
class AddressTransformer {
23
	/**
24
	 * Transform Pronamic address to OmniKassa 2.0 address.
25
	 *
26
	 * @param PronamicAddress|null $pronamic_address Pronamic address to convert.
27
	 * @return Address|null
28
	 */
29
	public static function transform( PronamicAddress $pronamic_address = null ) {
30
		if ( null === $pronamic_address ) {
31
			return null;
32
		}
33
34
		$name = $pronamic_address->get_name();
35
36
		$last_name    = null === $name ? null : $name->get_last_name();
37
		$street       = $pronamic_address->get_street_name();
38
		$postal_code  = $pronamic_address->get_postal_code();
39
		$city         = $pronamic_address->get_city();
40
		$country_code = $pronamic_address->get_country_code();
41
42
		if ( ! isset( $last_name, $street, $postal_code, $city, $country_code ) ) {
43
			return null;
44
		}
45
46
		// New address.
47
		$address = new Address( $last_name, $street, $postal_code, $city, $country_code );
48
49
		if ( null !== $name ) {
50
			$first_name  = $name->get_first_name();
51
			$middle_name = $name->get_middle_name();
52
53
			if ( null !== $first_name ) {
54
				$address->set_first_name( $first_name );
55
			}
56
57
			if ( null !== $middle_name ) {
58
				$address->set_middle_name( $middle_name );
59
			}
60
		}
61
62
		$address->set_house_number( $pronamic_address->get_house_number_base() );
63
		$address->set_house_number_addition( $pronamic_address->get_house_number_addition() );
64
65
		return $address;
66
	}
67
}
68