diff --git a/rest/index.php b/rest/index.php index e50adffb7350ab5fce7e4d4bd0b74b329bcd653a..a7857d68923b9f28c8a91e66b6254cf86f375af4 100755 --- a/rest/index.php +++ b/rest/index.php @@ -87,6 +87,7 @@ $app->get('/autocomplete/entities', \SrcCore\controllers\AutoCompleteController: $app->get('/autocomplete/statuses', \SrcCore\controllers\AutoCompleteController::class . ':getStatuses'); $app->get('/autocomplete/banAddresses', \SrcCore\controllers\AutoCompleteController::class . ':getBanAddresses'); $app->get('/autocomplete/folders', \SrcCore\controllers\AutoCompleteController::class . ':getFolders'); +$app->get('/autocomplete/tags', \SrcCore\controllers\AutoCompleteController::class . ':getTags'); //Baskets $app->get('/baskets', \Basket\controllers\BasketController::class . ':get'); diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php index 037ea29543ca85e9369ad524948ca55f410acc51..8d8960d7e84245e6fa55e101801f6d4124ff0441 100755 --- a/src/core/controllers/AutoCompleteController.php +++ b/src/core/controllers/AutoCompleteController.php @@ -27,6 +27,7 @@ use SrcCore\models\DatabaseModel; use SrcCore\models\TextFormatModel; use SrcCore\models\ValidatorModel; use Status\models\StatusModel; +use Tag\models\TagModel; use User\models\UserModel; use Folder\models\FolderModel; use Folder\controllers\FolderController; @@ -704,4 +705,39 @@ class AutoCompleteController }; return $response->withJson(array_map($getFomatedFolders, $selectedFolders)); } + + public static function getTags(Request $request, Response $response) + { + $data = $request->getQueryParams(); + $check = Validator::stringType()->notEmpty()->validate($data['search']); + if (!$check) { + return $response->withStatus(400)->withJson(['errors' => 'Bad Request']); + } + + $requestData = AutoCompleteController::getDataForRequest([ + 'search' => $data['search'], + 'fields' => '(tag_label ilike ?)', + 'where' => ['1 = ?'], + 'data' => ['1'], + 'fieldsNumber' => 1, + ]); + + $tags = TagModel::get([ + 'select' => ['tag_id', 'tag_label'], + 'where' => $requestData['where'], + 'data' => $requestData['data'], + 'orderBy' => ['tag_label'], + 'limit' => self::LIMIT + ]); + + $data = []; + foreach ($tags as $value) { + $data[] = [ + 'id' => $value['tag_id'], + 'idToDisplay' => $value['tag_label'] + ]; + } + + return $response->withJson($data); + } }