Gvp::__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\GvpBuilderFactory;
5
use Paranoia\Configuration\AbstractConfiguration;
6
use Paranoia\Processor\GvpProcessorFactory;
7
use Paranoia\Request\Request;
8
9
class Gvp extends AbstractPos
10
{
11
    /** @var GvpBuilderFactory */
12
    private $builderFactory;
13
14
    /** @var  GvpProcessorFactory */
15
    private $processorFactory;
16
17
    public function __construct(AbstractConfiguration $configuration)
18
    {
19
        parent::__construct($configuration);
20
        $this->builderFactory = new GvpBuilderFactory($this->configuration);
21
        $this->processorFactory = new GvpProcessorFactory($this->configuration);
22
    }
23
24
    /**
25
     * {@inheritdoc}
26
     * @see \Paranoia\Pos\AbstractPos::buildRequest()
27
     * @throws \Paranoia\Exception\NotImplementedError
28
     */
29
    protected function buildRequest(Request $request, $transactionType)
30
    {
31
        $rawRequest = $this->builderFactory->createBuilder($transactionType)->build($request);
32
        return array( 'data' => $rawRequest);
33
    }
34
35
    /**
36
     * {@inheritdoc}
37
     * @see \Paranoia\Pos\AbstractPos::parseResponse()
38
     */
39
    protected function parseResponse($rawResponse, $transactionType)
40
    {
41
        return $this->processorFactory->createProcessor($transactionType)->process($rawResponse);
42
    }
43
}
44