Issues (1092)

Controller/Payolution/DraftDownload.php (10 issues)

1
<?php
2
3
/**
4
 * PAYONE Magento 2 Connector is free software: you can redistribute it and/or modify
5
 * it under the terms of the GNU Lesser General Public License as published by
6
 * the Free Software Foundation, either version 3 of the License, or
7
 * (at your option) any later version.
8
 *
9
 * PAYONE Magento 2 Connector is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU Lesser General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Lesser General Public License
15
 * along with PAYONE Magento 2 Connector. If not, see <http://www.gnu.org/licenses/>.
16
 *
17
 * PHP version 5
18
 *
19
 * @category  Payone
20
 * @package   Payone_Magento2_Plugin
21
 * @author    FATCHIP GmbH <[email protected]>
22
 * @copyright 2003 - 2017 Payone GmbH
23
 * @license   <http://www.gnu.org/licenses/> GNU Lesser General Public License
24
 * @link      http://www.payone.de
25
 */
26
27
namespace Payone\Core\Controller\Payolution;
28
29
use Magento\Sales\Model\Order;
0 ignored issues
show
The type Magento\Sales\Model\Order was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
30
use Payone\Core\Model\PayoneConfig;
31
32
/**
33
 * Controller for mandate download
34
 */
35
class DraftDownload extends \Magento\Framework\App\Action\Action
0 ignored issues
show
The type Magento\Framework\App\Action\Action was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
36
{
37
    /**
38
     * Checkout session
39
     *
40
     * @var \Magento\Checkout\Model\Session
0 ignored issues
show
The type Magento\Checkout\Model\Session was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
41
     */
42
    protected $checkoutSession;
43
44
    /**
45
     * PAYONE payment helper
46
     *
47
     * @var \Payone\Core\Helper\Payment
48
     */
49
    protected $paymentHelper;
50
51
    /**
52
     * Result factory for file-download
53
     *
54
     * @var \Magento\Framework\Controller\Result\RawFactory
0 ignored issues
show
The type Magento\Framework\Controller\Result\RawFactory was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
55
     */
56
    protected $resultRawFactory;
57
58
    /**
59
     * Order object
60
     *
61
     * @var Order
62
     */
63
    protected $oOrder = null;
64
65
    /**
66
     * Magento curl object
67
     *
68
     * @var \Magento\Framework\HTTP\Client\Curl
0 ignored issues
show
The type Magento\Framework\HTTP\Client\Curl was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
69
     */
70
    protected $curl;
71
72
    /**
73
     * Constructor
74
     *
75
     * @param \Magento\Framework\App\Action\Context           $context
76
     * @param \Magento\Checkout\Model\Session                 $checkoutSession
77
     * @param \Payone\Core\Helper\Payment                     $paymentHelper
78
     * @param \Magento\Framework\Controller\Result\RawFactory $resultRawFactory
79
     * @param \Magento\Framework\HTTP\Client\Curl             $curl
80
     */
81
    public function __construct(
82
        \Magento\Framework\App\Action\Context $context,
0 ignored issues
show
The type Magento\Framework\App\Action\Context was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
83
        \Magento\Checkout\Model\Session $checkoutSession,
84
        \Payone\Core\Helper\Payment $paymentHelper,
85
        \Magento\Framework\Controller\Result\RawFactory $resultRawFactory,
86
        \Magento\Framework\HTTP\Client\Curl $curl
87
    ) {
88
        parent::__construct($context);
89
        $this->checkoutSession = $checkoutSession;
90
        $this->paymentHelper = $paymentHelper;
91
        $this->resultRawFactory = $resultRawFactory;
92
        $this->curl = $curl;
93
        $this->curl->setOption(CURLOPT_SSL_VERIFYPEER, false);
94
        $this->curl->setOption(CURLOPT_SSL_VERIFYHOST, false);
95
    }
96
97
    /**
98
     * Get pdf-file string
99
     *
100
     * @return string
101
     */
102
    protected function getInstallmentContractDraft()
103
    {
104
        $iDuration = $this->getRequest()->getParam('duration');
105
        $aDraftLinks = $this->checkoutSession->getInstallmentDraftLinks();
106
        $sUser = $this->paymentHelper->getConfigParam('installment_draft_user', PayoneConfig::METHOD_PAYOLUTION_INSTALLMENT, 'payone_payment');
107
        $sPassword = $this->paymentHelper->getConfigParam('installment_draft_password', PayoneConfig::METHOD_PAYOLUTION_INSTALLMENT, 'payone_payment');
108
        if (isset($aDraftLinks[$iDuration]) && $sUser && $sPassword) {
109
            $sDownloadUrl = str_ireplace('https://', 'https://'.$sUser.':'.$sPassword.'@', $aDraftLinks[$iDuration]);
110
            $this->curl->get($sDownloadUrl);
111
            return $this->curl->getBody();
112
        }
113
        return false;
0 ignored issues
show
Bug Best Practice introduced by
The expression return false returns the type false which is incompatible with the documented return type string.
Loading history...
114
    }
115
116
    /**
117
     * Output mandate as pdf download
118
     *
119
     * @return \Magento\Framework\Controller\Result\Raw
0 ignored issues
show
The type Magento\Framework\Controller\Result\Raw was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
120
     */
121
    public function execute()
122
    {
123
        $oResultRaw = $this->resultRawFactory->create();
124
        $sFilename = __('terms-of-payment').'.pdf';
0 ignored issues
show
The function __ was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

124
        $sFilename = /** @scrutinizer ignore-call */ __('terms-of-payment').'.pdf';
Loading history...
125
126
        $sContractDraft = $this->getInstallmentContractDraft();
127
        if ($sContractDraft !== false) {
0 ignored issues
show
The condition $sContractDraft !== false is always true.
Loading history...
128
            $oResultRaw->setHeader("Content-Type", "application/pdf", true);
129
            $oResultRaw->setHeader("Content-Disposition", 'attachment; filename="'.$sFilename.'"', true);
130
            $oResultRaw->setContents($sContractDraft);
131
        } else {
132
            $oResultRaw->setContents(__('An unknown error occurred'));
133
        }
134
        return $oResultRaw;
135
    }
136
}
137