acquia_dam-1.0.0-rc1/src/Controller/AcquiaDamCategoriesController.php
src/Controller/AcquiaDamCategoriesController.php
<?php namespace Drupal\acquia_dam\Controller; use Drupal\acquia_dam\Client\AcquiaDamClientFactory; use Drupal\Core\DependencyInjection\ContainerInjectionInterface; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; /** * Returns widen category information. */ class AcquiaDamCategoriesController implements ContainerInjectionInterface { /** * DAM client factory. * * @var \Drupal\acquia_dam\Client\AcquiaDamClientFactory */ protected $damClientFactory; /** * Constructs a new AcquiaDamCategoriesController. * * @param \Drupal\acquia_dam\Client\AcquiaDamClientFactory $clientFactory * DAM Client factory. */ public function __construct(AcquiaDamClientFactory $clientFactory) { $this->damClientFactory = $clientFactory; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('acquia_dam.client.factory') ); } /** * Returns DAM category information. * * @param \Symfony\Component\HttpFoundation\Request $request * Request. * * @return \Symfony\Component\HttpFoundation\JsonResponse * Json response with category data. * * @throws \Drupal\acquia_dam\Exception\DamClientException */ public function getCategory(Request $request): JsonResponse { $client = $this->damClientFactory->getUserClient(); $category_path = $request->query->get('category', ''); if (!is_string($category_path)) { $category_path = ''; } try { $response = $client->getCategories($category_path); } catch (\Exception $exception) { $response = []; } return new JsonResponse($response); } }