From 3211c5bcff2494a98050c38ede5e764fb5c5ee82 Mon Sep 17 00:00:00 2001 From: sean-brydon <55134778+sean-brydon@users.noreply.github.com> Date: Wed, 4 Dec 2024 15:15:01 +0000 Subject: [PATCH] fix data loading state (#18002) --- .../insights/server/routing-events.ts | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/features/insights/server/routing-events.ts b/packages/features/insights/server/routing-events.ts index 1ec964ea90..c759fe60c3 100644 --- a/packages/features/insights/server/routing-events.ts +++ b/packages/features/insights/server/routing-events.ts @@ -61,6 +61,13 @@ class RoutingEventsInsights { }), }; + if (teamIds.length === 0 && !routingFormId) { + if (!organizationId) { + throw new Error("Organization ID is required"); + } + formsWhereCondition.teamId = organizationId; + } + return formsWhereCondition; } @@ -344,7 +351,7 @@ class RoutingEventsInsights { }[] >` WITH form_fields AS ( - SELECT + SELECT f.id as form_id, f.name as form_name, field->>'id' as field_id, @@ -358,10 +365,10 @@ class RoutingEventsInsights { ${whereClause} ), response_stats AS ( - SELECT + SELECT r."formId", key as field_id, - CASE + CASE WHEN jsonb_typeof(value->'value') = 'array' THEN v.value_item ELSE @@ -371,8 +378,8 @@ class RoutingEventsInsights { FROM "App_RoutingForms_FormResponse" r CROSS JOIN jsonb_each(r.response::jsonb) as fields(key, value) LEFT JOIN LATERAL jsonb_array_elements_text( - CASE - WHEN jsonb_typeof(value->'value') = 'array' + CASE + WHEN jsonb_typeof(value->'value') = 'array' THEN value->'value' ELSE NULL END @@ -380,7 +387,7 @@ class RoutingEventsInsights { WHERE r."routedToBookingUid" IS NULL GROUP BY r."formId", key, selected_option ) - SELECT + SELECT ff.form_id as "formId", ff.form_name as "formName", ff.field_id as "fieldId", @@ -389,9 +396,9 @@ class RoutingEventsInsights { ff.option_label as "optionLabel", COALESCE(rs.response_count, 0)::integer as count FROM form_fields ff - LEFT JOIN response_stats rs ON - rs."formId" = ff.form_id AND - rs.field_id = ff.field_id AND + LEFT JOIN response_stats rs ON + rs."formId" = ff.form_id AND + rs.field_id = ff.field_id AND rs.selected_option = ff.option_id WHERE ff.option_id IS NOT NULL ORDER BY count DESC`;