Test Failed
Push — feature/post-pay ( e3663d...906e88 )
by Remco
04:22
created

AddressTransformer::transform()   A

Complexity

Conditions 5
Paths 7

Size

Total Lines 28
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 17
nc 7
nop 1
dl 0
loc 28
rs 9.3888
c 0
b 0
f 0
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.0.2
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
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
		$address = new Address( $last_name, $street, $postal_code, $city, $country_code );
47
48
		if ( null !== $name ) {
49
			$address->set_first_name( $name->get_first_name() );
50
			$address->set_middle_name( $name->get_middle_name() );
51
		}
52
53
		$address->set_house_number( $pronamic_address->get_house_number() );
54
		$address->set_house_number_addition( $pronamic_address->get_house_number_addition() );
55
56
		return $address;
57
	}
58
}
59