Failed Conditions
Push — develop ( 06cf49...d16b7e )
by Reüel
05:54
created

TransactionParser::parse()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
cc 2
eloc 9
c 0
b 0
f 0
nc 2
nop 2
dl 0
loc 13
ccs 0
cts 11
cp 0
crap 6
rs 9.9666
1
<?php
2
/**
3
 * Transaction parser.
4
 *
5
 * @author    Pronamic <[email protected]>
6
 * @copyright 2005-2020 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\Core\XML\Security;
14
use Pronamic\WordPress\Pay\Gateways\IDealAdvancedV3\Transaction;
15
use SimpleXMLElement;
16
17
/**
18
 * Title: Transaction XML parser
19
 * Description:
20
 * Copyright: 2005-2020 Pronamic
21
 * Company: Pronamic
22
 *
23
 * @author  Remco Tolsma
24
 * @version 2.0.0
25
 */
26
class TransactionParser implements Parser {
27
	/**
28
	 * Parse the specified XML element into an iDEAL transaction object
29
	 *
30
	 * @param SimpleXMLElement $xml         XML.
31
	 * @param Transaction      $transaction Transaction.
32
	 *
33
	 * @return Transaction
34
	 */
35
	public static function parse( SimpleXMLElement $xml, Transaction $transaction = null ) {
36
		if ( ! $transaction instanceof Transaction ) {
37
			$transaction = new Transaction();
38
		}
39
40
		$transaction->set_id( Security::filter( $xml->transactionID ) );
41
		$transaction->set_purchase_id( Security::filter( $xml->purchaseID ) );
42
		$transaction->set_status( Security::filter( $xml->status ) );
43
		$transaction->set_consumer_name( Security::filter( $xml->consumerName ) );
44
		$transaction->set_consumer_iban( Security::filter( $xml->consumerIBAN ) );
45
		$transaction->set_consumer_bic( Security::filter( $xml->consumerBIC ) );
46
47
		return $transaction;
48
	}
49
}
50