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

35 lines
835 B
PHP
Raw Normal View History

2020-12-24 23:35:39 +01:00
<?php
namespace App\Http\Controllers\API\Search;
use App\Http\Controllers\API\Controller;
use App\Models\Song;
use App\Services\SearchService;
use Illuminate\Http\Request;
use InvalidArgumentException;
class SongSearchController extends Controller
{
private $searchService;
public function __construct(SearchService $searchService)
{
$this->searchService = $searchService;
}
public function index(Request $request)
{
if (!$request->get('q')) {
throw new InvalidArgumentException('A search query is required.');
}
return [
'songs' => $this->searchService->searchSongs($request->get('q'))
->get()
->map(static function (Song $song): string {
return $song->id;
}),
];
}
}