Support post URL search term in api_search()

This commit is contained in:
Hypolite Petovan 2019-12-12 17:04:59 -05:00
parent 0069bb022d
commit 5a15e6bc59

View file

@ -1507,7 +1507,9 @@ function api_search($type)
$a = \get_app(); $a = \get_app();
$user_info = api_get_user($a); $user_info = api_get_user($a);
if (api_user() === false || $user_info === false) { throw new ForbiddenException(); } if (api_user() === false || $user_info === false) {
throw new ForbiddenException();
}
if (empty($_REQUEST['q'])) { if (empty($_REQUEST['q'])) {
throw new BadRequestException('q parameter is required.'); throw new BadRequestException('q parameter is required.');
@ -1571,7 +1573,21 @@ function api_search($type)
} }
} }
$statuses = Item::selectForUser(api_user(), [], $condition, $params); $statuses = [];
if (parse_url($searchTerm, PHP_URL_SCHEME) != '') {
$id = Item::fetchByLink($searchTerm, api_user());
if (!$id) {
// Public post
$id = Item::fetchByLink($searchTerm);
}
if (!empty($id)) {
$statuses = Item::select([], ['id' => $id]);
}
}
$statuses = $statuses ?: Item::selectForUser(api_user(), [], $condition, $params);
$data['status'] = api_format_items(Item::inArray($statuses), $user_info); $data['status'] = api_format_items(Item::inArray($statuses), $user_info);