TransactionResponseMessage::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 2
ccs 0
cts 2
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Transaction response message.
4
 *
5
 * @author    Pronamic <[email protected]>
6
 * @copyright 2005-2021 Pronamic
7
 * @license   GPL-3.0-or-later
8
 * @package   Pronamic\WordPress\Pay
9
 */
10
11
namespace Pronamic\WordPress\Pay\Gateways\IDealAdvancedV3\XML;
12
13
use Pronamic\WordPress\Pay\Gateways\IDealAdvancedV3\Issuer;
14
use Pronamic\WordPress\Pay\Gateways\IDealAdvancedV3\Transaction;
15
use SimpleXMLElement;
16
17
/**
18
 * Title: iDEAL transaction response XML message
19
 * Description:
20
 * Copyright: 2005-2021 Pronamic
21
 * Company: Pronamic
22
 *
23
 * @author  Remco Tolsma
24
 * @version 2.0.0
25
 */
26
class TransactionResponseMessage extends ResponseMessage {
27
	/**
28
	 * The document element name
29
	 *
30
	 * @var string
31
	 */
32
	const NAME = 'AcquirerTrxRes';
33
34
	/**
35
	 * Issuer.
36
	 *
37
	 * @var Issuer|null
38
	 */
39
	public $issuer;
40
41
	/**
42
	 * Transaction.
43
	 *
44
	 * @var Transaction|null
45
	 */
46
	public $transaction;
47
48
	/**
49
	 * Constructs and initialize an directory response message
50
	 */
51
	final public function __construct() {
52
		parent::__construct( self::NAME );
53
	}
54
55
	/**
56
	 * Parse the specified XML into an directory response message object
57
	 *
58
	 * @param SimpleXMLElement $xml XML.
59
	 * @return TransactionResponseMessage
60
	 */
61
	public static function parse( SimpleXMLElement $xml ) {
62
		$message = self::parse_create_date( $xml, new static() );
63
64
		$message->issuer      = IssuerParser::parse( $xml->Issuer );
65
		$message->transaction = TransactionParser::parse( $xml->Transaction );
66
67
		return $message;
68
	}
69
}
70