<?php
namespace App\Controller\Website\Mybiz\Tv;
use App\Repository\ReplayRepository;
use App\Service\Authorization\MybizRequestAuthorizationChecker;
use App\Service\Authorization\MybizRequestJwtChecker;
use App\Service\Feature\Planning\PlanningDtoProvider;
use App\Service\Feature\Replay\ReplayCategoryDtoBuilder;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class TvApiController extends AbstractController
{
/**
* @Route("/v1/tv/planning", methods={"GET"}, name="api_tv_planning", options={"expose": "true"})
*/
public function planning(
Request $request,
MybizRequestJwtChecker $mybizRequestJwtChecker,
MybizRequestAuthorizationChecker $mybizRequestAuthorizationChecker,
PlanningDtoProvider $planningDtoProvider
): Response
{
try {
$member = $mybizRequestJwtChecker->checkJwt($request);
} catch (\Throwable $e) {
return $mybizRequestJwtChecker->getUnknownJWTErrorMessage();
}
try {
$planningDto = $planningDtoProvider->getPlanningForCurrentWeek($member);
} catch (\Throwable $e) {
return $mybizRequestAuthorizationChecker->getParseErrorMessage($e);
}
return $this->json($planningDto->toArray());
}
/**
* @Route("/v1/tv/replays", methods={"GET"}, name="api_tv_replays", options={"expose": "true"})
*/
public function replays(
Request $request,
MybizRequestJwtChecker $mybizRequestJwtChecker,
ReplayRepository $replayRepository
): Response
{
try {
$mybizRequestJwtChecker->checkJwt($request);
} catch (\Throwable $e) {
return $mybizRequestJwtChecker->getUnknownJWTErrorMessage();
}
$replays = $replayRepository->findReplays();
$replayCategoriesDtos = ReplayCategoryDtoBuilder::buildReplayCategoriesDtos($replays);
return $this->json($replayCategoriesDtos);
}
}