ChooseTimer::getServicePastTimers()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 2
Bugs 1 Features 0
Metric Value
cc 2
eloc 15
c 2
b 1
f 0
nc 2
nop 1
dl 0
loc 20
ccs 0
cts 16
cp 0
crap 6
rs 9.7666
1
<?php
2
3
namespace Godbout\Alfred\Time\Menus;
4
5
use Godbout\Alfred\Time\Workflow;
6
use Godbout\Alfred\Workflow\Icon;
7
use Godbout\Alfred\Workflow\Item;
8
use Godbout\Alfred\Workflow\ScriptFilter;
9
10
class ChooseTimer extends Menu
11
{
12
    public static function scriptFilter()
13
    {
14
        $service = Workflow::serviceEnabled();
15
16
        foreach (self::getServicePastTimers($service) as $pastTimer) {
17
            ScriptFilter::add($pastTimer);
18
        }
19
20
        if (self::userInput()) {
21
            ScriptFilter::filterItems(self::userInput());
22
        }
23
    }
24
25
    private static function getServicePastTimers($service)
26
    {
27
        $pastTimers = [];
28
29
        foreach ($service->pastTimers() as $id => $pastTimer) {
30
            $pastTimers[] = Item::create()
31
                ->title($pastTimer->description)
32
                ->subtitle(self::pastTimerSubtitle($pastTimer))
33
                ->icon(Icon::create("resources/icons/$service.png"))
34
                ->arg('do')
35
                ->variable('action', 'continue')
36
                ->variable('timer_id', $pastTimer->id)
37
                ->variable('timer_description', $pastTimer->description)
38
                ->variable('timer_project_id', $pastTimer->project_id ?? '')
39
                ->variable('timer_project_name', $pastTimer->project_name ?? '')
40
                ->variable('timer_tag_id', $pastTimer->tag_id ?? '')
41
                ->variable('timer_tag', $pastTimer->tags ?? '');
42
        }
43
44
        return $pastTimers;
45
    }
46
47
    protected static function pastTimerSubtitle($pastTimer)
48
    {
49
        $projectName = $pastTimer->project_name ?? 'no project';
50
        $tags = $pastTimer->tags ?? 'no tag';
51
52
        return "$projectName, [$tags], $pastTimer->duration";
53
    }
54
}
55