mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
adds unapproved
, kids
, sfw
to remaining seasons, schedules endpoints
This commit is contained in:
parent
6d5930fbc0
commit
d5f3b0904d
@ -10,6 +10,7 @@ use App\Dto\Concerns\HasKidsParameter;
|
||||
use App\Dto\Concerns\HasLimitParameter;
|
||||
use App\Dto\Concerns\HasPageParameter;
|
||||
use App\Dto\Concerns\HasSfwParameter;
|
||||
use App\Dto\Concerns\HasUnapprovedParameter;
|
||||
use App\Enums\AnimeTypeEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
@ -19,7 +20,7 @@ use Spatie\LaravelData\Optional;
|
||||
|
||||
abstract class QueryAnimeSeasonCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasSfwParameter, HasKidsParameter, HasLimitParameter, HasRequestFingerprint, HasPageParameter;
|
||||
use HasSfwParameter, HasKidsParameter, HasUnapprovedParameter, HasLimitParameter, HasRequestFingerprint, HasPageParameter;
|
||||
|
||||
#[WithCast(EnumCast::class, AnimeTypeEnum::class), EnumValidation(AnimeTypeEnum::class)]
|
||||
public AnimeTypeEnum|Optional $filter;
|
||||
|
@ -3,6 +3,9 @@
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Casts\EnumCast;
|
||||
use App\Dto\Concerns\HasKidsParameter;
|
||||
use App\Dto\Concerns\HasSfwParameter;
|
||||
use App\Dto\Concerns\HasUnapprovedParameter;
|
||||
use App\Dto\Concerns\MapsRouteParameters;
|
||||
use App\Enums\AnimeSeasonEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
@ -13,7 +16,7 @@ use Spatie\LaravelData\Attributes\WithCast;
|
||||
|
||||
final class QuerySpecificAnimeSeasonCommand extends QueryAnimeSeasonCommand
|
||||
{
|
||||
use MapsRouteParameters;
|
||||
use MapsRouteParameters, HasSfwParameter, HasKidsParameter, HasUnapprovedParameter;
|
||||
|
||||
#[Required, Between(1000, 2999)]
|
||||
public int $year;
|
||||
|
@ -30,6 +30,6 @@ final class QuerySpecificAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase
|
||||
*/
|
||||
|
||||
[$from, $to] = $this->getSeasonRange($request->year, $request->season);
|
||||
return $this->repository->getAiredBetween($from, $to, $type, $request->kids, $request->sfw);
|
||||
return $this->repository->getAiredBetween($from, $to, $type, $request->kids, $request->sfw, $request->unapproved);
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,6 @@ final class QueryUpcomingAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase
|
||||
|
||||
protected function getSeasonItems($request, ?AnimeTypeEnum $type): Builder
|
||||
{
|
||||
return $this->repository->getUpcomingSeasonItems($type);
|
||||
return $this->repository->getUpcomingSeasonItems($type, $request->kids, $request->sfw, $request->unapproved);
|
||||
}
|
||||
}
|
||||
|
@ -87,8 +87,8 @@ final class DefaultAnimeRepository extends DatabaseRepository implements AnimeRe
|
||||
|
||||
public function getCurrentlyAiring(
|
||||
?AnimeScheduleFilterEnum $filter = null,
|
||||
bool $kids = false,
|
||||
bool $sfw = false,
|
||||
?bool $kids = false,
|
||||
?bool $sfw = false,
|
||||
?bool $unapproved = false
|
||||
): EloquentBuilder
|
||||
{
|
||||
@ -144,6 +144,10 @@ final class DefaultAnimeRepository extends DatabaseRepository implements AnimeRe
|
||||
$queryable = $queryable->where("type", $type->label);
|
||||
}
|
||||
|
||||
if (!$unapproved) {
|
||||
$this->excludeUnapprovedItems($queryable);
|
||||
}
|
||||
|
||||
if (!$kids) {
|
||||
$this->excludeKidsItems($queryable);
|
||||
}
|
||||
@ -157,8 +161,9 @@ final class DefaultAnimeRepository extends DatabaseRepository implements AnimeRe
|
||||
|
||||
public function getUpcomingSeasonItems(
|
||||
?AnimeTypeEnum $type = null,
|
||||
bool $kids = false,
|
||||
bool $sfw = false
|
||||
?bool $kids = false,
|
||||
?bool $sfw = false,
|
||||
?bool $unapproved = false
|
||||
): EloquentBuilder
|
||||
{
|
||||
$queryable = $this->queryable(true)->where("status", AnimeStatusEnum::upcoming()->label);
|
||||
@ -167,6 +172,18 @@ final class DefaultAnimeRepository extends DatabaseRepository implements AnimeRe
|
||||
$queryable = $queryable->where("type", $type->label);
|
||||
}
|
||||
|
||||
if (!$unapproved) {
|
||||
$this->excludeUnapprovedItems($queryable);
|
||||
}
|
||||
|
||||
if (!$kids) {
|
||||
$this->excludeKidsItems($queryable);
|
||||
}
|
||||
|
||||
if ($sfw) {
|
||||
$this->excludeNsfwItems($queryable);
|
||||
}
|
||||
|
||||
return $queryable->orderBy("members", "desc");
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user