Code Duplication    Length = 70-74 lines in 2 locations

src/Call/Masterpass/BasicCheckoutRequest.php 1 location

@@ 12-81 (lines=70) @@
9
use SlevomatCsobGateway\Crypto\SignatureDataFormatter;
10
use SlevomatCsobGateway\Validator;
11
12
class BasicCheckoutRequest
13
{
14
15
	/**
16
	 * @var string
17
	 */
18
	private $merchantId;
19
20
	/**
21
	 * @var string
22
	 */
23
	private $payId;
24
25
	/** @var string */
26
	private $callbackUrl;
27
28
	public function __construct(
29
		string $merchantId,
30
		string $payId,
31
		string $callbackUrl
32
	)
33
	{
34
		Validator::checkPayId($payId);
35
		Validator::checkReturnUrl($callbackUrl);
36
37
		$this->merchantId = $merchantId;
38
		$this->payId = $payId;
39
		$this->callbackUrl = $callbackUrl;
40
	}
41
42
	public function send(ApiClient $apiClient): CheckoutResponse
43
	{
44
		$requestData = [
45
			'merchantId' => $this->merchantId,
46
			'payId' => $this->payId,
47
			'callbackUrl' => $this->callbackUrl,
48
		];
49
50
		$response = $apiClient->post(
51
			'masterpass/basic/checkout',
52
			$requestData,
53
			new SignatureDataFormatter([
54
				'merchantId' => null,
55
				'payId' => null,
56
				'dttm' => null,
57
				'callbackUrl' => null,
58
			]),
59
			new SignatureDataFormatter([
60
				'payId' => null,
61
				'dttm' => null,
62
				'resultCode' => null,
63
				'resultMessage' => null,
64
				'paymentStatus' => null,
65
				'lightboxParams' => null,
66
			])
67
		);
68
69
		$data = $response->getData();
70
71
		return new CheckoutResponse(
72
			$data['payId'],
73
			DateTimeImmutable::createFromFormat('YmdHis', $data['dttm']),
74
			ResultCode::get($data['resultCode']),
75
			$data['resultMessage'],
76
			isset($data['paymentStatus']) ? PaymentStatus::get($data['paymentStatus']) : null,
77
			$data['lightboxParams'] ?? null
78
		);
79
	}
80
81
}
82

src/Call/Masterpass/StandardExtractRequest.php 1 location

@@ 12-85 (lines=74) @@
9
use SlevomatCsobGateway\Crypto\SignatureDataFormatter;
10
use SlevomatCsobGateway\Validator;
11
12
class StandardExtractRequest
13
{
14
15
	/**
16
	 * @var string
17
	 */
18
	private $merchantId;
19
20
	/**
21
	 * @var string
22
	 */
23
	private $payId;
24
25
	/** @var mixed[] */
26
	private $callbackParams;
27
28
	/**
29
	 * @param string $merchantId
30
	 * @param string $payId
31
	 * @param mixed[] $callbackParams
32
	 */
33
	public function __construct(
34
		string $merchantId,
35
		string $payId,
36
		array $callbackParams
37
	)
38
	{
39
		Validator::checkPayId($payId);
40
41
		$this->merchantId = $merchantId;
42
		$this->payId = $payId;
43
		$this->callbackParams = $callbackParams;
44
	}
45
46
	public function send(ApiClient $apiClient): ExtractResponse
47
	{
48
		$requestData = [
49
			'merchantId' => $this->merchantId,
50
			'payId' => $this->payId,
51
			'callbackParams' => $this->callbackParams,
52
		];
53
54
		$response = $apiClient->post(
55
			'masterpass/standard/extract',
56
			$requestData,
57
			new SignatureDataFormatter([
58
				'merchantId' => null,
59
				'payId' => null,
60
				'dttm' => null,
61
				'callbackParams' => null,
62
			]),
63
			new SignatureDataFormatter([
64
				'payId' => null,
65
				'dttm' => null,
66
				'resultCode' => null,
67
				'resultMessage' => null,
68
				'paymentStatus' => null,
69
				'checkoutParams' => null,
70
			])
71
		);
72
73
		$data = $response->getData();
74
75
		return new ExtractResponse(
76
			$data['payId'],
77
			DateTimeImmutable::createFromFormat('YmdHis', $data['dttm']),
78
			ResultCode::get($data['resultCode']),
79
			$data['resultMessage'],
80
			isset($data['paymentStatus']) ? PaymentStatus::get($data['paymentStatus']) : null,
81
			$data['checkoutParams'] ?? null
82
		);
83
	}
84
85
}
86