mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
add v4 club search
This commit is contained in:
parent
79e84daaf3
commit
9eecad6da7
@ -3,11 +3,13 @@
|
||||
namespace App\Http\Controllers\V4DB;
|
||||
|
||||
use App\Anime;
|
||||
use App\Club;
|
||||
use App\Http\Middleware\Throttle;
|
||||
use App\Http\QueryBuilder\SearchQueryBuilderAnime;
|
||||
use App\Http\QueryBuilder\SearchQueryBuilderManga;
|
||||
use App\Http\QueryBuilder\SearchQueryBuilderUsers;
|
||||
use App\Http\Resources\V4\AnimeCollection;
|
||||
use App\Http\Resources\V4\ClubCollection;
|
||||
use App\Http\Resources\V4\MangaCollection;
|
||||
use App\Http\SearchQueryBuilder;
|
||||
use App\Manga;
|
||||
@ -143,4 +145,40 @@ class SearchController extends Controller
|
||||
|
||||
return response($this->filter($search));
|
||||
}
|
||||
|
||||
public function clubs(Request $request)
|
||||
{
|
||||
$this->request = $request;
|
||||
$page = $this->request->get('page') ?? 1;
|
||||
$limit = $this->request->get('limit') ?? self::MAX_RESULTS_PER_PAGE;
|
||||
|
||||
if (!empty($limit)) {
|
||||
$limit = (int) $limit;
|
||||
|
||||
if ($limit <= 0) {
|
||||
$limit = 1;
|
||||
}
|
||||
|
||||
if ($limit > self::MAX_RESULTS_PER_PAGE) {
|
||||
$limit = self::MAX_RESULTS_PER_PAGE;
|
||||
}
|
||||
}
|
||||
|
||||
$results = SearchQueryBuilderAnime::query(
|
||||
$request,
|
||||
Club::query()
|
||||
);
|
||||
|
||||
$results = $results
|
||||
->paginate(
|
||||
$limit,
|
||||
['*'],
|
||||
null,
|
||||
$page
|
||||
);
|
||||
|
||||
return new ClubCollection(
|
||||
$results
|
||||
);
|
||||
}
|
||||
}
|
||||
|
33
app/Http/Resources/V4/ClubCollection.php
Normal file
33
app/Http/Resources/V4/ClubCollection.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Resources\V4;
|
||||
|
||||
use Illuminate\Http\Resources\Json\ResourceCollection;
|
||||
|
||||
class ClubCollection extends ResourceCollection
|
||||
{
|
||||
|
||||
/**
|
||||
* The resource that this resource collects.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $collects = 'App\Http\Resources\V4\ClubResource';
|
||||
|
||||
/**
|
||||
* Transform the resource collection into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'data' => $this->collection,
|
||||
'links' => [
|
||||
'self' => 'link-value',
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
@ -390,6 +390,11 @@ $router->group(
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
$router->get('/clubs', [
|
||||
'uses' => 'SearchController@clubs'
|
||||
]);
|
||||
|
||||
$router->group(
|
||||
[
|
||||
'prefix' => 'clubs/{id:[0-9]+}'
|
||||
|
Loading…
x
Reference in New Issue
Block a user