<?php
declare(strict_types=1);
namespace Slivki\Twig;
use Slivki\Services\BannerService;
use Slivki\Services\City\CityProvider;
use Slivki\Services\DeviceTypeService;
use Symfony\Component\HttpFoundation\RequestStack;
use Twig\Extension\RuntimeExtensionInterface;
final class GetCommentsBanners implements RuntimeExtensionInterface
{
private BannerService $bannerService;
private CityProvider $cityProvider;
private DeviceTypeService $deviceTypeService;
private RequestStack $requestStack;
public function __construct(
BannerService $bannerService,
CityProvider $cityProvider,
DeviceTypeService $deviceTypeService,
RequestStack $requestStack
) {
$this->bannerService = $bannerService;
$this->cityProvider = $cityProvider;
$this->deviceTypeService = $deviceTypeService;
$this->requestStack = $requestStack;
}
public function getCommentsBanners(): array
{
return $this->bannerService->getCommentsBanners(
$this->deviceTypeService->isMobileDevice($this->requestStack->getMainRequest()),
$this->cityProvider->getCurrentCityId(),
);
}
}