PurgeConsumerCommand   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Test Coverage

Coverage 28.57%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 19
c 3
b 0
f 0
dl 0
loc 42
ccs 6
cts 21
cp 0.2857
rs 10
wmc 5

2 Methods

Rating   Name   Duplication   Size   Complexity  
A configure() 0 7 1
A execute() 0 25 4
1
<?php
2
3
namespace OldSound\RabbitMqBundle\Command;
4
5
use Symfony\Component\Console\Input\InputArgument;
6
use Symfony\Component\Console\Input\InputInterface;
7
use Symfony\Component\Console\Input\InputOption;
8
use Symfony\Component\Console\Output\OutputInterface;
9
use Symfony\Component\Console\Question\ConfirmationQuestion;
10
11
/**
12
 * Command to purge a queue
13
 */
14
class PurgeConsumerCommand extends ConsumerCommand
15
{
16 1
    protected function configure()
17
    {
18 1
        $this->addArgument('name', InputArgument::REQUIRED, 'Consumer Name')
19 1
             ->setDescription('Purge a consumer\'s queue')
20 1
             ->addOption('no-confirmation', null, InputOption::VALUE_NONE, 'Whether it must be confirmed before purging');
21
22 1
        $this->setName('rabbitmq:purge');
23 1
    }
24
25
    /**
26
     * @param InputInterface $input
27
     * @param OutputInterface $output
28
     *
29
     * @return int
30
     */
31
    protected function execute(InputInterface $input, OutputInterface $output)
32
    {
33
        $noConfirmation = (bool) $input->getOption('no-confirmation');
34
35
        if (!$noConfirmation && $input->isInteractive()) {
36
            $question = new ConfirmationQuestion(
37
                sprintf(
38
                    '<question>Are you sure you wish to purge "%s" queue? (y/n)</question>',
39
                    $input->getArgument('name')
0 ignored issues
show
Bug introduced by
It seems like $input->getArgument('name') can also be of type string[]; however, parameter $values of sprintf() does only seem to accept double|integer|string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

39
                    /** @scrutinizer ignore-type */ $input->getArgument('name')
Loading history...
40
                ),
41
                false
42
            );
43
44
            if (!$this->getHelper('question')->ask($input, $output, $question)) {
45
                $output->writeln('<error>Purging cancelled!</error>');
46
47
                return 1;
48
            }
49
        }
50
51
        $this->consumer = $this->getContainer()
52
            ->get(sprintf($this->getConsumerService(), $input->getArgument('name')));
53
        $this->consumer->purge($input->getArgument('name'));
0 ignored issues
show
Bug introduced by
The method purge() does not exist on null. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

53
        $this->consumer->/** @scrutinizer ignore-call */ 
54
                         purge($input->getArgument('name'));

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
54
55
        return 0;
56
    }
57
}
58