Passed
Push — main ( 061772...28b955 )
by Remco
07:49 queued 12s
created

PaymentRequest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 59
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0
wmc 3
lcom 0
cbo 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A set_bank() 0 3 1
A jsonSerialize() 0 10 1
1
<?php
2
/**
3
 * Payment Request
4
 *
5
 * @author    Pronamic <[email protected]>
6
 * @copyright 2005-2020 Pronamic
7
 * @license   GPL-3.0-or-later
8
 * @package   Pronamic\WordPress\Pay\Gateways\Payvision
9
 */
10
11
namespace Pronamic\WordPress\Pay\Gateways\Payvision;
12
13
/**
14
 * Payment Request
15
 *
16
 * @author  Remco Tolsma
17
 * @version 1.0.0
18
 * @since   1.0.0
19
 */
20
class PaymentRequest implements \JsonSerializable {
21
	/**
22
	 * Header.
23
	 *
24
	 * @var RequestHeader
25
	 */
26
	private $header;
27
28
	/**
29
	 * Transaction.
30
	 *
31
	 * @var Transaction
32
	 */
33
	private $transaction;
34
35
	/**
36
	 * Bank.
37
	 *
38
	 * @var BankDetails|null
39
	 */
40
	private $bank;
41
42
	/**
43
	 * Construct and initialize payment request
44
	 *
45
	 * @param RequestHeader $header      Header.
46
	 * @param Transaction   $transaction Transaction.
47
	 */
48 2
	public function __construct( RequestHeader $header, Transaction $transaction ) {
49 2
		$this->header      = $header;
50 2
		$this->transaction = $transaction;
51 2
	}
52
53
	/**
54
	 * Set bank.
55
	 *
56
	 * @param BankDetails|null $bank Bank.
57
	 * @return void
58
	 */
59 1
	public function set_bank( BankDetails $bank = null ) {
60 1
		$this->bank = $bank;
61 1
	}
62
63
	/**
64
	 * JSON serialize.
65
	 *
66
	 * @return object
67
	 */
68 2
	public function jsonSerialize() {
69
		return (object) array(
70 2
			'action' => 'payment',
71 2
			'header' => $this->header,
72
			'body'   => (object) array(
73 2
				'transaction' => $this->transaction,
74 2
				'bank'        => $this->bank,
75
			),
76
		);
77
	}
78
}
79