* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ declare(strict_types=1); namespace PrestaShopBundle\Controller\Admin\Configure\AdvancedParameters; use Exception; use PrestaShop\PrestaShop\Core\Domain\Shop\Query\SearchShops; use PrestaShopBundle\Controller\Admin\FrameworkBundleAdminController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Response; /** * Admin controller to manage shops. */ class ShopController extends FrameworkBundleAdminController { /** * Search for shops by query. * * @param string $searchTerm * * @return JsonResponse */ public function searchAction(string $searchTerm): JsonResponse { try { $result = []; $result['shops'] = $this->getQueryBus()->handle(new SearchShops((string) $searchTerm)); $statusCode = empty($result['shops']) ? Response::HTTP_NOT_FOUND : Response::HTTP_OK; } catch (Exception $e) { return $this->json( ['message' => $this->getErrorMessage($e)], Response::HTTP_INTERNAL_SERVER_ERROR ); } return $this->json($result['shops'], $statusCode); } /** * @param Exception $e * * @return string */ private function getErrorMessage(Exception $e): string { return $this->getFallbackErrorMessage( get_class($e), $e->getCode(), $e->getMessage() ); } }