diff --git a/app/Contracts/AnimeRepository.php b/app/Contracts/AnimeRepository.php index c9dca83..c0d734a 100644 --- a/app/Contracts/AnimeRepository.php +++ b/app/Contracts/AnimeRepository.php @@ -43,8 +43,7 @@ interface AnimeRepository extends Repository Carbon $from, Carbon $to, ?AnimeTypeEnum $type = null, - ?AnimeSeasonEnum $season = null, - ?int $year = null + ?string $premiered = null ): EloquentBuilder; public function getUpcomingSeasonItems(?AnimeTypeEnum $type = null): EloquentBuilder; diff --git a/app/Features/QueryAnimeSeasonHandlerBase.php b/app/Features/QueryAnimeSeasonHandlerBase.php index b4627b9..df06552 100644 --- a/app/Features/QueryAnimeSeasonHandlerBase.php +++ b/app/Features/QueryAnimeSeasonHandlerBase.php @@ -51,7 +51,7 @@ abstract class QueryAnimeSeasonHandlerBase implements RequestHandler * @param ?AnimeTypeEnum $type * @return Builder */ - protected abstract function getSeasonItems($request, ?AnimeTypeEnum $type, ?AnimeSeasonEnum $season, ?int $year): Builder; + protected abstract function getSeasonItems($request, ?AnimeTypeEnum $type): Builder; protected function getSeasonRange(int $year, AnimeSeasonEnum $season): array { diff --git a/app/Features/QueryCurrentAnimeSeasonHandler.php b/app/Features/QueryCurrentAnimeSeasonHandler.php index f4f2d42..da7d427 100644 --- a/app/Features/QueryCurrentAnimeSeasonHandler.php +++ b/app/Features/QueryCurrentAnimeSeasonHandler.php @@ -44,7 +44,7 @@ final class QueryCurrentAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase /** * @throws Exception */ - protected function getSeasonItems($request, ?AnimeTypeEnum $type, ?AnimeSeasonEnum $season, ?int $year): Builder + protected function getSeasonItems($request, ?AnimeTypeEnum $type): Builder { [$season, $year] = $this->getCurrentSeason(); /** @@ -52,6 +52,8 @@ final class QueryCurrentAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase * @var Carbon $to */ [$from, $to] = $this->getSeasonRange($year, $season); - return $this->repository->getAiredBetween($from, $to, $type, $season, $year); + $premiered = ucfirst($season)." {$year}"; + + return $this->repository->getAiredBetween($from, $to, $type, $premiered); } } diff --git a/app/Features/QuerySpecificAnimeSeasonHandler.php b/app/Features/QuerySpecificAnimeSeasonHandler.php index ed731b8..f133c30 100644 --- a/app/Features/QuerySpecificAnimeSeasonHandler.php +++ b/app/Features/QuerySpecificAnimeSeasonHandler.php @@ -19,7 +19,7 @@ final class QuerySpecificAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase return QuerySpecificAnimeSeasonCommand::class; } - protected function getSeasonItems($request, ?AnimeTypeEnum $type, ?AnimeSeasonEnum $season, ?int $year): Builder + protected function getSeasonItems($request, ?AnimeTypeEnum $type): Builder { /** * @var Carbon $from @@ -27,8 +27,9 @@ final class QuerySpecificAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase */ [$from, $to] = $this->getSeasonRange($request->year, $request->season); + $premiered = ucfirst($request->season)." {$request->year}"; - return $this->repository->getAiredBetween($from, $to, $type, $request->season, $request->year); + return $this->repository->getAiredBetween($from, $to, $type, $premiered); // ->where("status", "!=", AnimeStatusEnum::upcoming()->label); } } diff --git a/app/Features/QueryUpcomingAnimeSeasonHandler.php b/app/Features/QueryUpcomingAnimeSeasonHandler.php index 7086e9f..b39583a 100644 --- a/app/Features/QueryUpcomingAnimeSeasonHandler.php +++ b/app/Features/QueryUpcomingAnimeSeasonHandler.php @@ -17,7 +17,7 @@ final class QueryUpcomingAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase return QueryUpcomingAnimeSeasonCommand::class; } - protected function getSeasonItems($request, ?AnimeTypeEnum $type, ?AnimeSeasonEnum $season, ?int $year): Builder + protected function getSeasonItems($request, ?AnimeTypeEnum $type): Builder { return $this->repository->getUpcomingSeasonItems($type); } diff --git a/app/Repositories/DefaultAnimeRepository.php b/app/Repositories/DefaultAnimeRepository.php index 3c1937d..d7eb401 100644 --- a/app/Repositories/DefaultAnimeRepository.php +++ b/app/Repositories/DefaultAnimeRepository.php @@ -117,8 +117,7 @@ final class DefaultAnimeRepository extends DatabaseRepository implements AnimeRe Carbon $from, Carbon $to, ?AnimeTypeEnum $type = null, - ?AnimeSeasonEnum $season = null, - ?int $year = null + ?string $premiered = null ): EloquentBuilder { // $queryable = $this->queryable(true)->whereBetween("aired.from", [ @@ -129,8 +128,7 @@ final class DefaultAnimeRepository extends DatabaseRepository implements AnimeRe /** @noinspection PhpParamsInspection */ $queryable = $this->queryable(true); - if (!is_null($season) && !is_null($year)) { - $premiered = ucfirst($season)." {$year}"; + if ($premiered !== null) { $queryable = $this->queryable() ->where("premiered", null) ->orWhere("premiered", $premiered); @@ -152,8 +150,7 @@ final class DefaultAnimeRepository extends DatabaseRepository implements AnimeRe } public function getUpcomingSeasonItems( - ?AnimeTypeEnum $type = null, - ?AnimeSeasonEnum $specificSeason = null + ?AnimeTypeEnum $type = null ): EloquentBuilder { $queryable = $this->queryable(true)->where("status", AnimeStatusEnum::upcoming()->label);