AjaxOptionController::listAction()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 15
rs 9.4285
cc 2
eloc 8
nc 2
nop 1
1
<?php
2
3
namespace Pim\Bundle\CustomEntityBundle\Controller;
4
5
use Pim\Bundle\UIBundle\Controller\AjaxOptionController as BaseAjaxOptionController;
6
use Pim\Component\ReferenceData\Repository\ReferenceDataRepositoryInterface;
7
use Symfony\Component\HttpFoundation\JsonResponse;
8
use Symfony\Component\HttpFoundation\Request;
9
10
/**
11
 * Overridden because the data locale is not taken into account in the AjaxOptionController
12
 *
13
 * @author Romain Monceau <[email protected]>
14
 */
15
class AjaxOptionController extends BaseAjaxOptionController
16
{
17
    /**
18
     * {@inheritdoc}
19
     */
20
    public function listAction(Request $request)
21
    {
22
        $query = $request->query;
23
        $repository = $this->doctrine->getRepository($query->get('class'));
24
25
        if ($repository instanceof ReferenceDataRepositoryInterface) {
26
            $options = $query->get('options', []) + ['dataLocale' => $query->get('dataLocale')];
27
28
            $choices = ['results' => $repository->findBySearch($query->get('search'), $options)];
29
30
            return new JsonResponse($choices);
31
        }
32
33
        return parent::listAction($request);
34
    }
35
}
36