38 lines
1.0 KiB
PHP
38 lines
1.0 KiB
PHP
|
<?php
|
||
|
namespace ProVM\Projects\Common\Controller\API;
|
||
|
|
||
|
use Psr\Container\ContainerInterface as Container;
|
||
|
use Psr\Http\Message\RequestInterface as Request;
|
||
|
use Psr\Http\Message\ResponseInterface as Response;
|
||
|
use ProVM\Common\Define\Controller\Json;
|
||
|
use ProVM\Common\Service\Composer;
|
||
|
|
||
|
class Dependencies {
|
||
|
use Json;
|
||
|
|
||
|
public function search(Request $request, Response $response, Composer $composer): Response {
|
||
|
$get = $request->getQueryParams();
|
||
|
$query = $get['query'];
|
||
|
if (strlen($query) < 3) {
|
||
|
$output = [
|
||
|
'success' => false,
|
||
|
'results' => []
|
||
|
];
|
||
|
return $this->withJson($response, $output);
|
||
|
}
|
||
|
$results = $composer->search($query);
|
||
|
$output = [
|
||
|
'success' => (count($results) > 0),
|
||
|
'results' => []
|
||
|
];
|
||
|
foreach ($results as $result) {
|
||
|
$output['results'] []= [
|
||
|
'value' => $result->name,
|
||
|
'name' => implode(': ', (array) $result),
|
||
|
'text' => $result->name
|
||
|
];
|
||
|
}
|
||
|
return $this->withJson($response, $output);
|
||
|
}
|
||
|
}
|