Delete   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 0
dl 0
loc 54
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 1
A deleteJobs() 0 16 3
1
<?php
2
declare(strict_types=1);
3
/**
4
 * File: Delete.php
5
 * @package     LizardMedia
6
 * @category    CronScheduler
7
 * @author:     Krzysztof Kuźniar <[email protected]>
8
 * @copyright   Copyright (C) 2018 LizardMedia (http://www.lizardmedia.pl)
9
 */
10
namespace LizardMedia\CronScheduler\Model\Manage\MassActions;
11
12
use Exception;
13
use Magento\Cron\Model\ResourceModel\Schedule as ScheduleResource;
14
use Magento\Cron\Model\ScheduleFactory;
15
use Psr\Log\LoggerInterface;
16
17
/**
18
 * Class Delete
19
 * @package LizardMedia\CronScheduler\Model\Manage\MassActions
20
 */
21
class Delete
22
{
23
    /**
24
     * @var ScheduleFactory
25
     */
26
    private $scheduleFactory;
27
28
    /**
29
     * @var ScheduleResource
30
     */
31
    private $scheduleResource;
32
33
    /**
34
     * @var LoggerInterface
35
     */
36
    private $logger;
37
38
    /**
39
     * Delete constructor.
40
     * @param ScheduleResource $scheduleResource
41
     * @param ScheduleFactory $scheduleFactory
42
     * @param LoggerInterface $logger
43
     */
44
    public function __construct(
45
        ScheduleResource $scheduleResource,
46
        ScheduleFactory $scheduleFactory,
47
        LoggerInterface $logger
48
    ) {
49
        $this->scheduleFactory = $scheduleFactory;
50
        $this->scheduleResource = $scheduleResource;
51
        $this->logger = $logger;
52
    }
53
54
    /**
55
     * @param array $jobsIds
56
     * @throws Exception
57
     */
58
    public function deleteJobs(array $jobsIds)
59
    {
60
        $job = $this->scheduleFactory->create();
61
62
        foreach ($jobsIds as $jobId) {
63
            $this->scheduleResource->load($job, $jobId);
64
65
            try {
66
                $this->scheduleResource->delete($job);
67
            } catch (Exception $e) {
68
                $this->logger->error(
69
                    'Delete job item id: ' . $jobId . ' cause error: ' . $e->getMessage()
70
                );
71
            }
72
        }
73
    }
74
}
75