wip-feat: dispatches monitor commands for episodes, seasons, & shows
This commit is contained in:
@@ -3,11 +3,18 @@
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Download\Action\Command\MonitorMovieCommand;
|
||||
use App\Download\Action\Handler\AddMovieMonitorHandler;
|
||||
use App\Download\Action\Command\MonitorTvSeasonCommand;
|
||||
use App\Download\Action\Command\MonitorTvShowCommand;
|
||||
use App\Download\Action\Handler\MonitorMovieHandler;
|
||||
use App\Download\Action\Input\AddMovieMonitorInput;
|
||||
use App\Download\Action\Handler\MonitorTvSeasonHandler;
|
||||
use App\Download\Action\Handler\MonitorTvShowHandler;
|
||||
use App\Download\Action\Input\DownloadMediaInput;
|
||||
use App\Download\Framework\Entity\Monitor;
|
||||
use App\Download\Framework\Repository\DownloadRepository;
|
||||
use App\Download\Framework\Repository\MonitorRepository;
|
||||
use App\Download\Service\MediaFiles;
|
||||
use DateTimeImmutable;
|
||||
use Nihilarr\PTN;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Messenger\MessageBusInterface;
|
||||
@@ -18,13 +25,28 @@ class DownloadController extends AbstractController
|
||||
public function __construct(
|
||||
private DownloadRepository $downloadRepository,
|
||||
private MessageBusInterface $bus,
|
||||
private readonly MonitorRepository $monitorRepository,
|
||||
) {}
|
||||
|
||||
#[Route('/test', name: 'app_test')]
|
||||
public function test(
|
||||
MonitorMovieHandler $handler,
|
||||
MonitorTvShowHandler $handler,
|
||||
) {
|
||||
$command = new MonitorMovieCommand(41);
|
||||
$monitor = (new Monitor())
|
||||
->setUser($this->getUser())
|
||||
->setTmdbId('95396')
|
||||
->setImdbId('tt11280740')
|
||||
->setTitle('Severance')
|
||||
->setMonitorType('tvshow')
|
||||
->setSeason(1)
|
||||
->setEpisode(null)
|
||||
->setCreatedAt(new DateTimeImmutable())
|
||||
->setSearchCount(0)
|
||||
->setStatus('New');
|
||||
$this->monitorRepository->getEntityManager()->persist($monitor);
|
||||
$this->monitorRepository->getEntityManager()->flush();
|
||||
|
||||
$command = new MonitorTvShowCommand($monitor->getId());
|
||||
$handler->handle($command);
|
||||
return $this->json([
|
||||
'status' => 200,
|
||||
@@ -53,16 +75,4 @@ class DownloadController extends AbstractController
|
||||
|
||||
return $this->json(['status' => 200, 'message' => 'Added to Queue']);
|
||||
}
|
||||
|
||||
#[Route('/monitor/movies/{tmdbId}/{imdbId}/{title}', name: 'app_add_movie_monitor', methods: ['GET', 'POST'])]
|
||||
public function addMonitor(
|
||||
AddMovieMonitorInput $input,
|
||||
AddMovieMonitorHandler $handler,
|
||||
) {
|
||||
$handler->handle($input->toCommand());
|
||||
return $this->json([
|
||||
'status' => 200,
|
||||
'message' => $input
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user