Passed
Push — master ( f940ba...b28d4a )
by Mykolas
03:04 queued 53s
created

StatusAction   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 88.24%

Importance

Changes 0
Metric Value
eloc 16
c 0
b 0
f 0
dl 0
loc 35
rs 10
ccs 15
cts 17
cp 0.8824
wmc 8

2 Methods

Rating   Name   Duplication   Size   Complexity  
A execute() 0 17 6
A supports() 0 5 2
1
<?php
2
namespace PTS\Paysera\Action;
3
4
use Payum\Core\Action\ActionInterface;
5
use Payum\Core\Request\GetStatusInterface;
6
use Payum\Core\Bridge\Spl\ArrayObject;
7
use Payum\Core\Exception\RequestNotSupportedException;
8
use WebToPay;
9
10
class StatusAction implements ActionInterface
11
{
12
    /**
13
     * {@inheritDoc}
14
     *
15
     * @param GetStatusInterface $request
16
     */
17 9
    public function execute($request)
18
    {
19 9
        RequestNotSupportedException::assertSupports($this, $request);
20
21 3
        $model = ArrayObject::ensureArrayObject($request->getModel());
22
23 3
        if (null === $model['status'] || 'NEW' == $model['status'] || 'pending' == $model['status']) {
24 1
            $request->markNew();
25 1
            return;
26 2
        } elseif ($model['status'] == 'COMPLETED') {
27 1
            $request->markCaptured();
28 1
            return;
29 1
        } elseif ($model['status'] == 'FAILED') {
30 1
            $request->markFailed();
31 1
            return;
32
        }
33
        $request->markUnknown();
34
35
    }
36
37
    /**
38
     * {@inheritDoc}
39
     */
40 17
    public function supports($request)
41
    {
42
        return
43 17
            $request instanceof GetStatusInterface &&
44 17
            $request->getModel() instanceof \ArrayAccess
45
        ;
46
    }
47
}
48