AutoCompleteController.php in Pardot Integration 2.x
Namespace
Drupal\pardot\ControllerFile
src/Controller/AutoCompleteController.phpView source
<?php
namespace Drupal\pardot\Controller;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Drupal\Component\Utility\Xss;
/**
* Class AutoCompleteController.
*/
class AutoCompleteController extends ControllerBase {
/**
* Drupal\typed_data\DataFetcherInterface definition.
*
* @var \Drupal\typed_data\DataFetcherInterface
*/
protected $typedDataDataFetcher;
/**
* Entity field manager to get the contact form field definitions.
*
* @var \Drupal\Core\Entity\EntityTypeManager
*/
protected $entityTypeManager;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
$instance = parent::create($container);
$instance->typedDataDataFetcher = $container
->get('typed_data.data_fetcher');
$instance->entityTypeManager = $container
->get('entity_type.manager');
return $instance;
}
public function handleAutocomplete(Request $request, $entity_id) {
$input = $request->query
->get('q');
// // Right now we only need to worry about utilizing contact_message.
$entity = \Drupal::entityTypeManager()
->getStorage('contact_message')
->create([
'contact_form' => $entity_id,
]);
$entity_definition = $entity
->getTypedData()
->getDataDefinition();
$fetched_data = $this->typedDataDataFetcher
->autocompletePropertyPath([
'contact_message' => $entity_definition,
], $input);
return new JsonResponse($fetched_data);
}
}
Classes
Name | Description |
---|---|
AutoCompleteController | Class AutoCompleteController. |