From 878c81683c4ca8a53cb881677215dd017301f212 Mon Sep 17 00:00:00 2001 From: Howo <drov.fr@protonmail.com> Date: Mon, 27 Jan 2025 00:04:53 +0000 Subject: [PATCH] Update list_subscribers to order by name instead of by id --- .../bridge_api_list_subscribers.sql | 23 ++++++++++--------- .../hive-165317_last_abit.pat.json | 8 ++++++- .../hive-165317_last_alice.pat.json | 14 ++++++++++- .../hive-165317_last_gtg.pat.json | 20 +--------------- ...pat.json => hive-186669_last_gtg.pat.json} | 4 ++-- ....yaml => hive-186669_last_gtg.tavern.yaml} | 2 +- .../list_subscribers/paginated.pat.json | 8 +------ .../paginated_limit_1.pat.json | 8 +++---- 8 files changed, 41 insertions(+), 46 deletions(-) rename tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/{hive-186669_last_roadscape.pat.json => hive-186669_last_gtg.pat.json} (76%) rename tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/{hive-186669_last_roadscape.tavern.yaml => hive-186669_last_gtg.tavern.yaml} (90%) diff --git a/hive/db/sql_scripts/postgrest/bridge_api/bridge_api_list_subscribers.sql b/hive/db/sql_scripts/postgrest/bridge_api/bridge_api_list_subscribers.sql index 2c5a233ea..ec735b483 100644 --- a/hive/db/sql_scripts/postgrest/bridge_api/bridge_api_list_subscribers.sql +++ b/hive/db/sql_scripts/postgrest/bridge_api/bridge_api_list_subscribers.sql @@ -8,7 +8,7 @@ $$ DECLARE _community_id INT; _community TEXT; - _subscription_id INT; + _last_name TEXT; _limit INTEGER := 100; BEGIN _params = hivemind_postgrest_utilities.validate_json_arguments(_params, '{"community": "string", "last": "string", "limit": "number"}', 1, '{"community": "given community name is not valid"}'); @@ -17,13 +17,14 @@ BEGIN _community = hivemind_postgrest_utilities.valid_community(_community); _community_id = hivemind_postgrest_utilities.find_community_id(_community, True); - _subscription_id = - hivemind_postgrest_utilities.find_subscription_id( - hivemind_postgrest_utilities.valid_account( - hivemind_postgrest_utilities.parse_argument_from_json(_params, 'last', False), - True), - _community, - True); + _last_name = hivemind_postgrest_utilities.valid_account( + hivemind_postgrest_utilities.parse_argument_from_json(_params, 'last', False), + True + ); + + IF _last_name IS NOT NULL THEN + PERFORM hivemind_postgrest_utilities.find_subscription_id(_last_name, _community, True); -- Check that account exists and is subscribed to the community + END IF; _limit = hivemind_postgrest_utilities.parse_integer_argument_from_json(_params, 'limit', False); _limit = hivemind_postgrest_utilities.valid_number(_limit, 100, 1, 100, 'limit'); @@ -40,7 +41,8 @@ BEGIN LEFT JOIN hivemind_app.hive_roles hr ON hs.account_id = hr.account_id AND hs.community_id = hr.community_id JOIN hivemind_app.hive_accounts ha ON hs.account_id = ha.id - WHERE hs.community_id = _community_id AND (_subscription_id = 0 OR (hs.id < _subscription_id)) + WHERE hs.community_id = _community_id + AND (_last_name IS NULL OR ha.name COLLATE "C" > _last_name COLLATE "C") ORDER BY ha.name ASC LIMIT _limit ) row @@ -48,5 +50,4 @@ BEGIN '[]'::JSONB ); END -$$ -; \ No newline at end of file +$$; \ No newline at end of file diff --git a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_abit.pat.json b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_abit.pat.json index 1833faaf9..7b2ba2ba0 100644 --- a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_abit.pat.json +++ b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_abit.pat.json @@ -1,4 +1,10 @@ [ + [ + "agartha", + "guest", + null, + "2016-09-15T18:02:03" + ], [ "alice", "guest", @@ -29,4 +35,4 @@ null, "2016-09-15T18:01:48" ] -] +] \ No newline at end of file diff --git a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_alice.pat.json b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_alice.pat.json index 75d5239ca..5e97163ac 100644 --- a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_alice.pat.json +++ b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_alice.pat.json @@ -1,14 +1,26 @@ [ + [ + "camilla", + "guest", + null, + "2016-09-15T18:01:57" + ], [ "good-karma", "guest", null, "2016-09-15T18:01:51" ], + [ + "gtg", + "guest", + null, + "2016-09-15T18:02:00" + ], [ "test-safari", "guest", null, "2016-09-15T18:01:48" ] -] +] \ No newline at end of file diff --git a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_gtg.pat.json b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_gtg.pat.json index 9156b185e..ba1e4128a 100644 --- a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_gtg.pat.json +++ b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-165317_last_gtg.pat.json @@ -1,26 +1,8 @@ [ - [ - "alice", - "guest", - null, - "2016-09-15T18:01:54" - ], - [ - "camilla", - "guest", - null, - "2016-09-15T18:01:57" - ], - [ - "good-karma", - "guest", - null, - "2016-09-15T18:01:51" - ], [ "test-safari", "guest", null, "2016-09-15T18:01:48" ] -] +] \ No newline at end of file diff --git a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_roadscape.pat.json b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_gtg.pat.json similarity index 76% rename from tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_roadscape.pat.json rename to tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_gtg.pat.json index a9826701c..d6ec6ec70 100644 --- a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_roadscape.pat.json +++ b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_gtg.pat.json @@ -1,8 +1,8 @@ [ [ - "gtg", + "roadscape", "guest", null, "2016-09-15T18:01:48" ] -] +] \ No newline at end of file diff --git a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_roadscape.tavern.yaml b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_gtg.tavern.yaml similarity index 90% rename from tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_roadscape.tavern.yaml rename to tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_gtg.tavern.yaml index 3a6cc5356..f2a4526af 100644 --- a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_roadscape.tavern.yaml +++ b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/hive-186669_last_gtg.tavern.yaml @@ -19,7 +19,7 @@ jsonrpc: "2.0" id: 1 method: "bridge.list_subscribers" - params: {"community":"hive-186669", "last":"roadscape"} + params: {"community":"hive-186669", "last":"gtg"} response: status_code: 200 verify_response_with: diff --git a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/paginated.pat.json b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/paginated.pat.json index faf3294e5..aaf628edd 100644 --- a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/paginated.pat.json +++ b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/paginated.pat.json @@ -1,14 +1,8 @@ [ - [ - "gtg", - "guest", - null, - "2016-09-15T18:01:48" - ], [ "test-safari", "admin", "", "2016-09-15T18:01:48" ] -] +] \ No newline at end of file diff --git a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/paginated_limit_1.pat.json b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/paginated_limit_1.pat.json index a9826701c..aaf628edd 100644 --- a/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/paginated_limit_1.pat.json +++ b/tests/api_tests/hivemind/tavern/bridge_api_patterns/list_subscribers/paginated_limit_1.pat.json @@ -1,8 +1,8 @@ [ [ - "gtg", - "guest", - null, + "test-safari", + "admin", + "", "2016-09-15T18:01:48" ] -] +] \ No newline at end of file -- GitLab