koel/app/Http/Controllers/API/Search/ExcerptSearchController.php

36 lines
907 B
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers\API\Search;
use App\Http\Controllers\API\Controller;
use App\Services\SearchService;
use Illuminate\Http\Request;
2020-12-24 22:35:39 +00:00
use InvalidArgumentException;
class ExcerptSearchController extends Controller
{
2021-06-05 10:47:56 +00:00
private SearchService $searchService;
2020-12-24 12:41:18 +00:00
public function __construct(SearchService $searchService)
{
$this->searchService = $searchService;
}
public function index(Request $request)
{
if (!$request->get('q')) {
2020-12-24 22:35:39 +00:00
throw new InvalidArgumentException('A search query is required.');
}
$count = (int) $request->get('count', SearchService::DEFAULT_EXCERPT_RESULT_COUNT);
if ($count < 0) {
throw new InvalidArgumentException('Invalid count parameter.');
}
return [
'results' => $this->searchService->excerptSearch($request->get('q'), $count),
];
}
}