NumberToken::execute()   A
last analyzed

Complexity

Conditions 2
Paths 3

Size

Total Lines 18
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 10
c 1
b 0
f 0
nc 3
nop 0
dl 0
loc 18
rs 9.9332
1
<?php
2
/**
3
 * Copyright © Getnet. All rights reserved.
4
 *
5
 * @author    Bruno Elisei <[email protected]>
6
 * See LICENSE for license details.
7
 */
8
9
namespace Getnet\PaymentMagento\Controller\Adminhtml\Order;
10
11
use Getnet\PaymentMagento\Api\Data\NumberTokenInterface;
12
use Getnet\PaymentMagento\Model\NumberTokenManagement;
13
use Magento\Backend\App\Action;
14
use Magento\Backend\App\Action\Context;
15
use Magento\Backend\Model\Session\Quote;
16
use Magento\Framework\Controller\Result\JsonFactory;
17
use Magento\Framework\Controller\ResultInterface;
18
use Magento\Framework\Serialize\Serializer\Json;
19
20
/**
21
 * Class Number Token - Generate Number Token.
22
 */
23
class NumberToken extends Action
24
{
25
    /**
26
     * Authorization level of a basic admin session.
27
     *
28
     * @see _isAllowed()
29
     */
30
    public const ADMIN_RESOURCE = 'Getnet_PaymentMagento::tokenize';
31
32
    /**
33
     * @var JsonFactory
34
     */
35
    protected $resultJsonFactory;
36
37
    /**
38
     * @var Json
39
     */
40
    protected $json;
41
42
    /**
43
     * @var Quote
44
     */
45
    protected $sessionManager;
46
47
    /**
48
     * @var NumberTokenManagement
49
     */
50
    protected $numberTokenModel;
51
52
    /**
53
     * @var NumberTokenInterface
54
     */
55
    protected $numberToken;
56
57
    /**
58
     * @param Context               $context
59
     * @param JsonFactory           $resultJsonFactory
60
     * @param Json                  $json
61
     * @param Quote                 $sessionManager
62
     * @param NumberTokenManagement $numberTokenModel
63
     * @param NumberTokenInterface  $numberToken
64
     */
65
    public function __construct(
66
        Context $context,
67
        JsonFactory $resultJsonFactory,
68
        Json $json,
69
        Quote $sessionManager,
70
        NumberTokenManagement $numberTokenModel,
71
        NumberTokenInterface $numberToken
72
    ) {
73
        $this->resultJsonFactory = $resultJsonFactory;
74
        $this->json = $json;
75
        $this->sessionManager = $sessionManager;
76
        $this->numberTokenModel = $numberTokenModel;
77
        $this->numberToken = $numberToken;
78
        parent::__construct($context);
79
    }
80
81
    /**
82
     * ACL.
83
     *
84
     * @return bool
85
     * @SuppressWarnings(PHPMD.CamelCaseMethodName)
86
     */
87
    protected function _isAllowed()
88
    {
89
        return $this->_authorization->isAllowed(self::ADMIN_RESOURCE);
90
    }
91
92
    /**
93
     * Execute.
94
     *
95
     * @return ResultInterface
96
     */
97
    public function execute()
98
    {
99
        $cardNumber = $this->getRequest()->getParam('cardNumber');
100
        $storeId = $this->getRequest()->getParam('storeId');
101
102
        /** @var $setCardNumber NumberTokenInterface */
103
        $setCardNumber = $this->numberToken->setCardNumber($cardNumber);
0 ignored issues
show
Bug introduced by
Are you sure the assignment to $setCardNumber is correct as $this->numberToken->setCardNumber($cardNumber) targeting Getnet\PaymentMagento\Ap...erface::setCardNumber() seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
104
105
        try {
106
            /** @var $token NumberTokenManagement */
107
            $token = $this->numberTokenModel->generateNumberTokenForAdmin($storeId, $setCardNumber);
108
109
            return $this->resultJsonFactory->create()->setData([$token]);
110
        } catch (\Exception $e) {
111
            return $this->resultJsonFactory->create()->setData(
112
                [
113
                    'success' => false,
114
                    'error'   => true,
115
                ]
116
            );
117
        }
118
    }
119
}
120