StatusAction::execute()   B
last analyzed

Complexity

Conditions 7
Paths 7

Size

Total Lines 23
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 7.5375

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 7
eloc 18
c 1
b 1
f 0
nc 7
nop 1
dl 0
loc 23
ccs 14
cts 18
cp 0.7778
crap 7.5375
rs 8.8333
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
        switch ($model['status']) {
24
            case null:
25 3
            case 'pending':
26 3
            case 'NEW':
27 1
                $request->markNew();
28 1
                return;
29 2
            case 'COMPLETED':
30 1
                $request->markCaptured();
31 1
                return;
32 1
            case 'FAILED':
33 1
                $request->markFailed();
34 1
                return;
35
            case 'NOT_EXECUTED':
36
                $request->markPending();
37
                return;
38
        }
39
        $request->markUnknown();
40
41
    }
42
43
    /**
44
     * {@inheritDoc}
45
     */
46 17
    public function supports($request)
47
    {
48
        return
49 17
            $request instanceof GetStatusInterface &&
50 17
            $request->getModel() instanceof \ArrayAccess
51
        ;
52
    }
53
}
54