mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
fixed more problems
This commit is contained in:
parent
5e922f7cd9
commit
9b5b5aad1e
@ -4,8 +4,8 @@ namespace App\Dto;
|
||||
|
||||
use App\Casts\EnumCast;
|
||||
use App\Enums\AnimeForumFilterEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
@ -14,13 +14,6 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class AnimeForumLookupCommand extends LookupDataCommand
|
||||
{
|
||||
#[WithCast(EnumCast::class, AnimeForumFilterEnum::class)]
|
||||
#[WithCast(EnumCast::class, AnimeForumFilterEnum::class), EnumValidation(AnimeForumFilterEnum::class)]
|
||||
public AnimeForumFilterEnum|Optional $filter;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"filter" => [new EnumRule(AnimeForumFilterEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -4,8 +4,8 @@ namespace App\Dto;
|
||||
|
||||
use App\Casts\EnumCast;
|
||||
use App\Enums\MediaReviewsSortEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use Spatie\LaravelData\Attributes\Validation\BooleanType;
|
||||
use Spatie\LaravelData\Attributes\Validation\Min;
|
||||
use Spatie\LaravelData\Attributes\Validation\Numeric;
|
||||
@ -20,7 +20,7 @@ final class AnimeReviewsLookupCommand extends LookupDataCommand
|
||||
#[Numeric, Min(1)]
|
||||
public int|Optional $page = 1;
|
||||
|
||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class)]
|
||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class), EnumValidation(MediaReviewsSortEnum::class)]
|
||||
public MediaReviewsSortEnum|Optional $sort;
|
||||
|
||||
#[BooleanType]
|
||||
@ -28,11 +28,4 @@ final class AnimeReviewsLookupCommand extends LookupDataCommand
|
||||
|
||||
#[BooleanType]
|
||||
public bool|Optional $preliminary;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"sort" => [new EnumRule(MediaReviewsSortEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ use App\Casts\EnumCast;
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Enums\CharacterOrderByEnum;
|
||||
use App\Http\Resources\V4\CharacterCollection;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
@ -17,13 +17,7 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class CharactersSearchCommand extends SearchCommand implements DataRequest
|
||||
{
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"), WithCast(EnumCast::class, CharacterOrderByEnum::class)]
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"),
|
||||
WithCast(EnumCast::class, CharacterOrderByEnum::class), EnumValidation(CharacterOrderByEnum::class)]
|
||||
public CharacterOrderByEnum|Optional $orderBy;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"order_by" => [new EnumRule(CharacterOrderByEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ use App\Enums\ClubCategoryEnum;
|
||||
use App\Enums\ClubOrderByEnum;
|
||||
use App\Enums\ClubTypeEnum;
|
||||
use App\Http\Resources\V4\ClubCollection;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
@ -19,22 +19,13 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class ClubSearchCommand extends SearchCommand implements DataRequest
|
||||
{
|
||||
#[WithCast(EnumCast::class, ClubCategoryEnum::class)]
|
||||
#[WithCast(EnumCast::class, ClubCategoryEnum::class), EnumValidation(ClubCategoryEnum::class)]
|
||||
public ClubCategoryEnum|Optional $category;
|
||||
|
||||
#[WithCast(EnumCast::class, ClubTypeEnum::class)]
|
||||
#[WithCast(EnumCast::class, ClubTypeEnum::class), EnumValidation(ClubTypeEnum::class)]
|
||||
public ClubTypeEnum|Optional $type;
|
||||
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"), WithCast(EnumCast::class, ClubOrderByEnum::class)]
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"),
|
||||
WithCast(EnumCast::class, ClubOrderByEnum::class), EnumValidation(ClubOrderByEnum::class)]
|
||||
public ClubOrderByEnum|Optional $orderBy;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
...parent::rules(),
|
||||
"category" => [new EnumRule(ClubCategoryEnum::class)],
|
||||
"type" => [new EnumRule(ClubTypeEnum::class)],
|
||||
"order_by" => [new EnumRule(ClubOrderByEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
namespace App\Dto;
|
||||
|
||||
use App\Enums\GenreFilterEnum;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use App\Casts\EnumCast;
|
||||
use Spatie\LaravelData\Data;
|
||||
@ -11,13 +11,6 @@ use Spatie\LaravelData\Optional;
|
||||
|
||||
abstract class GenreListCommand extends Data
|
||||
{
|
||||
#[WithCast(EnumCast::class, GenreFilterEnum::class)]
|
||||
#[WithCast(EnumCast::class, GenreFilterEnum::class), EnumValidation(GenreFilterEnum::class)]
|
||||
public GenreFilterEnum|Optional $filter;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"filter" => [new EnumRule(GenreFilterEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ use App\Casts\EnumCast;
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Enums\MagazineOrderByEnum;
|
||||
use App\Http\Resources\V4\MagazineCollection;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
@ -17,13 +17,7 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class MagazineSearchCommand extends SearchCommand implements DataRequest
|
||||
{
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"), WithCast(EnumCast::class, MagazineOrderByEnum::class)]
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"),
|
||||
WithCast(EnumCast::class, MagazineOrderByEnum::class), EnumValidation(MagazineOrderByEnum::class)]
|
||||
public MagazineOrderByEnum|Optional $orderBy;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"order_by" => [new EnumRule(MagazineOrderByEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -5,8 +5,8 @@ namespace App\Dto;
|
||||
|
||||
use App\Casts\EnumCast;
|
||||
use App\Enums\MangaForumFilterEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Optional;
|
||||
|
||||
@ -15,13 +15,6 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class MangaForumLookupCommand extends LookupDataCommand
|
||||
{
|
||||
#[WithCast(EnumCast::class, MangaForumFilterEnum::class)]
|
||||
#[WithCast(EnumCast::class, MangaForumFilterEnum::class), EnumValidation(MangaForumFilterEnum::class)]
|
||||
public MangaForumFilterEnum|Optional $filter;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"filter" => [new EnumRule(MangaForumFilterEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -5,8 +5,8 @@ namespace App\Dto;
|
||||
|
||||
use App\Casts\EnumCast;
|
||||
use App\Enums\MediaReviewsSortEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use Spatie\LaravelData\Attributes\Validation\BooleanType;
|
||||
use Spatie\LaravelData\Attributes\Validation\Min;
|
||||
use Spatie\LaravelData\Attributes\Validation\Numeric;
|
||||
@ -21,7 +21,7 @@ final class MangaReviewsLookupCommand extends LookupDataCommand
|
||||
#[Numeric, Min(1)]
|
||||
public int|Optional $page = 1;
|
||||
|
||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class)]
|
||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class), EnumValidation(MediaReviewsSortEnum::class)]
|
||||
public MediaReviewsSortEnum|Optional $sort;
|
||||
|
||||
#[BooleanType]
|
||||
@ -29,11 +29,4 @@ final class MangaReviewsLookupCommand extends LookupDataCommand
|
||||
|
||||
#[BooleanType]
|
||||
public bool|Optional $preliminary;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"sort" => [new EnumRule(MediaReviewsSortEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ use App\Casts\EnumCast;
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Enums\PeopleOrderByEnum;
|
||||
use App\Http\Resources\V4\PersonCollection;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
@ -17,13 +17,7 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class PeopleSearchCommand extends SearchCommand implements DataRequest
|
||||
{
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"), WithCast(EnumCast::class, PeopleOrderByEnum::class)]
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"),
|
||||
WithCast(EnumCast::class, PeopleOrderByEnum::class), EnumValidation(PeopleOrderByEnum::class)]
|
||||
public PeopleOrderByEnum|Optional $orderBy;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"order_by" => [new EnumRule(PeopleOrderByEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ use App\Casts\EnumCast;
|
||||
use App\Contracts\DataRequest;
|
||||
use App\Enums\ProducerOrderByEnum;
|
||||
use App\Http\Resources\V4\ProducerCollection;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\MapInputName;
|
||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
@ -17,13 +17,7 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class ProducersSearchCommand extends SearchCommand implements DataRequest
|
||||
{
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"), WithCast(EnumCast::class, ProducerOrderByEnum::class)]
|
||||
#[MapInputName("order_by"), MapOutputName("order_by"),
|
||||
WithCast(EnumCast::class, ProducerOrderByEnum::class), EnumValidation(ProducerOrderByEnum::class)]
|
||||
public ProducerOrderByEnum|Optional $orderBy;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"order_by" => [new EnumRule(ProducerOrderByEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -9,11 +9,10 @@ use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameter;
|
||||
use App\Dto\Concerns\HasPageParameter;
|
||||
use App\Enums\AnimeScheduleFilterEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use Spatie\LaravelData\Attributes\Validation\BooleanType;
|
||||
use Spatie\LaravelData\Attributes\Validation\Nullable;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
@ -31,16 +30,9 @@ final class QueryAnimeSchedulesCommand extends Data implements DataRequest
|
||||
#[BooleanType]
|
||||
public bool|Optional $sfw = false;
|
||||
|
||||
#[WithCast(EnumCast::class, AnimeScheduleFilterEnum::class)]
|
||||
#[WithCast(EnumCast::class, AnimeScheduleFilterEnum::class), EnumValidation(AnimeScheduleFilterEnum::class)]
|
||||
public ?AnimeScheduleFilterEnum $filter;
|
||||
|
||||
public static function rules(...$args): array
|
||||
{
|
||||
return [
|
||||
"filter" => [new EnumRule(AnimeScheduleFilterEnum::class), new Nullable()]
|
||||
];
|
||||
}
|
||||
|
||||
/** @noinspection PhpUnused */
|
||||
public static function fromRequestAndDay(Request $request, ?string $day): self
|
||||
{
|
||||
|
@ -9,7 +9,7 @@ use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasLimitParameter;
|
||||
use App\Dto\Concerns\HasPageParameter;
|
||||
use App\Enums\AnimeTypeEnum;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
@ -19,13 +19,6 @@ abstract class QueryAnimeSeasonCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasLimitParameter, HasRequestFingerprint, HasPageParameter;
|
||||
|
||||
#[WithCast(EnumCast::class, AnimeTypeEnum::class)]
|
||||
#[WithCast(EnumCast::class, AnimeTypeEnum::class), EnumValidation(AnimeTypeEnum::class)]
|
||||
public AnimeTypeEnum|Optional $filter;
|
||||
|
||||
public static function rules(...$args): array
|
||||
{
|
||||
return [
|
||||
"filter" => [new EnumRule(AnimeTypeEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -9,10 +9,8 @@ use App\Contracts\DataRequest;
|
||||
use App\Dto\Concerns\HasPageParameter;
|
||||
use App\Enums\MediaReviewsSortEnum;
|
||||
use App\Http\Resources\V4\ResultsResource;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\Validation\BooleanType;
|
||||
use Spatie\LaravelData\Attributes\Validation\Min;
|
||||
use Spatie\LaravelData\Attributes\Validation\Numeric;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Data;
|
||||
use Spatie\LaravelData\Optional;
|
||||
@ -24,7 +22,7 @@ abstract class QueryReviewsCommand extends Data implements DataRequest
|
||||
{
|
||||
use HasRequestFingerprint, HasPageParameter;
|
||||
|
||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class)]
|
||||
#[WithCast(EnumCast::class, MediaReviewsSortEnum::class), EnumValidation(MediaReviewsSortEnum::class)]
|
||||
public MediaReviewsSortEnum|Optional $sort;
|
||||
|
||||
#[BooleanType]
|
||||
@ -32,11 +30,4 @@ abstract class QueryReviewsCommand extends Data implements DataRequest
|
||||
|
||||
#[BooleanType]
|
||||
public bool|Optional $preliminary;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"sort" => [new EnumRule(MediaReviewsSortEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ namespace App\Dto;
|
||||
use App\Casts\EnumCast;
|
||||
use App\Dto\Concerns\MapsRouteParameters;
|
||||
use App\Enums\AnimeSeasonEnum;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\LaravelData\Attributes\Validation\Between;
|
||||
use Spatie\LaravelData\Attributes\Validation\Required;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
@ -18,18 +18,10 @@ final class QuerySpecificAnimeSeasonCommand extends QueryAnimeSeasonCommand
|
||||
#[Required, Between(1000, 2999)]
|
||||
public int $year;
|
||||
|
||||
#[WithCast(EnumCast::class, AnimeSeasonEnum::class)]
|
||||
#[WithCast(EnumCast::class, AnimeSeasonEnum::class), EnumValidation(AnimeSeasonEnum::class)]
|
||||
public AnimeSeasonEnum $season;
|
||||
|
||||
private static int $defaultLimit = 30;
|
||||
|
||||
public static function rules(...$args): array
|
||||
{
|
||||
return [
|
||||
...parent::rules(...$args),
|
||||
"season" => [new EnumRule(AnimeSeasonEnum::class), new Required()]
|
||||
];
|
||||
}
|
||||
protected static int $defaultLimit = 30;
|
||||
|
||||
public static function messages(...$args): array
|
||||
{
|
||||
|
@ -7,6 +7,7 @@ use App\Contracts\DataRequest;
|
||||
use App\Enums\AnimeTypeEnum;
|
||||
use App\Enums\TopAnimeFilterEnum;
|
||||
use App\Http\Resources\V4\AnimeCollection;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Optional;
|
||||
@ -16,17 +17,9 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class QueryTopAnimeItemsCommand extends QueryTopItemsCommand implements DataRequest
|
||||
{
|
||||
#[WithCast(EnumCast::class, AnimeTypeEnum::class)]
|
||||
#[WithCast(EnumCast::class, AnimeTypeEnum::class), EnumValidation(AnimeTypeEnum::class)]
|
||||
public AnimeTypeEnum|Optional $type;
|
||||
|
||||
#[WithCast(EnumCast::class, TopAnimeFilterEnum::class)]
|
||||
#[WithCast(EnumCast::class, TopAnimeFilterEnum::class), EnumValidation(TopAnimeFilterEnum::class)]
|
||||
public TopAnimeFilterEnum|Optional $filter;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"type" => [new EnumRule(AnimeTypeEnum::class)],
|
||||
"filter" => [new EnumRule(TopAnimeFilterEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ use App\Contracts\DataRequest;
|
||||
use App\Enums\MangaTypeEnum;
|
||||
use App\Enums\TopMangaFilterEnum;
|
||||
use App\Http\Resources\V4\MangaCollection;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use Spatie\LaravelData\Attributes\WithCast;
|
||||
use Spatie\LaravelData\Optional;
|
||||
@ -16,17 +17,9 @@ use Spatie\LaravelData\Optional;
|
||||
*/
|
||||
final class QueryTopMangaItemsCommand extends QueryTopItemsCommand implements DataRequest
|
||||
{
|
||||
#[WithCast(EnumCast::class, MangaTypeEnum::class)]
|
||||
#[WithCast(EnumCast::class, MangaTypeEnum::class), EnumValidation(MangaTypeEnum::class)]
|
||||
public MangaTypeEnum|Optional $type;
|
||||
|
||||
#[WithCast(EnumCast::class, TopMangaFilterEnum::class)]
|
||||
#[WithCast(EnumCast::class, TopMangaFilterEnum::class), EnumValidation(TopMangaFilterEnum::class)]
|
||||
public TopMangaFilterEnum|Optional $filter;
|
||||
|
||||
public static function rules(): array
|
||||
{
|
||||
return [
|
||||
"type" => [new EnumRule(MangaTypeEnum::class)],
|
||||
"filter" => [new EnumRule(TopMangaFilterEnum::class)]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ namespace App\Dto;
|
||||
|
||||
use App\Casts\EnumCast;
|
||||
use App\Enums\UserHistoryTypeEnum;
|
||||
use App\Rules\Attributes\EnumValidation;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Spatie\Enum\Laravel\Rules\EnumRule;
|
||||
use Spatie\LaravelData\Attributes\Validation\Nullable;
|
||||
@ -15,13 +16,6 @@ use Spatie\LaravelData\Attributes\WithCast;
|
||||
*/
|
||||
final class UserHistoryLookupCommand extends LookupByUsernameCommand
|
||||
{
|
||||
#[WithCast(EnumCast::class, UserHistoryTypeEnum::class)]
|
||||
#[WithCast(EnumCast::class, UserHistoryTypeEnum::class), EnumValidation(UserHistoryTypeEnum::class)]
|
||||
public ?UserHistoryTypeEnum $type;
|
||||
|
||||
public static function rules(...$args): array
|
||||
{
|
||||
return [
|
||||
"type" => [new EnumRule(UserHistoryTypeEnum::class), new Nullable()]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -52,9 +52,15 @@ abstract class QueryAnimeSeasonHandlerBase implements RequestHandler
|
||||
default => throw new BadRequestException('Invalid season supplied'),
|
||||
};
|
||||
|
||||
$from = Carbon::createFromDate($year, $monthStart, 1);
|
||||
$from->setTime(0, 0);
|
||||
|
||||
$to = Carbon::createFromDate($year, $monthEnd, 1);
|
||||
$to->setTime(0, 0);
|
||||
|
||||
return [
|
||||
Carbon::createFromDate($year, $monthStart, 1),
|
||||
Carbon::createFromDate($year, $monthEnd, 1)
|
||||
$from,
|
||||
$to
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -38,10 +38,10 @@ final class QueryCurrentAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase
|
||||
$month = (int) $date->format('n');
|
||||
|
||||
return match ($month) {
|
||||
in_array($month, range(1, 3)) => [AnimeSeasonEnum::winter(), $year],
|
||||
in_array($month, range(4, 6)) => [AnimeSeasonEnum::spring(), $year],
|
||||
in_array($month, range(7, 9)) => [AnimeSeasonEnum::summer(), $year],
|
||||
in_array($month, range(10, 12)) => [AnimeSeasonEnum::fall(), $year],
|
||||
1, 2, 3 => [AnimeSeasonEnum::winter(), $year],
|
||||
4, 5, 6 => [AnimeSeasonEnum::spring(), $year],
|
||||
7, 8, 9 => [AnimeSeasonEnum::summer(), $year],
|
||||
10, 11, 12 => [AnimeSeasonEnum::fall(), $year],
|
||||
default => throw new Exception('Could not generate seasonal string'),
|
||||
};
|
||||
}
|
||||
@ -56,7 +56,7 @@ final class QueryCurrentAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase
|
||||
* @var Carbon $from
|
||||
* @var Carbon $to
|
||||
*/
|
||||
[$to, $from] = $this->getSeasonRange($year, $season);
|
||||
[$from, $to] = $this->getSeasonRange($year, $season);
|
||||
return $this->repository->getAiredBetween($from, $to, $type);
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ final class QuerySpecificAnimeSeasonHandler extends QueryAnimeSeasonHandlerBase
|
||||
* @var Carbon $from
|
||||
* @var Carbon $to
|
||||
*/
|
||||
[$to, $from] = $this->getSeasonRange($request->year, $request->season);
|
||||
[$from, $to] = $this->getSeasonRange($request->year, $request->season);
|
||||
return $this->repository->getAiredBetween($from, $to, $type);
|
||||
}
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ final class DefaultAnimeRepository extends DatabaseRepository implements AnimeRe
|
||||
|
||||
public function getAiredBetween(Carbon $from, Carbon $to, ?AnimeTypeEnum $type = null): EloquentBuilder
|
||||
{
|
||||
$queryable = $this->queryable(true)->where("aired.from", [
|
||||
$queryable = $this->queryable(true)->whereBetween("aired.from", [
|
||||
$from->toAtomString(),
|
||||
$to->modify("last day of this month")->toAtomString()
|
||||
]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user