vendor/ibexa/personalization/src/lib/Event/Subscriber/UserAPIRequestDefaultSourceEventSubscriber.php line 36

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. declare(strict_types=1);
  7. namespace Ibexa\Personalization\Event\Subscriber;
  8. use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
  9. use Ibexa\Personalization\Event\UpdateUserAPIEvent;
  10. use Ibexa\Personalization\Request\UserMetadataRequest;
  11. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  12. final class UserAPIRequestDefaultSourceEventSubscriber implements EventSubscriberInterface
  13. {
  14.     /** @var \Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface */
  15.     private $configResolver;
  16.     public function __construct(ConfigResolverInterface $configResolver)
  17.     {
  18.         $this->configResolver $configResolver;
  19.     }
  20.     /**
  21.      * {@inheritdoc}
  22.      */
  23.     public static function getSubscribedEvents(): array
  24.     {
  25.         return [
  26.             UpdateUserAPIEvent::class => ['onRecommendationUpdateUser'255],
  27.         ];
  28.     }
  29.     public function onRecommendationUpdateUser(UpdateUserAPIEvent $userAPIEvent): void
  30.     {
  31.         if ($userAPIEvent->getUserAPIRequest()) {
  32.             return;
  33.         }
  34.         $userAPIEvent->setUserAPIRequest(new UserMetadataRequest([
  35.             'source' => $this->configResolver->getParameter('personalization.user_api.default_source'),
  36.         ]));
  37.     }
  38. }
  39. class_alias(UserAPIRequestDefaultSourceEventSubscriber::class, 'EzSystems\EzRecommendationClient\Event\Subscriber\UserAPIRequestDefaultSourceEventSubscriber');