code quality improvements

This commit is contained in:
Irfan 2020-09-07 04:40:46 +05:00
parent 74cb6945e0
commit 31ef9a2b36
12 changed files with 79 additions and 1219 deletions

View File

@ -172,35 +172,7 @@ class AnimeController extends Controller
$anime = $this->jikan->getAnimeCharactersAndStaff(new AnimeCharactersAndStaffRequest($id));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new AnimeCharactersResource(
@ -254,35 +226,7 @@ class AnimeController extends Controller
$anime = $this->jikan->getAnimeCharactersAndStaff(new AnimeCharactersAndStaffRequest($id));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new AnimeStaffResource(
@ -343,35 +287,7 @@ class AnimeController extends Controller
$anime = $this->jikan->getAnimeEpisode(new AnimeEpisodeRequest($id, $episodeId));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new AnimeEpisodeResource(
@ -495,35 +411,7 @@ class AnimeController extends Controller
$anime = $this->jikan->getAnimeEpisodes(new AnimeEpisodesRequest($id, $page));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -591,35 +479,7 @@ class AnimeController extends Controller
$anime = $this->jikan->getNewsList(new AnimeNewsRequest($id, $page));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -679,35 +539,7 @@ class AnimeController extends Controller
$anime = ['topics' => $this->jikan->getAnimeForum(new AnimeForumRequest($id, $topic))];
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ForumResource(
@ -760,35 +592,7 @@ class AnimeController extends Controller
$anime = $this->jikan->getAnimeVideos(new AnimeVideosRequest($id));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new AnimeVideosResource(
@ -863,35 +667,7 @@ class AnimeController extends Controller
$anime = ['pictures' => $this->jikan->getAnimePictures(new AnimePicturesRequest($id))];
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new PicturesResource(
@ -944,35 +720,7 @@ class AnimeController extends Controller
$anime = $this->jikan->getAnimeStats(new AnimeStatsRequest($id));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new AnimeStatisticsResource(
@ -1025,35 +773,7 @@ class AnimeController extends Controller
$anime = ['moreinfo' => $this->jikan->getAnimeMoreInfo(new AnimeMoreInfoRequest($id))];
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new MoreInfoResource(
@ -1106,35 +826,7 @@ class AnimeController extends Controller
$anime = ['recommendations' => $this->jikan->getAnimeRecommendations(new AnimeRecommendationsRequest($id))];
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new RecommendationsResource(
@ -1190,35 +882,7 @@ class AnimeController extends Controller
$anime = ['users' => $this->jikan->getAnimeRecentlyUpdatedByUsers(new AnimeRecentlyUpdatedByUsersRequest($id, $page))];
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new UserUpdatesResource(
@ -1274,35 +938,7 @@ class AnimeController extends Controller
$anime = ['reviews' => $this->jikan->getAnimeReviews(new AnimeReviewsRequest($id, $page))];
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ReviewsResource(

View File

@ -162,35 +162,7 @@ class CharacterController extends Controller
$character = ['pictures' => $this->jikan->getCharacterPictures(new CharacterPicturesRequest($id))];
$response = \json_decode($this->serializer->serialize($character, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new PicturesResource(

View File

@ -177,35 +177,7 @@ class ClubController extends Controller
$anime = ['results' => $this->jikan->getClubUsers(new UserListRequest($id, $page))];
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(

View File

@ -5,9 +5,11 @@ namespace App\Http\Controllers\V4DB;
use App\Http\HttpHelper;
use App\Providers\SerializerFactory;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Jikan\MyAnimeList\MalClient;
use JMS\Serializer\Serializer;
use Laravel\Lumen\Routing\Controller as BaseController;
use MongoDB\BSON\UTCDateTime;
/**
* Class Controller
@ -158,6 +160,41 @@ class Controller extends BaseController
);
}
protected function updateCache($request, $results, $response)
{
// If resource doesn't exist, prepare meta
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
// Update `modifiedAt` meta
$meta['modifiedAt'] = new UTCDateTime();
// join meta data with response
$response = $meta + $response;
// insert cache if resource doesn't exist
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
// update cache if resource exists
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
// return results
return DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
}
/**
* @param array $response
* @return array

View File

@ -158,35 +158,7 @@ class MangaController extends Controller
$manga = ['characters' => $this->jikan->getMangaCharacters(new MangaCharactersRequest($id))];
$response = \json_decode($this->serializer->serialize($manga, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new MangaCharactersResource(
@ -243,35 +215,7 @@ class MangaController extends Controller
$manga = $this->jikan->getNewsList(new MangaNewsRequest($id, $page));
$response = \json_decode($this->serializer->serialize($manga, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -318,35 +262,7 @@ class MangaController extends Controller
$manga = ['topics' => $this->jikan->getMangaForum(new MangaForumRequest($id))];
$response = \json_decode($this->serializer->serialize($manga, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ForumResource(
@ -413,35 +329,7 @@ class MangaController extends Controller
$manga = ['pictures' => $this->jikan->getMangaPictures(new MangaPicturesRequest($id))];
$response = \json_decode($this->serializer->serialize($manga, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new PicturesResource(
@ -487,35 +375,7 @@ class MangaController extends Controller
$manga = $this->jikan->getMangaStats(new MangaStatsRequest($id));
$response = \json_decode($this->serializer->serialize($manga, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new MangaStatisticsResource(
@ -561,35 +421,7 @@ class MangaController extends Controller
$manga = ['moreinfo' => $this->jikan->getMangaMoreInfo(new MangaMoreInfoRequest($id))];
$response = \json_decode($this->serializer->serialize($manga, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new MoreInfoResource(
@ -635,35 +467,7 @@ class MangaController extends Controller
$manga = ['recommendations' => $this->jikan->getMangaRecommendations(new MangaRecommendationsRequest($id))];
$response = \json_decode($this->serializer->serialize($manga, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new RecommendationsResource(
@ -710,35 +514,7 @@ class MangaController extends Controller
$manga = ['users' => $this->jikan->getMangaRecentlyUpdatedByUsers(new MangaRecentlyUpdatedByUsersRequest($id, $page))];
$response = \json_decode($this->serializer->serialize($manga, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new UserUpdatesResource(
@ -785,35 +561,7 @@ class MangaController extends Controller
$manga = ['reviews' => $this->jikan->getMangaReviews(new MangaReviewsRequest($id, $page))];
$response = \json_decode($this->serializer->serialize($manga, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ReviewsResource(

View File

@ -351,35 +351,7 @@ class PersonController extends Controller
$person = ['pictures' => $this->jikan->getPersonPictures(new PersonPicturesRequest($id))];
$response = \json_decode($this->serializer->serialize($person, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new PicturesResource(

View File

@ -84,35 +84,7 @@ class RecommendationsController extends Controller
$anime = $this->jikan->getRecentRecommendations(new RecentRecommendationsRequest(Constants::RECENT_RECOMMENDATION_ANIME, $page));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -171,35 +143,7 @@ class RecommendationsController extends Controller
$anime = $this->jikan->getRecentRecommendations(new RecentRecommendationsRequest(Constants::RECENT_RECOMMENDATION_MANGA, $page));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(

View File

@ -74,40 +74,11 @@ class ReviewsController extends Controller
$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);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -185,35 +156,7 @@ class ReviewsController extends Controller
$anime = $this->jikan->getRecentReviews(new RecentReviewsRequest(Constants::RECENT_REVIEW_MANGA, $page));
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(

View File

@ -572,35 +572,7 @@ class SearchController extends Controller
);
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -666,35 +638,7 @@ class SearchController extends Controller
$anime = ['results'=>$this->jikan->getUsernameById(new UsernameByIdRequest($id))];
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(

View File

@ -342,35 +342,7 @@ class TopController extends Controller
);
$response = \json_decode($this->serializer->serialize($data, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(

View File

@ -140,35 +140,7 @@ class UserController extends Controller
$data = ['history'=>$this->jikan->getUserHistory(new UserHistoryRequest($username, $type))];
$response = \json_decode($this->serializer->serialize($data, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ProfileHistoryResource(
@ -257,35 +229,7 @@ class UserController extends Controller
$data = $this->jikan->getUserFriends(new UserFriendsRequest($username, $page));
$response = \json_decode($this->serializer->serialize($data, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -437,35 +381,7 @@ class UserController extends Controller
$data = $this->jikan->getUserReviews(new UserReviewsRequest($username, $page));
$response = \json_decode($this->serializer->serialize($data, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -511,35 +427,7 @@ class UserController extends Controller
$data = $this->jikan->getUserRecommendations(new UserRecommendationsRequest($username, $page));
$response = \json_decode($this->serializer->serialize($data, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -613,35 +501,7 @@ class UserController extends Controller
$data = ['results' => $this->jikan->getUserClubs(new UserClubsRequest($username))];
$response = \json_decode($this->serializer->serialize($data, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -668,35 +528,7 @@ class UserController extends Controller
$data = ['results'=>$this->jikan->getRecentOnlineUsers(new RecentlyOnlineUsersRequest())];
$response = \json_decode($this->serializer->serialize($data, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(

View File

@ -160,35 +160,7 @@ class WatchController extends Controller
$items = $this->jikan->getRecentEpisodes(new RecentEpisodesRequest());
$response = \json_decode($this->serializer->serialize($items, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -232,35 +204,7 @@ class WatchController extends Controller
$items = $this->jikan->getPopularEpisodes(new PopularEpisodesRequest());
$response = \json_decode($this->serializer->serialize($items, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -403,35 +347,7 @@ class WatchController extends Controller
$items = $this->jikan->getRecentPromotionalVideos(new RecentPromotionalVideosRequest($page));
$response = \json_decode($this->serializer->serialize($items, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(
@ -475,35 +391,7 @@ class WatchController extends Controller
$items = $this->jikan->getPopularPromotionalVideos(new PopularPromotionalVideosRequest());
$response = \json_decode($this->serializer->serialize($items, 'json'), true);
if (HttpHelper::hasError($response)) {
return HttpResponse::notFound($request);
}
if ($results->isEmpty()) {
$meta = [
'createdAt' => new UTCDateTime(),
'modifiedAt' => new UTCDateTime(),
'request_hash' => $this->fingerprint
];
}
$meta['modifiedAt'] = new UTCDateTime();
$response = $meta + $response;
if ($results->isEmpty()) {
DB::table($this->getRouteTable($request))
->insert($response);
}
if ($this->isExpired($request, $results)) {
DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->update($response);
}
$results = DB::table($this->getRouteTable($request))
->where('request_hash', $this->fingerprint)
->get();
$results = $this->updateCache($request, $results, $response);
}
$response = (new ResultsResource(