@@ -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}
0 commit comments