NestPay::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
namespace Paranoia\Pos;
3
4
use Paranoia\Builder\AbstractBuilderFactory;
5
use Paranoia\Builder\NestPayBuilderFactory;
6
use Paranoia\Configuration\AbstractConfiguration;
7
use Paranoia\Processor\NestPayProcessorFactory;
8
use Paranoia\Request\Request;
9
10
class NestPay extends AbstractPos
11
{
12
    /** @var AbstractBuilderFactory */
13
    private $builderFactory;
14
15
    /** @var NestPayProcessorFactory */
16
    private $processorFactory;
17
18
    public function __construct(AbstractConfiguration $configuration)
19
    {
20
        parent::__construct($configuration);
21
        $this->builderFactory = new NestPayBuilderFactory($this->configuration);
22
        $this->processorFactory = new NestPayProcessorFactory($this->configuration);
23
    }
24
25
26
    /**
27
     * {@inheritdoc}
28
     * @see \Paranoia\Pos\AbstractPos::buildRequest()
29
     * @throws \Paranoia\Exception\NotImplementedError
30
     */
31
    protected function buildRequest(Request $request, $transactionType)
32
    {
33
        $rawRequest = $this->builderFactory->createBuilder($transactionType)->build($request);
34
        return array( 'DATA' => $rawRequest);
35
    }
36
37
    /**
38
     * {@inheritdoc}
39
     * @see \Paranoia\Pos\AbstractPos::parseResponse()
40
     */
41
    protected function parseResponse($rawResponse, $transactionType)
42
    {
43
        return $this->processorFactory->createProcessor($transactionType)->process($rawResponse);
44
    }
45
}
46