From 30cb37cda5e347bca8634c8222d90ef136a3b833 Mon Sep 17 00:00:00 2001 From: Pierre Rudloff Date: Tue, 19 Dec 2017 14:20:32 +0100 Subject: [PATCH 1/3] Implement saved_searches/list API --- doc/api.md | 7 ++++++- include/api.php | 30 ++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/doc/api.md b/doc/api.md index d756e81a4..3a2740764 100644 --- a/doc/api.md +++ b/doc/api.md @@ -615,6 +615,12 @@ This is an alias for `search`. --- +### saved_searches/list (*; AUTH) + +This call does not have any parameter. + +--- + ### users/search (*) #### Parameters @@ -1234,7 +1240,6 @@ The following API calls from the Twitter API are not implemented in either Frien * lists/subscriptions * lists/members/destroy_all * lists/ownerships -* saved_searches/list * saved_searches/show/:id * saved_searches/create * saved_searches/destroy/:id diff --git a/include/api.php b/include/api.php index a7853ed32..659f23b58 100644 --- a/include/api.php +++ b/include/api.php @@ -5490,6 +5490,36 @@ function api_friendica_profile_show($type) } api_register_func('api/friendica/profile/show', 'api_friendica_profile_show', true, API_METHOD_GET); +/** + * Returns a list of saved searches. + * + * @see https://developer.twitter.com/en/docs/accounts-and-users/manage-account-settings/api-reference/get-saved_searches-list + * + * @param string $type Return format: json or xml + * + * @return string|array + * @throws UnauthorizedException + */ +function api_saved_searches_list($type) +{ + $terms = dba::select('search', array('id', 'term'), array('uid' => local_user())); + + $result = array(); + while ($term = $terms->fetch()) { + $result[] = array( + 'name' => $term['term'], + 'query' => $term['term'], + 'id_str' => $term['id'], + 'id' => intval($term['id']) + ); + } + + return api_format_data("terms", $type, array('terms' => $result)); +} + +/// @TODO move to top of file or somwhere better +api_register_func('api/saved_searches/list', 'api_saved_searches_list', true); + /* @TODO Maybe open to implement? To.Do: From e44da4a49825ed575e0168e8d2f5644c14bbc524 Mon Sep 17 00:00:00 2001 From: Pierre Rudloff Date: Tue, 19 Dec 2017 14:42:13 +0100 Subject: [PATCH 2/3] Close DB connection in api_saved_searches_list --- include/api.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/api.php b/include/api.php index 659f23b58..13c652feb 100644 --- a/include/api.php +++ b/include/api.php @@ -5514,6 +5514,8 @@ function api_saved_searches_list($type) ); } + dba::close($terms); + return api_format_data("terms", $type, array('terms' => $result)); } From 890cda11ed2d4bfe88773df09238132b4e1894b5 Mon Sep 17 00:00:00 2001 From: Pierre Rudloff Date: Tue, 19 Dec 2017 14:52:46 +0100 Subject: [PATCH 3/3] Only use "@throws" in phpdoc if the function explicitely throws an exception --- include/api.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/include/api.php b/include/api.php index 13c652feb..07c83f862 100644 --- a/include/api.php +++ b/include/api.php @@ -1525,8 +1525,7 @@ api_register_func('api/users/search', 'api_users_search'); * @param string $type Return format: json or xml * * @return array|string - * @throws UnauthorizedException - * @throws NotFoundException + * @throws NotFoundException if the results are empty. */ function api_users_lookup($type) { @@ -1558,8 +1557,7 @@ api_register_func('api/users/lookup', 'api_users_lookup', true); * @param string $type Return format: json, xml, atom, rss * * @return array|string - * @throws UnauthorizedException - * @throws BadRequestException + * @throws BadRequestException if the "q" parameter is missing. */ function api_search($type) { @@ -3263,7 +3261,6 @@ api_register_func('api/statuses/followers', 'api_statuses_followers', true); * @param string $type Either "json" or "xml" * * @return boolean|string|array - * @throws UnauthorizedException */ function api_blocks_list($type) { @@ -3285,7 +3282,6 @@ api_register_func('api/blocks/list', 'api_blocks_list', true); * @param string $type Either "json" or "xml" * * @return boolean|string|array - * @throws UnauthorizedException */ function api_friendships_incoming($type) { @@ -5498,7 +5494,6 @@ api_register_func('api/friendica/profile/show', 'api_friendica_profile_show', tr * @param string $type Return format: json or xml * * @return string|array - * @throws UnauthorizedException */ function api_saved_searches_list($type) {