EditUnitController::editAction()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 21
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 21
rs 9.3142
cc 3
eloc 12
nc 2
nop 2
1
<?php
2
/**
3
 * (c) Tomasz Kunicki <[email protected]>
4
 *
5
 * For the full copyright and license information, please view the LICENSE
6
 * file that was distributed with this source code.
7
 */
8
namespace AppBundle\Controller\Unit;
9
10
use AppBundle\Entity\Unit;
11
use Domain\Unit\UseCase\EditUnit\EditUnitRequest;
12
use Symfony\Component\HttpFoundation\Request;
13
use Domain\Unit\UseCase\EditUnit\EditUnitUseCase;
14
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
15
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
16
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
17
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
18
19
/**
20
 * Class EditUnitController
21
 *
22
 * @package AppBundle\Controller\Unit
23
 * @Route(service="unit.controller.edit_unit")
24
 */
25
class EditUnitController extends Controller
26
{
27
    /** @var  EditUnitUseCase */
28
    private $editUnitUseCase;
29
30
    /**
31
     * EditUnitController constructor.
32
     *
33
     * @param EditUnitUseCase $editUnitUseCase
34
     */
35
    public function __construct(EditUnitUseCase $editUnitUseCase)
36
    {
37
        $this->editUnitUseCase = $editUnitUseCase;
38
    }
39
40
    /**
41
     * @return \Symfony\Component\HttpFoundation\Response
42
     * @Route("/edit/{id}", name="unit_edit")
43
     * @Method({"GET", "POST"})
44
     * @ParamConverter("post", class="AppBundle:Unit")
45
     *
46
     * @param Request $request
47
     * @param Unit $unit
48
     * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response
49
     */
50
    public function editAction(Request $request, Unit $unit)
51
    {
52
        $form = $this->createForm('AppBundle\Form\Type\UnitType', $unit);
53
        $form->handleRequest($request);
54
55
        if ($form->isSubmitted() && $form->isValid()) {
56
            /** @var Unit $unit */
57
            $unit = $form->getData();
58
            $editRequest = new EditUnitRequest($unit->getId(), $unit->getName(), $unit->getShortcut());
59
            $this->editUnitUseCase->execute($editRequest);
60
61
            return $this->redirectToRoute('unit_list', array('id' => $unit->getId()));
62
        }
63
64
        return $this->render(
65
            'AppBundle:Unit:edit.html.twig',
66
            array(
67
                'form' => $form->createView()
68
            )
69
        );
70
    }
71
}
72