Completed
Push — master ( 543fe1...7ff5ba )
by diego
14:03
created

ImportCommandController::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 0
cts 1
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
3
declare(strict_types=1);
4
/**
5
 * ImportCommandController.php
6
 */
7
namespace HDNET\Importr\Command;
8
9
use HDNET\Importr\Service\Manager;
10
use Symfony\Component\Console\Command\Command;
11
use Symfony\Component\Console\Input\InputInterface;
12
use Symfony\Component\Console\Output\OutputInterface;
13
use TYPO3\CMS\Core\Messaging\FlashMessage;
14
use TYPO3\CMS\Core\Messaging\FlashMessageService;
15
use TYPO3\CMS\Core\Utility\GeneralUtility;
16
use TYPO3\CMS\Extbase\Object\ObjectManager;
17
18
/**
19
 * ImportCommandController
20
 *
21
 * For initializing the Manager
22
 */
23
class ImportCommandController extends Command
24
{
25
26
    /**
27
     * @var object|\Psr\Log\LoggerAwareInterface|\TYPO3\CMS\Core\SingletonInterface|ObjectManager
28
     */
29
    protected $objectManager;
30
31
    /**
32
     * ImportCommandController constructor.
33
     * @param string|null $name
34
     */
35
    public function __construct(string $name = null)
36
    {
37
        parent::__construct($name);
38
39
        $this->objectManager = GeneralUtility::makeInstance(ObjectManager::class);
40
    }
41
42
    protected function configure()
43
    {
44
        $this->setDescription('tbd');
45
        $this->setHelp('tbd');
46
    }
47
48
    /**
49
     * @param InputInterface $input
50
     * @param OutputInterface $output
51
     * @return int
52
     */
53
    protected function execute(InputInterface $input, OutputInterface $output)
54
    {
55
        $this->initializeServiceManagerCommand();
56
57
        return 0;
58
    }
59
60
    /**
61
     * initializes the import service manager
62
     *
63
     * @param string $mail Set an email address for error reporting
64
     *
65
     * @return bool
66
     */
67
    public function initializeServiceManagerCommand($mail = null)
0 ignored issues
show
Unused Code introduced by
The parameter $mail is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
68
    {
69
        $message = GeneralUtility::makeInstance(
70
            FlashMessage::class,
71
            '',
72
            'Initializing ServiceManager',
73
            FlashMessage::INFO,
74
            true
75
        );
76
        $this->addFlashMessage($message);
77
78
        $manager = $this->objectManager->get(Manager::class);
79
        try {
80
            // let the manager run the imports now
81
            $manager->runImports();
82
        } catch (\Exception $e) {
83
            $message = GeneralUtility::makeInstance(
84
                FlashMessage::class,
85
                '',
86
                'An Error occured: ' . $e->getCode() . ': ' . $e->getMessage(),
87
                FlashMessage::ERROR
88
            );
89
            $this->addFlashMessage($message);
90
91
            // @TODO: Send email when the manager crashes.
92
            return false;
93
        }
94
        return true;
95
    }
96
97
    /**
98
     * @param FlashMessage $flashMessage
99
     */
100
    protected function addFlashMessage(FlashMessage $flashMessage)
101
    {
102
        $flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
103
        $messageQueue = $flashMessageService->getMessageQueueByIdentifier();
104
        $messageQueue->addMessage($flashMessage);
105
    }
106
}
107