Completed
Pull Request — master (#24)
by Quentin
03:03
created

JsonFormExtensionController::handleJsonAction()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 28
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 28
rs 8.8571
cc 2
eloc 20
nc 2
nop 1
1
<?php
2
3
namespace Majora\Bundle\FrameworkExtraBundle\Tests\Functional\Bundle\TestBundle\Controller;
4
5
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
6
use Symfony\Component\HttpFoundation\Request;
7
use Symfony\Component\HttpFoundation\JsonResponse;
8
use Symfony\Component\Form\Extension\Core\Type\TextType;
9
use Symfony\Component\Form\Extension\Core\Type\FormType;
10
11
class JsonFormExtensionController extends Controller
12
{
13
    public function handleJsonAction(Request $request)
14
    {
15
        $formFactory = $this->container->get('form.factory');
16
        $form = $formFactory
17
            ->createBuilder(
18
                FormType::class,
19
                null,
20
                ['json_format' => true]
21
                )
22
            ->add('name', TextType::class)
23
            ->add('lastname', TextType::class)
24
            ->getForm();
25
26
        try {
27
            $form->handleRequest($request);
28
        } catch (\Exception $e) {
29
            return new JsonResponse([
30
                'Class' => get_class($e),
31
                'Message' => $e->getMessage(),
32
            ]);
33
        }
34
35
        return new JsonResponse([
36
            'Data' => $form->getData(),
37
            'NormData' => $form->getNormData(),
38
            'ViewData' => $form->getViewData(),
39
        ]);
40
    }
41
42
    public function handlePostAction(Request $request)
43
    {
44
        $formFactory = $this->container->get('form.factory');
45
        $form = $formFactory
46
            ->createBuilder(
47
                FormType::class
48
                )
49
            ->add('name', TextType::class)
50
            ->add('lastname', TextType::class)
51
            ->getForm();
52
53
        $form->handleRequest($request);
54
55
        return new JsonResponse([
56
            'Data' => $form->getData(),
57
            'NormData' => $form->getNormData(),
58
            'ViewData' => $form->getViewData(),
59
        ]);
60
    }
61
}
62