add v4 club search

This commit is contained in:
Irfan 2020-07-11 11:53:22 +05:00
parent 79e84daaf3
commit 9eecad6da7
3 changed files with 76 additions and 0 deletions

View File

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

View 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',
],
];
}
}

View File

@ -390,6 +390,11 @@ $router->group(
}
);
$router->get('/clubs', [
'uses' => 'SearchController@clubs'
]);
$router->group(
[
'prefix' => 'clubs/{id:[0-9]+}'