Delete::execute()   A
last analyzed

Complexity

Conditions 3
Paths 7

Size

Total Lines 25

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
dl 0
loc 25
ccs 0
cts 22
cp 0
rs 9.52
c 0
b 0
f 0
cc 3
nc 7
nop 0
crap 12
1
<?php
2
/**
3
 * File: Delete.php
4
 *
5
 * @author      Maciej Sławik <[email protected]>
6
 * Github:      https://github.com/maciejslawik
7
 */
8
9
namespace MSlwk\ICatalogue\Controller\Adminhtml\Catalogue;
10
11
use Magento\Backend\Model\View\Result\Redirect;
12
use MSlwk\ICatalogue\Model\CatalogueFactory;
13
use MSlwk\ICatalogue\Model\Catalogue;
14
use MSlwk\ICatalogue\Model\ResourceModel\Catalogue as CatalogueResource;
15
use Magento\Framework\Controller\ResultInterface;
16
use Magento\Backend\App\Action\Context;
17
18
/**
19
 * Class Delete
20
 *
21
 * @package MSlwk\ICatalogue\Controller\Adminhtml\Catalogue
22
 */
23
class Delete extends ActionAbstract
24
{
25
    /**
26
     * @var CatalogueFactory
27
     */
28
    protected $catalogueFactory;
29
30
    /**
31
     * @var CatalogueResource
32
     */
33
    protected $catalogueResource;
34
35
    /**
36
     * Delete constructor.
37
     *
38
     * @param CatalogueFactory $catalogueFactory
39
     * @param CatalogueResource $catalogueResource
40
     * @param Context $context
41
     */
42
    public function __construct(
43
        CatalogueFactory $catalogueFactory,
44
        CatalogueResource $catalogueResource,
45
        Context $context
46
    ) {
47
        $this->catalogueFactory = $catalogueFactory;
48
        $this->catalogueResource = $catalogueResource;
49
        parent::__construct($context);
50
    }
51
52
    /**
53
     * @return ResultInterface
54
     */
55
    public function execute()
56
    {
57
        /** @var Redirect $resultRedirect */
58
        $resultRedirect = $this->resultRedirectFactory->create();
59
60
        $id = $this->getRequest()->getParam('id');
61
        if ($id) {
62
            try {
63
                /** @var Catalogue $catalogue */
64
                $catalogue = $this->catalogueFactory->create();
65
                $this->catalogueResource->load($catalogue, $id);
66
                $this->catalogueResource->delete($catalogue);
67
                $this->messageManager->addSuccessMessage(__('The catalogue was deleted successfully'));
68
                return $resultRedirect->setPath('*/*/grid');
69
            } catch (\Exception $e) {
70
                $this->messageManager->addErrorMessage(
71
                    $e->getMessage(),
72
                    __('An error ocurred while deleting the catalogue')
73
                );
74
                return $resultRedirect->setPath('*/*/edit', ['id' => $id]);
75
            }
76
        }
77
        $this->messageManager->addErrorMessage(__('The requested catalogue doesn\'t exist'));
78
        return $resultRedirect->setPath('*/*/grid');
79
    }
80
}
81