src/Lms/UserInterface/Rest/Controller/TechnologyController.php line 33

Open in your IDE?
  1. <?php
  2. namespace CodersLab\Lms\UserInterface\Rest\Controller;
  3. use CodersLab\Lms\Modules\Courses\Application\Query\TechnologyFilter;
  4. use CodersLab\Lms\Modules\Courses\Application\Query\TechnologyQuery;
  5. use CodersLab\Lms\SharedKernel\Application\Response\LmsApiResponse;
  6. use Nelmio\ApiDocBundle\Annotation\Model;
  7. use OpenApi\Annotations as OA;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. /**
  10.  * @OA\Tag(name="Technology")
  11.  */
  12. final class TechnologyController
  13. {
  14.     private TechnologyQuery $technologyQuery;
  15.     public function __construct(TechnologyQuery $technologyQuery)
  16.     {
  17.         $this->technologyQuery $technologyQuery;
  18.     }
  19.     /**
  20.      * @Route("/technology/{technologyId}/versions", name="technology_version_list", methods={"GET"})
  21.      * @OA\Parameter(name="technologyId", in="path", @OA\Schema(type="string"))
  22.      * @OA\Response(
  23.      *     response=200,
  24.      *     description="Technology version list",
  25.      *     @OA\Schema(ref=@Model(type="CodersLab\Lms\Modules\Courses\Application\Query\Model\Technology"))
  26.      * )
  27.      */
  28.     public function getVersions(string $technologyId): LmsApiResponse
  29.     {
  30.         $filter = new TechnologyFilter($technologyId);
  31.         $list $this->technologyQuery->getVersions($filter);
  32.         return new LmsApiResponse($list);
  33.     }
  34. }