fix some routes not refreshing cache

This commit is contained in:
Irfan 2020-09-07 04:10:01 +05:00
parent c3247041b9
commit 74cb6945e0
3 changed files with 16 additions and 17 deletions

View File

@ -81,20 +81,17 @@ class Controller extends BaseController
protected function isExpired($request, $results) : bool
{
try {
if ($results->first()->modifiedAt === null) {
return true;
}
$lastModified = $this->getLastModified($results);
$modifiedAt = (int) $results->first()->modifiedAt->toDateTime()->format('U');
$routeName = HttpHelper::getRouteName($request);
$expiry = (int) config("controller.{$routeName}.ttl") + $modifiedAt;
if ($lastModified === null) {
return true;
}
if (time() > $expiry) {
return true;
}
} catch (\Exception $e) {
return false;
$routeName = HttpHelper::getRouteName($request);
$expiry = (int) config("controller.{$routeName}.ttl") + $lastModified;
if (time() > $expiry) {
return true;
}
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

View File

@ -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()) {

View File

@ -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);
});