src/Controller/MobileApi/V2/Beauty/Offer/GetMastersAction.php line 15

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Slivki\Controller\MobileApi\V2\Beauty\Offer;
  4. use Nelmio\ApiDocBundle\Annotation\Model;
  5. use OpenApi\Annotations as OA;
  6. use Slivki\Message\Query\Beauty\Offer\GetMastersQuery;
  7. use Slivki\Messenger\Query\QueryBusInterface;
  8. use Slivki\Response\Beauty\Offer\MasterResponse;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. final class GetMastersAction
  12. {
  13.     private QueryBusInterface $queryBus;
  14.     public function __construct(QueryBusInterface $queryBus)
  15.     {
  16.         $this->queryBus $queryBus;
  17.     }
  18.     /**
  19.      * @Route("/mobile/api/v2/beauty/offer/{offerId}/masters", methods={"GET"}, name="mobile_api_v2_beauty_offer_masters_get")
  20.      * @OA\Tag(name="Beauty"),
  21.      * @OA\Response(
  22.      *     response=200,
  23.      *     description="Все мастера акции",
  24.      *     @OA\JsonContent(
  25.      *         type="array",
  26.      *         description="Мастера",
  27.      *         @OA\Items(ref=@Model(type=MasterResponse::class)),
  28.      *     ),
  29.      * ),
  30.      *
  31.      * @OA\Parameter(
  32.      *     name="offerId",
  33.      *     in="path",
  34.      *     description="The ID of the offer",
  35.      *     @OA\Schema(type="integer", example=12345, nullable=false),
  36.      * ),
  37.      */
  38.     public function __invoke(int $offerId): JsonResponse
  39.     {
  40.         return new JsonResponse(
  41.             $this->queryBus->handle(new GetMastersQuery($offerId)),
  42.         );
  43.     }
  44. }