mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
fix some routes not refreshing cache
This commit is contained in:
parent
c3247041b9
commit
74cb6945e0
@ -81,21 +81,18 @@ class Controller extends BaseController
|
||||
|
||||
protected function isExpired($request, $results) : bool
|
||||
{
|
||||
try {
|
||||
if ($results->first()->modifiedAt === null) {
|
||||
$lastModified = $this->getLastModified($results);
|
||||
|
||||
if ($lastModified === null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$modifiedAt = (int) $results->first()->modifiedAt->toDateTime()->format('U');
|
||||
$routeName = HttpHelper::getRouteName($request);
|
||||
$expiry = (int) config("controller.{$routeName}.ttl") + $modifiedAt;
|
||||
$expiry = (int) config("controller.{$routeName}.ttl") + $lastModified;
|
||||
|
||||
if (time() > $expiry) {
|
||||
return true;
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@ -114,7 +111,7 @@ class Controller extends BaseController
|
||||
return (int) config("controller.{$routeName}.ttl");
|
||||
}
|
||||
|
||||
protected function getLastModified($results) : int
|
||||
protected function getLastModified($results) : ?int
|
||||
{
|
||||
if (is_array($results->first())) {
|
||||
return (int) $results->first()['modifiedAt']->toDateTime()->format('U');
|
||||
@ -124,7 +121,7 @@ class Controller extends BaseController
|
||||
return (int) $results->first()->modifiedAt->toDateTime()->format('U');
|
||||
}
|
||||
|
||||
throw new \Exception('Failed to get Last Modified');
|
||||
return null;
|
||||
}
|
||||
|
||||
protected function serialize($data) : array
|
||||
|
@ -69,10 +69,12 @@ class ReviewsController extends Controller
|
||||
->where('request_hash', $this->fingerprint)
|
||||
->get();
|
||||
|
||||
|
||||
if (
|
||||
$results->isEmpty()
|
||||
|| $this->isExpired($request, $results)
|
||||
) {
|
||||
|
||||
$page = $request->get('page') ?? 1;
|
||||
$anime = $this->jikan->getRecentReviews(new RecentReviewsRequest(Constants::RECENT_REVIEW_ANIME, $page));
|
||||
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
|
||||
@ -88,8 +90,8 @@ class ReviewsController extends Controller
|
||||
'request_hash' => $this->fingerprint
|
||||
];
|
||||
}
|
||||
$meta['modifiedAt'] = new UTCDateTime();
|
||||
|
||||
$meta['modifiedAt'] = new UTCDateTime();
|
||||
$response = $meta + $response;
|
||||
|
||||
if ($results->isEmpty()) {
|
||||
|
@ -229,7 +229,7 @@ $app->router->group(
|
||||
->json([
|
||||
'status' => 400,
|
||||
'type' => 'HttpException',
|
||||
'message' => 'This version is depreciated. Please check the documentation for the latest and supported versions.',
|
||||
'message' => 'This version is discontinued. Please check the documentation for supported version(s).',
|
||||
'error' => null
|
||||
], 400);
|
||||
});
|
||||
@ -246,7 +246,7 @@ $app->router->group(
|
||||
->json([
|
||||
'status' => 400,
|
||||
'type' => 'HttpException',
|
||||
'message' => 'This version is depreciated. Please check the documentation for the latest and supported versions.',
|
||||
'message' => 'This version is discontinued. Please check the documentation for supported version(s).',
|
||||
'error' => null
|
||||
], 400);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user