Licitator 1.0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.3 KiB

5 years ago
  1. <?php
  2. namespace Zitec\RuleEngineBundle\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  4. use Symfony\Component\HttpFoundation\JsonResponse;
  5. use Symfony\Component\HttpFoundation\Request;
  6. /**
  7. * Class DefaultController
  8. */
  9. class DefaultController extends Controller
  10. {
  11. /**
  12. * Action for the autocomplete call used in the Autocomplete widget type in the RuleBuilder javascript component.
  13. *
  14. * @param Request $request
  15. * @return JsonResponse
  16. * @throws \Exception
  17. */
  18. public function autocompleteAction(Request $request)
  19. {
  20. $dataSourceKey = $request->get('key');
  21. $queryMode = $request->get('mode');
  22. $queryString = $request->get('q');
  23. switch ($queryMode) {
  24. case 'like':
  25. $page = $request->get('page');
  26. $results = $this->get('rule_engine.autocomplete')
  27. ->getSuggestions($dataSourceKey, $queryString, $page);
  28. break;
  29. case 'label':
  30. $results = $this->get('rule_engine.autocomplete')
  31. ->getLabels($dataSourceKey, $queryString);
  32. break;
  33. default:
  34. throw new \Exception('Invalid query mode.');
  35. }
  36. return new JsonResponse($results);
  37. }
  38. }