Files
torsearch/src/Torrentio/Action/Handler/GetTvShowOptionsHandler.php

35 lines
1.1 KiB
PHP

<?php
namespace App\Torrentio\Action\Handler;
use App\Tmdb\Tmdb;
use App\Torrentio\Action\Command\GetTvShowOptionsCommand;
use App\Torrentio\Action\Result\GetTvShowOptionsResult;
use App\Torrentio\Client\Torrentio;
use OneToMany\RichBundle\Contract\CommandInterface;
use OneToMany\RichBundle\Contract\HandlerInterface;
use OneToMany\RichBundle\Contract\ResultInterface;
/** @implements HandlerInterface<GetTvShowOptionsCommand, GetTvShowOptionsResult> */
class GetTvShowOptionsHandler implements HandlerInterface
{
public function __construct(
private readonly Tmdb $tmdb,
private readonly Torrentio $torrentio,
) {}
public function handle(CommandInterface $command): ResultInterface
{
return new GetTvShowOptionsResult(
media: $this->tmdb->episodeDetails($command->tmdbId, $command->season, $command->episode),
season: $command->season,
episode: $command->episode,
results: $this->torrentio->fetchEpisodeResults(
$command->imdbId,
$command->season,
$command->episode,
)
);
}
}