<?php
declare(strict_types=1);
namespace Slivki\Controller\MobileApi\V2\GiftCertificate;
use Slivki\Message\Query\GiftCertificate\GetGiftCertificateCategoriesQuery;
use Slivki\Messenger\Query\QueryBusInterface;
use OpenApi\Annotations as OA;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
final class GetGiftCertificateCategoriesAction
{
private QueryBusInterface $queryBus;
public function __construct(QueryBusInterface $queryBus)
{
$this->queryBus = $queryBus;
}
/**
* @Route("/mobile/api/v2/offer/{offerId}/gift-certificate/categories", methods={"GET"}, name="mobile_api_v2_offer_gift_certificate_categories_get")
* @OA\Tag(name="GiftCertificate")
* @OA\Response(
* response=200,
* description="Cписок категорий",
* @OA\Schema(
* @OA\Property(property="id", type="integer", description="ID категории"),
* @OA\Property(property="count", type="integer", description="Количество акций в категории"),
* @OA\Property(property="name", type="string", description="Название категории"),
* )
* )
*/
public function __invoke(int $offerId): JsonResponse
{
return new JsonResponse(
$this->queryBus->handle(
new GetGiftCertificateCategoriesQuery($offerId),
),
);
}
}