SearchAlbumCommand::execute()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 17

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 17
ccs 0
cts 11
cp 0
rs 9.7
c 0
b 0
f 0
cc 2
nc 2
nop 2
crap 6
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: oguzu
5
 * Date: 1-4-2017
6
 * Time: 16:07
7
 */
8
9
namespace Pbxg33k\MusicInfo\Command;
10
11
12
use Pbxg33k\MusicInfo\MusicInfo;
13
use Symfony\Component\Console\Helper\Table;
14
use Symfony\Component\Console\Input\InputArgument;
15
use Symfony\Component\Console\Input\InputInterface;
16
use Symfony\Component\Console\Output\OutputInterface;
17
18
class SearchAlbumCommand extends BaseCommand
19
{
20
    const COMMAND_NAME = 'search:album';
21
22
    const COMMAND_DESCRIPTION = 'Search an album on one or more services';
23
24
    /**
25
     * @var MusicInfo
26
     */
27
    protected $musicInfo;
28
29
    protected function configure()
30
    {
31
        $this
32
            ->addArgument('album', InputArgument::REQUIRED, 'Album name')
33
            ->addArgument('service', InputArgument::OPTIONAL, 'Service to use, default to all enabled');
34
35
        parent::configure();
36
    }
37
38
    protected function execute(InputInterface $input, OutputInterface $output)
39
    {
40
        $service = ($input->getArgument('service') != '') ? $input->getArgument('service') : null;
41
42
        $searchResult = $this->musicInfo->doSearch($input->getArgument('album'), 'album', $service);
43
44
        $resultsTable = $this->generateTableForSearchResult($searchResult, [
45
            'id' => 'ID',
46
            'name' => 'Name',
47
            'type' => 'Type',
48
            'image' => 'Image',
49
            'dataSource' => 'Source'
50
        ], new Table($output));
51
52
        $resultsTable->render();
53
54
    }
55
}