Passed
Branch master (aecce8)
by Brice
05:03
created

EditTask::execute()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 11
ccs 6
cts 6
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 5
nc 1
nop 2
crap 1
1
<?php
2
3
namespace JobQueue\Application\Console;
4
5
use JobQueue\Application\Utils\CommandTrait;
6
use JobQueue\Domain\Task\Status;
7
use JobQueue\Infrastructure\ServiceContainer;
8
use Symfony\Component\Console\Command\Command;
9
use Symfony\Component\Console\Input\InputArgument;
10
use Symfony\Component\Console\Input\InputInterface;
11
use Symfony\Component\Console\Output\OutputInterface;
12
13
final class EditTask extends Command
14
{
15
    use CommandTrait;
16
17
    public function configure()
18
    {
19
        $this
20
            ->setName('edit')
21
            ->setDescription('Edit a task status')
22
            ->addArgument('identifier', InputArgument::REQUIRED, 'Task UUID identifier')
23
            ->addArgument('status', InputArgument::REQUIRED, 'The new status')
24
        ;
25
    }
26
27
    /**
28
     *
29
     * @param InputInterface $input
30
     * @param OutputInterface $output
31
     * @return int
32
     */
33 1
    protected function execute(InputInterface $input, OutputInterface $output): int
34
    {
35 1
        $queue = ServiceContainer::getInstance()->queue;
36
37 1
        $task = $queue->find($input->getArgument('identifier'));
38
39 1
        $queue->updateStatus($task, new Status($input->getArgument('status')));
40
41 1
        $this->formatTaskBlock($task, $output);
42
43 1
        return 0;
44
    }
45
}
46