Files
SAE-BUT2-backend/app/Http/Controllers/SearchController.php
T

66 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Typesense\Client;
use Exception;
class SearchController extends Controller
{
protected Client $client;
public function __construct()
{
$this->client = new Client([
'api_key' => config('typesense_api_key'),
'nodes' => [
[
'host' => config('typesense_connection'),
'port' => '8108',
'protocol' => 'http',
],
],
]);
}
public function searchEvents(Request $request)
{
try {
$query = $request->input('query', '');
return response()->json(
$this->client->collections['events']
->documents
->search([
'q' => $query,
'query_by' => 'name,description',
])
);
} catch (Exception $e) {
return response()->json([
'error' => $e->getMessage()
], 500);
}
}
public function searchUsers(Request $request)
{
try {
$query = $request->input('query', '');
return response()->json(
$this->client->collections['users']
->documents
->search([
'q' => $query,
'query_by' => 'name,lastname',
'filter_by' => 'validate:=true',
])
);
} catch (Exception $e) {
return response()->json([
'error' => $e->getMessage()
], 500);
}
}
}