From 57f1b5a003392e2f495ce5be568d3a88772b32ea Mon Sep 17 00:00:00 2001 From: Nandgopal-R Date: Wed, 11 Mar 2026 03:44:08 +0530 Subject: [PATCH 1/2] fix responses --- src/api/responses.ts | 46 ++++++++++++++++++---- src/routes/_layout.analytics.index.tsx | 7 ++-- src/routes/_layout.analytics.responses.tsx | 7 ++-- 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/src/api/responses.ts b/src/api/responses.ts index 438eebfb..ab800b66 100644 --- a/src/api/responses.ts +++ b/src/api/responses.ts @@ -143,13 +143,45 @@ export const responsesApi = { }, // GET /responses/received - Get all responses RECEIVED for forms owned by the user - getAllReceived: async (): Promise> => { - const response = await fetch(`${API_URL}/responses/received`, { - method: 'GET', - headers: { 'Content-Type': 'application/json' }, - credentials: 'include', - }) + // Falls back to fetching per-form if endpoint doesn't exist on deployed backend + getAllReceived: async (formIds?: string[]): Promise> => { + try { + const response = await fetch(`${API_URL}/responses/received`, { + method: 'GET', + headers: { 'Content-Type': 'application/json' }, + credentials: 'include', + }) + if (response.ok) { + return handleResponse>(response) + } + } catch { + // endpoint doesn't exist, fall through to per-form fallback + } + + // Fallback: fetch responses per form using existing endpoint + if (!formIds || formIds.length === 0) return [] - return handleResponse>(response) + const results: ReceivedResponse[] = [] + for (const formId of formIds) { + try { + const perFormResponses = await responsesApi.getForForm(formId) + for (const r of perFormResponses) { + results.push({ + id: r.id, + formId: r.formId, + formName: r.formTitle, + responder: 'Respondent', + email: '', + answers: r.answers, + isSubmitted: true, + status: 'Completed', + createdAt: new Date().toISOString(), + }) + } + } catch { + // form may have no responses, skip + } + } + return results }, } diff --git a/src/routes/_layout.analytics.index.tsx b/src/routes/_layout.analytics.index.tsx index d0fa6878..a0ad33f4 100644 --- a/src/routes/_layout.analytics.index.tsx +++ b/src/routes/_layout.analytics.index.tsx @@ -47,12 +47,13 @@ function AnalyticsOverviewPage() { queryFn: () => formsApi.getAll(), }) - // Fetch all received responses + // Fetch all received responses (with per-form fallback for deployed backend) const { data: allResponses = [], } = useQuery({ - queryKey: ['received-responses'], - queryFn: () => responsesApi.getAllReceived(), + queryKey: ['received-responses', forms?.map(f => f.id)], + queryFn: () => responsesApi.getAllReceived(forms?.map(f => f.id)), + enabled: !!forms, retry: false, }) diff --git a/src/routes/_layout.analytics.responses.tsx b/src/routes/_layout.analytics.responses.tsx index f4c62a2d..58b4bed7 100644 --- a/src/routes/_layout.analytics.responses.tsx +++ b/src/routes/_layout.analytics.responses.tsx @@ -59,13 +59,14 @@ function ResponsesPage() { queryFn: () => formsApi.getAll(), }) - // Aggregate responses for all forms + // Aggregate responses for all forms (with per-form fallback for deployed backend) const { data: allResponses = [], isLoading: isAllResponsesLoading, } = useQuery({ - queryKey: ['received-responses'], - queryFn: () => responsesApi.getAllReceived(), + queryKey: ['received-responses', forms?.map(f => f.id)], + queryFn: () => responsesApi.getAllReceived(forms?.map(f => f.id)), + enabled: !!forms, retry: false, }) From 0af064dfb4624430f864cdc4fbe8e239c580df88 Mon Sep 17 00:00:00 2001 From: Nandgopal-R Date: Wed, 11 Mar 2026 03:46:04 +0530 Subject: [PATCH 2/2] fix lint --- src/api/responses.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/api/responses.ts b/src/api/responses.ts index ab800b66..4ddf3478 100644 --- a/src/api/responses.ts +++ b/src/api/responses.ts @@ -144,7 +144,7 @@ export const responsesApi = { // GET /responses/received - Get all responses RECEIVED for forms owned by the user // Falls back to fetching per-form if endpoint doesn't exist on deployed backend - getAllReceived: async (formIds?: string[]): Promise> => { + getAllReceived: async (formIds?: Array): Promise> => { try { const response = await fetch(`${API_URL}/responses/received`, { method: 'GET', @@ -161,7 +161,7 @@ export const responsesApi = { // Fallback: fetch responses per form using existing endpoint if (!formIds || formIds.length === 0) return [] - const results: ReceivedResponse[] = [] + const results: Array = [] for (const formId of formIds) { try { const perFormResponses = await responsesApi.getForForm(formId)