PIMS/app/Modules/Movies/Http/Controllers/Browse/MoviesIndexController.php

30 lines
1.2 KiB
PHP
Raw Permalink Normal View History

2025-12-07 03:49:26 +00:00
<?php
namespace App\Modules\Movies\Http\Controllers\Browse;
use App\Http\Controllers\Controller;
use App\Modules\Movies\Services\Contracts\ListMoviesServiceInterface;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class MoviesIndexController extends Controller
{
public function __invoke(Request $request, ListMoviesServiceInterface $service): JsonResponse
{
$paginator = $service->list([
'q' => $request->string('q')->toString(),
'per_page' => $request->integer('per_page', 20),
'sort' => $request->string('sort')->toString() ?: 'title_asc',
'genre' => $request->string('genre')->toString(),
'rating' => $request->string('rating')->toString(),
'year_min' => $request->has('year_min') ? $request->integer('year_min') : null,
'year_max' => $request->has('year_max') ? $request->integer('year_max') : null,
'actor' => $request->string('actor')->toString(),
'director' => $request->string('director')->toString(),
'studio' => $request->string('studio')->toString(),
]);
return response()->json($paginator);
}
}