mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
add v4 User Reviews
This commit is contained in:
parent
59855bb316
commit
1070405950
@ -7,7 +7,9 @@ use App\Http\HttpHelper;
|
||||
use App\Http\HttpResponse;
|
||||
use App\Http\Resources\V4\AnimeCharactersResource;
|
||||
use App\Http\Resources\V4\CommonResource;
|
||||
use App\Http\Resources\V4\ProfileFriendsResource;
|
||||
use App\Http\Resources\V4\ProfileHistoryResource;
|
||||
use App\Http\Resources\V4\ResultsResource;
|
||||
use App\Profile;
|
||||
use App\User;
|
||||
use Illuminate\Http\Request;
|
||||
@ -100,8 +102,8 @@ class UserController extends Controller
|
||||
$results->isEmpty()
|
||||
|| $this->isExpired($request, $results)
|
||||
) {
|
||||
$anime = ['history'=>$this->jikan->getUserHistory(new UserHistoryRequest($username, $type))];
|
||||
$response = \json_decode($this->serializer->serialize($anime, 'json'), true);
|
||||
$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);
|
||||
@ -145,10 +147,60 @@ class UserController extends Controller
|
||||
);
|
||||
}
|
||||
|
||||
public function friends(string $username, int $page = 1)
|
||||
public function friends(Request $request, string $username)
|
||||
{
|
||||
$person = ['friends' => $this->jikan->getUserFriends(new UserFriendsRequest($username, $page))];
|
||||
return response($this->serializer->serialize($person, 'json'));
|
||||
$results = DB::table($this->getRouteTable($request))
|
||||
->where('request_hash', $this->fingerprint)
|
||||
->get();
|
||||
|
||||
if (
|
||||
$results->isEmpty()
|
||||
|| $this->isExpired($request, $results)
|
||||
) {
|
||||
$page = $request->get('page') ?? 1;
|
||||
$data = ['results' => $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();
|
||||
}
|
||||
|
||||
$response = (new ResultsResource(
|
||||
$results->first()
|
||||
))->response();
|
||||
|
||||
return $this->prepareResponse(
|
||||
$response,
|
||||
$results,
|
||||
$request
|
||||
);
|
||||
}
|
||||
|
||||
public function animelist(string $username, ?string $status = null, int $page = 1)
|
||||
@ -201,14 +253,60 @@ class UserController extends Controller
|
||||
);
|
||||
}
|
||||
|
||||
public function reviews(string $username)
|
||||
public function reviews(Request $request, string $username)
|
||||
{
|
||||
$page = $_GET['page'] ?? 1;
|
||||
$results = $this->jikan->getUserReviews(
|
||||
new UserReviewsRequest($username, $page)
|
||||
);
|
||||
$results = DB::table($this->getRouteTable($request))
|
||||
->where('request_hash', $this->fingerprint)
|
||||
->get();
|
||||
|
||||
return response($this->serializer->serialize($results, 'json'));
|
||||
if (
|
||||
$results->isEmpty()
|
||||
|| $this->isExpired($request, $results)
|
||||
) {
|
||||
$page = $request->get('page') ?? 1;
|
||||
$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();
|
||||
}
|
||||
|
||||
$response = (new ResultsResource(
|
||||
$results->first()
|
||||
))->response();
|
||||
|
||||
return $this->prepareResponse(
|
||||
$response,
|
||||
$results,
|
||||
$request
|
||||
);
|
||||
}
|
||||
|
||||
public function recommendations(string $username)
|
||||
|
@ -14,7 +14,7 @@
|
||||
"flipbox/lumen-generator": "^6",
|
||||
"illuminate/redis": "^7",
|
||||
"jenssegers/mongodb": "^4.0",
|
||||
"jikan-me/jikan": "v3.0.0-alpha.10",
|
||||
"jikan-me/jikan": "v3.0.0-alpha.11",
|
||||
"jms/serializer": "^1.13",
|
||||
"laravel/lumen-framework": "^7.0",
|
||||
"league/flysystem": "^1.0",
|
||||
|
12
composer.lock
generated
12
composer.lock
generated
@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "1ed69715f37c5e76091e7f4b6d4edb89",
|
||||
"content-hash": "52dd02eaea856c122867837a03d27c77",
|
||||
"packages": [
|
||||
{
|
||||
"name": "brick/math",
|
||||
@ -2210,16 +2210,16 @@
|
||||
},
|
||||
{
|
||||
"name": "jikan-me/jikan",
|
||||
"version": "v3.0.0-alpha.10",
|
||||
"version": "v3.0.0-alpha.11",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jikan-me/jikan.git",
|
||||
"reference": "0d1a587ab092e729f277860347b9fd371177fd0d"
|
||||
"reference": "303b43aba67a35f2fe23731140cb4a7733ac03a6"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/jikan-me/jikan/zipball/0d1a587ab092e729f277860347b9fd371177fd0d",
|
||||
"reference": "0d1a587ab092e729f277860347b9fd371177fd0d",
|
||||
"url": "https://api.github.com/repos/jikan-me/jikan/zipball/303b43aba67a35f2fe23731140cb4a7733ac03a6",
|
||||
"reference": "303b43aba67a35f2fe23731140cb4a7733ac03a6",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -2257,7 +2257,7 @@
|
||||
}
|
||||
],
|
||||
"description": "Jikan is an unofficial MyAnimeList API",
|
||||
"time": "2020-07-11T07:32:17+00:00"
|
||||
"time": "2020-07-12T07:50:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "jms/metadata",
|
||||
|
Loading…
x
Reference in New Issue
Block a user