From de48fe5c4a299c001ae2f5b97a241572309709b8 Mon Sep 17 00:00:00 2001 From: "Sergio C. Arteaga" Date: Tue, 15 Jun 2021 14:36:06 +0200 Subject: [PATCH] Coalesce get organization members results (#1397) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Sergio CastaƱo Arteaga --- .../organizations/get_organization_members.sql | 4 ++-- .../organizations/get_organization_members.sql | 12 +++++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/database/migrations/functions/organizations/get_organization_members.sql b/database/migrations/functions/organizations/get_organization_members.sql index ddba1f15..935b1769 100644 --- a/database/migrations/functions/organizations/get_organization_members.sql +++ b/database/migrations/functions/organizations/get_organization_members.sql @@ -20,12 +20,12 @@ begin where o.name = p_org_name ) select - json_agg(json_strip_nulls(json_build_object( + coalesce(json_agg(json_strip_nulls(json_build_object( 'alias', alias, 'first_name', first_name, 'last_name', last_name, 'confirmed', confirmed - ))), + ))), '[]'), (select count(*) from organization_members) from ( select * diff --git a/database/tests/functions/organizations/get_organization_members.sql b/database/tests/functions/organizations/get_organization_members.sql index 370b431e..be21c029 100644 --- a/database/tests/functions/organizations/get_organization_members.sql +++ b/database/tests/functions/organizations/get_organization_members.sql @@ -1,6 +1,6 @@ -- Start transaction and plan tests begin; -select plan(3); +select plan(4); -- Declare some variables \set user1ID '00000000-0000-0000-0000-000000000001' @@ -67,6 +67,16 @@ select results_eq( $$, 'Limit and offset of 1 used, member user2 returned' ); +select results_eq( + $$ + select data::jsonb, total_count::integer + from get_organization_members('00000000-0000-0000-0000-000000000001', 'org1', 0, 2) + $$, + $$ + values ('[]'::jsonb, 2) + $$, + 'No members expected when using an offset of 2' +); select throws_ok( $$ select * from get_organization_members('00000000-0000-0000-0000-000000000001', 'org2', 0, 0) $$, 42501,