27 lines
837 B
PHP
27 lines
837 B
PHP
<?php
|
|
|
|
namespace App\Modules\Movies\Http\Controllers\Browse\Entities;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Modules\Movies\Services\Contracts\GetGenreWithMoviesServiceInterface;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class GenreShowController extends Controller
|
|
{
|
|
public function __invoke(string $genre, Request $request, GetGenreWithMoviesServiceInterface $service): JsonResponse
|
|
{
|
|
$id = (int) $genre;
|
|
$result = $service->handle($id, [
|
|
'q' => $request->string('q')->toString(),
|
|
'per_page' => $request->integer('per_page', 20),
|
|
'sort' => $request->string('sort')->toString() ?: 'title_asc',
|
|
]);
|
|
|
|
return response()->json([
|
|
'entity' => $result['entity'],
|
|
'movies' => $result['movies'],
|
|
]);
|
|
}
|
|
}
|