AjaxOptionController   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4
Metric Value
wmc 2
lcom 1
cbo 4
dl 0
loc 21
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A listAction() 0 15 2
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