Skip to content

Commit d97a1fb

Browse files
Merge pull request #47 from Nandgopal-R/hot-fix
fix responses
2 parents 8e71e0b + 0af064d commit d97a1fb

3 files changed

Lines changed: 47 additions & 13 deletions

File tree

src/api/responses.ts

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,13 +143,45 @@ export const responsesApi = {
143143
},
144144

145145
// GET /responses/received - Get all responses RECEIVED for forms owned by the user
146-
getAllReceived: async (): Promise<Array<ReceivedResponse>> => {
147-
const response = await fetch(`${API_URL}/responses/received`, {
148-
method: 'GET',
149-
headers: { 'Content-Type': 'application/json' },
150-
credentials: 'include',
151-
})
146+
// Falls back to fetching per-form if endpoint doesn't exist on deployed backend
147+
getAllReceived: async (formIds?: Array<string>): Promise<Array<ReceivedResponse>> => {
148+
try {
149+
const response = await fetch(`${API_URL}/responses/received`, {
150+
method: 'GET',
151+
headers: { 'Content-Type': 'application/json' },
152+
credentials: 'include',
153+
})
154+
if (response.ok) {
155+
return handleResponse<Array<ReceivedResponse>>(response)
156+
}
157+
} catch {
158+
// endpoint doesn't exist, fall through to per-form fallback
159+
}
160+
161+
// Fallback: fetch responses per form using existing endpoint
162+
if (!formIds || formIds.length === 0) return []
152163

153-
return handleResponse<Array<ReceivedResponse>>(response)
164+
const results: Array<ReceivedResponse> = []
165+
for (const formId of formIds) {
166+
try {
167+
const perFormResponses = await responsesApi.getForForm(formId)
168+
for (const r of perFormResponses) {
169+
results.push({
170+
id: r.id,
171+
formId: r.formId,
172+
formName: r.formTitle,
173+
responder: 'Respondent',
174+
email: '',
175+
answers: r.answers,
176+
isSubmitted: true,
177+
status: 'Completed',
178+
createdAt: new Date().toISOString(),
179+
})
180+
}
181+
} catch {
182+
// form may have no responses, skip
183+
}
184+
}
185+
return results
154186
},
155187
}

src/routes/_layout.analytics.index.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,13 @@ function AnalyticsOverviewPage() {
4747
queryFn: () => formsApi.getAll(),
4848
})
4949

50-
// Fetch all received responses
50+
// Fetch all received responses (with per-form fallback for deployed backend)
5151
const {
5252
data: allResponses = [],
5353
} = useQuery({
54-
queryKey: ['received-responses'],
55-
queryFn: () => responsesApi.getAllReceived(),
54+
queryKey: ['received-responses', forms?.map(f => f.id)],
55+
queryFn: () => responsesApi.getAllReceived(forms?.map(f => f.id)),
56+
enabled: !!forms,
5657
retry: false,
5758
})
5859

src/routes/_layout.analytics.responses.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,14 @@ function ResponsesPage() {
5959
queryFn: () => formsApi.getAll(),
6060
})
6161

62-
// Aggregate responses for all forms
62+
// Aggregate responses for all forms (with per-form fallback for deployed backend)
6363
const {
6464
data: allResponses = [],
6565
isLoading: isAllResponsesLoading,
6666
} = useQuery({
67-
queryKey: ['received-responses'],
68-
queryFn: () => responsesApi.getAllReceived(),
67+
queryKey: ['received-responses', forms?.map(f => f.id)],
68+
queryFn: () => responsesApi.getAllReceived(forms?.map(f => f.id)),
69+
enabled: !!forms,
6970
retry: false,
7071
})
7172

0 commit comments

Comments
 (0)