*/ final class MangaReviewsLookupHandler extends RequestHandlerWithScraperCache { use ResolvesMediaReviewParams; public function requestClass(): string { return MangaReviewsLookupCommand::class; } protected function resource(CachedData $results): JsonResource { return new ReviewsResource($results); } protected function getScraperData(string $requestFingerPrint, Collection $requestParams): CachedData { $reviewRequestParams = $this->getReviewRequestParams($requestParams); // import array members as variables into the current scope's symbol table extract($reviewRequestParams); return $this->scraperService->findList( $requestFingerPrint, fn(MalClient $jikan, ?int $page = null) => $jikan->getMangaReviews(new MangaReviewsRequest( $id, $page, $sort, $spoilers, $preliminary )), $requestParams->get("page", 1) ); } }