<?php
declare(strict_types=1);
namespace Slivki\Controller\MobileApi\V2\Beauty\Offer;
use Nelmio\ApiDocBundle\Annotation\Model;
use OpenApi\Annotations as OA;
use Slivki\Message\Query\Beauty\Offer\GetMastersQuery;
use Slivki\Messenger\Query\QueryBusInterface;
use Slivki\Response\Beauty\Offer\MasterResponse;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
final class GetMastersAction
{
private QueryBusInterface $queryBus;
public function __construct(QueryBusInterface $queryBus)
{
$this->queryBus = $queryBus;
}
/**
* @Route("/mobile/api/v2/beauty/offer/{offerId}/masters", methods={"GET"}, name="mobile_api_v2_beauty_offer_masters_get")
* @OA\Tag(name="Beauty"),
* @OA\Response(
* response=200,
* description="Все мастера акции",
* @OA\JsonContent(
* type="array",
* description="Мастера",
* @OA\Items(ref=@Model(type=MasterResponse::class)),
* ),
* ),
*
* @OA\Parameter(
* name="offerId",
* in="path",
* description="The ID of the offer",
* @OA\Schema(type="integer", example=12345, nullable=false),
* ),
*/
public function __invoke(int $offerId): JsonResponse
{
return new JsonResponse(
$this->queryBus->handle(new GetMastersQuery($offerId)),
);
}
}