diff --git a/app/Dto/LookupDataCommand.php b/app/Dto/LookupDataCommand.php index 5949d97..9d60f2d 100644 --- a/app/Dto/LookupDataCommand.php +++ b/app/Dto/LookupDataCommand.php @@ -4,7 +4,6 @@ namespace App\Dto; use App\Concerns\HasRequestFingerprint; use App\Contracts\DataRequest; -use App\DataPipes\MapRouteParametersDataPipe; use App\Dto\Concerns\MapsRouteParameters; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Http\Resources\Json\ResourceCollection; @@ -13,12 +12,6 @@ use Spatie\LaravelData\Attributes\Validation\Min; use Spatie\LaravelData\Attributes\Validation\Numeric; use Spatie\LaravelData\Attributes\Validation\Required; use Spatie\LaravelData\Data; -use Spatie\LaravelData\DataPipeline; -use Spatie\LaravelData\DataPipes\AuthorizedDataPipe; -use Spatie\LaravelData\DataPipes\CastPropertiesDataPipe; -use Spatie\LaravelData\DataPipes\DefaultValuesDataPipe; -use Spatie\LaravelData\DataPipes\MapPropertiesDataPipe; -use Spatie\LaravelData\DataPipes\ValidatePropertiesDataPipe; /** * Base class for all requests/commands which are for looking up things by id. diff --git a/app/Features/QueryTopReviewsHandler.php b/app/Features/QueryTopReviewsHandler.php index 932cc0d..a967d99 100644 --- a/app/Features/QueryTopReviewsHandler.php +++ b/app/Features/QueryTopReviewsHandler.php @@ -7,7 +7,6 @@ use App\Enums\TopReviewsTypeEnum; use App\Support\CachedData; use Illuminate\Http\JsonResponse; use Illuminate\Support\Collection; -use Jikan\Helper\Constants; use Jikan\MyAnimeList\MalClient; use Jikan\Request\Reviews\ReviewsRequest; @@ -31,7 +30,7 @@ final class QueryTopReviewsHandler extends RequestHandlerWithScraperCache $preliminary = $requestParams->get("preliminary", true); return $this->scraperService->findList( $requestFingerPrint, - fn (MalClient $jikan, ?int $page = null) => $jikan->getReviews(new ReviewsRequest($type->value, $page, $spoilers, $preliminary)), + fn (MalClient $jikan, ?int $page = null) => $jikan->getReviews(new ReviewsRequest(ensureEnumPrimitiveValue($type), $page, $spoilers, $preliminary)), $requestParams->get("page")); } } diff --git a/app/Http/Resources/V4/ReviewsResource.php b/app/Http/Resources/V4/ReviewsResource.php index 256beb2..0bca9e0 100644 --- a/app/Http/Resources/V4/ReviewsResource.php +++ b/app/Http/Resources/V4/ReviewsResource.php @@ -3,6 +3,7 @@ namespace App\Http\Resources\V4; use Illuminate\Http\Resources\Json\JsonResource; +use OpenApi\Annotations as OA; class ReviewsResource extends JsonResource { diff --git a/app/Support/helpers.php b/app/Support/helpers.php index dc9094d..df69542 100644 --- a/app/Support/helpers.php +++ b/app/Support/helpers.php @@ -114,3 +114,12 @@ if (! function_exists('cache')) { return app('cache')->put(key($arguments[0]), reset($arguments[0]), $arguments[1] ?? null); } } + +if (!function_exists("ensureEnumPrimitiveValue")) { + function ensureEnumPrimitiveValue(int|string|bool|float|null|\Spatie\Enum\Laravel\Enum $value): mixed { + if ($value instanceof \Spatie\Enum\Laravel\Enum) { + return $value->value; + } + return $value; + } +}