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

StatusAction::execute()   A

Complexity

Conditions 6
Paths 4

Size

Total Lines 17
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 6.0163

Importance

Changes 0
Metric Value
cc 6
eloc 12
c 0
b 0
f 0
nc 4
nop 1
dl 0
loc 17
rs 9.2222
ccs 12
cts 13
cp 0.9231
crap 6.0163
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