DefaultSlideTypeTask   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 19
c 1
b 0
f 0
dl 0
loc 57
rs 10
wmc 7

3 Methods

Rating   Name   Duplication   Size   Complexity  
A yieldSingle() 0 4 2
A setDefaults() 0 20 4
A run() 0 3 1
1
<?php
2
3
namespace Dynamic\Flexslider\Task;
4
5
use Dynamic\FlexSlider\Model\SlideImage;
6
use SilverStripe\Dev\BuildTask;
7
use SilverStripe\ORM\DB;
8
9
/**
10
 * Class DefaultSlideTypeTask
11
 * @package Dynamic\Flexslider\Task
12
 */
13
class DefaultSlideTypeTask extends BuildTask
14
{
15
    /**
16
     * @var string
17
     */
18
    private static $segment = 'default-slide-type-task';
0 ignored issues
show
introduced by
The private property $segment is not used, and could be removed.
Loading history...
19
20
    /**
21
     * @var string
22
     */
23
    protected $title = 'Flexslider - Default Slide Type Task';
24
25
    /**
26
     * @param \SilverStripe\Control\HTTPRequest $request
27
     */
28
    public function run($request)
29
    {
30
        $this->setDefaults();
31
    }
32
33
    /**
34
     *
35
     */
36
    protected function setDefaults()
37
    {
38
        $default = SlideImage::singleton()->config()->get('defaults');
39
40
        if (isset($default['SlideType'])) {
41
            $baseTable = SlideImage::singleton()->baseTable();
42
43
            $tables = [
44
                $baseTable,
45
                "{$baseTable}_Versions",
46
                "{$baseTable}_Live",
47
            ];
48
49
            foreach ($tables as $table) {
50
                $query = DB::query("SELECT * FROM \"{$table}\" WHERE \"SlideType\" IS NULL");
51
52
                foreach ($this->yieldSingle($query) as $record) {
53
                    DB::prepared_query(
54
                        "UPDATE \"{$table}\" SET \"SlideType\" = ? WHERE \"ID\" = ?",
55
                        [$default['SlideType'], $record['ID']]
56
                    );
57
                }
58
            }
59
        }
60
    }
61
62
    /**
63
     * @param $list
64
     * @return \Generator
65
     */
66
    protected function yieldSingle($list)
67
    {
68
        foreach ($list as $item) {
69
            yield $item;
70
        }
71
    }
72
}
73