|
2 | 2 |
|
3 | 3 | namespace Hackzilla\Bundle\TicketBundle\Command; |
4 | 4 |
|
5 | | -use Doctrine\ORM\EntityManagerInterface; |
6 | | -use Hackzilla\Bundle\TicketBundle\Entity\Ticket; |
7 | 5 | use Hackzilla\Bundle\TicketBundle\Entity\TicketMessage; |
8 | | -use Hackzilla\Bundle\TicketBundle\Manager\TicketManagerInterface; |
9 | | -use Hackzilla\Bundle\TicketBundle\Manager\UserManagerInterface; |
10 | | -use Symfony\Component\Console\Command\Command; |
| 6 | +use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; |
11 | 7 | use Symfony\Component\Console\Input\InputArgument; |
12 | 8 | use Symfony\Component\Console\Input\InputInterface; |
13 | 9 | use Symfony\Component\Console\Input\InputOption; |
14 | 10 | use Symfony\Component\Console\Output\OutputInterface; |
15 | | -use Symfony\Component\DependencyInjection\ContainerInterface; |
16 | | -use Symfony\Component\Translation\TranslatorInterface; |
17 | 11 |
|
18 | | -class AutoClosingCommand extends Command |
| 12 | +class AutoClosingCommand extends ContainerAwareCommand |
19 | 13 | { |
20 | 14 | protected static $defaultName = 'ticket:autoclosing'; |
21 | 15 |
|
22 | | - /** |
23 | | - * @var TicketManagerInterface |
24 | | - */ |
25 | | - private $ticketManager; |
26 | | - |
27 | | - /** |
28 | | - * @var UserManagerInterface |
29 | | - */ |
30 | | - private $userManager; |
31 | | - |
32 | | - /** |
33 | | - * @var EntityManagerInterface |
34 | | - */ |
35 | | - private $entityManager; |
36 | | - |
37 | | - /** |
38 | | - * @var string |
39 | | - */ |
40 | | - private $locale = 'en'; |
41 | | - |
42 | | - /** |
43 | | - * @var TranslatorInterface |
44 | | - */ |
45 | | - private $translator; |
46 | | - |
47 | | - /** |
48 | | - * BC: Replace 5th argument with "Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface" after bumping to "symfony/dependency-injection:^4.1". |
49 | | - */ |
50 | | - public function __construct(TicketManagerInterface $ticketManager, UserManagerInterface $userManager, EntityManagerInterface $entityManager, TranslatorInterface $translator, ContainerInterface $container) |
51 | | - { |
52 | | - parent::__construct(); |
53 | | - |
54 | | - $this->ticketManager = $ticketManager; |
55 | | - $this->userManager = $userManager; |
56 | | - $this->entityManager = $entityManager; |
57 | | - $this->translator = $translator; |
58 | | - if ($container->hasParameter('locale')) { |
59 | | - $this->locale = $container->getParameter('locale'); |
60 | | - } |
61 | | - } |
62 | | - |
63 | 16 | /** |
64 | 17 | * {@inheritdoc} |
65 | 18 | */ |
@@ -88,26 +41,30 @@ protected function configure() |
88 | 41 | */ |
89 | 42 | protected function execute(InputInterface $input, OutputInterface $output) |
90 | 43 | { |
91 | | - $ticketRepository = $this->entityManager->getRepository(Ticket::class); |
| 44 | + $ticket_manager = $this->getContainer()->get('hackzilla_ticket.ticket_manager'); |
| 45 | + $userManager = $this->getContainer()->get('fos_user.user_manager'); |
| 46 | + $ticketRepository = $this->getContainer()->get('doctrine')->getRepository('HackzillaTicketBundle:Ticket'); |
92 | 47 |
|
93 | | - $this->translator->setLocale($this->locale); |
| 48 | + $locale = $this->getContainer()->getParameter('locale') ? $this->getContainer()->getParameter('locale') : 'en'; |
| 49 | + $translator = $this->getContainer()->get('translator'); |
| 50 | + $translator->setLocale($locale); |
94 | 51 |
|
95 | 52 | $username = $input->getArgument('username'); |
96 | 53 |
|
97 | 54 | $resolved_tickets = $ticketRepository->getResolvedTicketOlderThan($input->getOption('age')); |
98 | 55 |
|
99 | 56 | foreach ($resolved_tickets as $ticket) { |
100 | | - $message = $this->ticketManager->createMessage() |
| 57 | + $message = $ticket_manager->createMessage() |
101 | 58 | ->setMessage( |
102 | | - $this->translator->trans('MESSAGE_STATUS_CHANGED', ['%status%' => $this->translator->trans('STATUS_CLOSED')]) |
| 59 | + $translator->trans('MESSAGE_STATUS_CHANGED', ['%status%' => $translator->trans('STATUS_CLOSED')]) |
103 | 60 | ) |
104 | 61 | ->setStatus(TicketMessage::STATUS_CLOSED) |
105 | 62 | ->setPriority($ticket->getPriority()) |
106 | | - ->setUser($this->userManager->findUserByUsername($username)) |
| 63 | + ->setUser($userManager->findUserByUsername($username)) |
107 | 64 | ->setTicket($ticket); |
108 | 65 |
|
109 | 66 | $ticket->setStatus(TicketMessage::STATUS_CLOSED); |
110 | | - $this->ticketManager->updateTicket($ticket, $message); |
| 67 | + $ticket_manager->updateTicket($ticket, $message); |
111 | 68 |
|
112 | 69 | $output->writeln('The ticket "'.$ticket->getSubject().'" has been closed.'); |
113 | 70 | } |
|
0 commit comments