Completed
Push — master ( dfa392...375d71 )
by
unknown
13:09
created

CreateLanguageCommand   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 7

Importance

Changes 0
Metric Value
dl 0
loc 58
rs 10
c 0
b 0
f 0
wmc 3
lcom 2
cbo 7

3 Methods

Rating   Name   Duplication   Size   Complexity  
A configure() 0 14 1
A initialize() 0 9 1
A execute() 0 15 1
1
<?php
2
3
/**
4
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
5
 * @license For full copyright and license information view LICENSE file distributed with this source code.
6
 */
7
namespace EzSystems\PlatformBehatBundle\Command;
8
9
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
10
use Symfony\Component\Console\Input\InputArgument;
11
use Symfony\Component\Console\Input\InputInterface;
12
use Symfony\Component\Console\Output\OutputInterface;
13
14
class CreateLanguageCommand extends ContainerAwareCommand
15
{
16
    /**
17
     * @var \eZ\Publish\API\Repository\LanguageService
18
     */
19
    private $languageService;
20
21
    /**
22
     * @var \eZ\Publish\API\Repository\UserService
23
     */
24
    private $userService;
25
26
    /**
27
     * @var \eZ\Publish\API\Repository\PermissionResolver
28
     */
29
    private $permissionResolver;
30
31
    protected function configure()
32
    {
33
        $this
34
            ->setName('ez:behat:create-language')
35
            ->setDescription('Create a Language')
36
            ->addArgument('language-code', InputArgument::REQUIRED)
37
            ->addArgument('language-name', InputArgument::OPTIONAL, 'Language name', '')
38
            ->addArgument(
39
                'user',
40
                InputArgument::OPTIONAL,
41
                'eZ Platform User with access to content / translations',
42
                'admin'
43
            );
44
    }
45
46
    protected function initialize(InputInterface $input, OutputInterface $output)
47
    {
48
        parent::initialize($input, $output);
49
50
        $repository = $this->getContainer()->get('ezpublish.api.repository');
51
        $this->languageService = $repository->getContentLanguageService();
52
        $this->permissionResolver = $repository->getPermissionResolver();
53
        $this->userService = $repository->getUserService();
54
    }
55
56
    protected function execute(InputInterface $input, OutputInterface $output)
57
    {
58
        // set user with proper permissions to create language (content / translations)
59
        $this->permissionResolver->setCurrentUserReference(
60
            $this->userService->loadUserByLogin(
61
                $input->getArgument('user')
62
            )
63
        );
64
65
        $languageCreateStruct = $this->languageService->newLanguageCreateStruct();
66
        $languageCreateStruct->languageCode = $input->getArgument('language-code');
67
        $languageCreateStruct->name = $input->getArgument('language-name');
68
69
        $this->languageService->createLanguage($languageCreateStruct);
70
    }
71
}
72