* @extends RequestHandlerWithScraperCache */ abstract class QueryReviewsHandler extends RequestHandlerWithScraperCache { use ResolvesMediaReviewParams; protected abstract function reviewType(): ReviewTypeEnum; protected function getScraperData(string $requestFingerPrint, Collection $requestParams): CachedData { $reviewRequestParams = $this->getReviewRequestParams($requestParams); extract($reviewRequestParams); return $this->scraperService->findList( $requestFingerPrint, fn(MalClient $jikan, ?int $page = null) => $jikan->getReviews( new ReviewsRequest( $this->reviewType()->value, $page, $sort, $spoilers, $preliminary ) ) ); } }