<?php
declare(strict_types=1);
namespace Slivki\Controller\OnlineOrder\GiftCertificate;
use Slivki\Controller\SiteController;
use Slivki\Message\Query\OnlineOrder\GiftCertificate\SelectGiftCertificatesForBuyOnlyCodesQuery;
use Slivki\Messenger\Query\QueryBusInterface;
use Slivki\Util\CommonUtil;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Routing\Annotation\Route;
final class SelectGiftCertificatesForBuyOnlyCodesAction extends SiteController
{
private QueryBusInterface $queryBus;
public function __construct(
KernelInterface $kernel,
QueryBusInterface $queryBus
) {
parent::__construct($kernel);
$this->queryBus = $queryBus;
}
/**
* @Route("/gift-certificate/select/{offerId}/code",
* requirements={"offerId"="\d+"},
* name="gift_certificates_for_by_only_code",
* methods={"GET"},
* ),
*/
public function __invoke(int $offerId, Request $request): Response
{
return $this->render(
CommonUtil::isMobileDevice($request) ? 'Slivki/mobile/delivery/order.html.twig' : 'Slivki/delivery/order.html.twig',
$this->queryBus->handle(new SelectGiftCertificatesForBuyOnlyCodesQuery($this->getUser(), $offerId))->jsonSerialize(),
);
}
}