@@ -86,24 +86,11 @@ export const submitForm = async (req: Request, res: Response) => {
8686 console . log ( 'Updating session with form data:' , formData ) ;
8787 const submission_id = randomUUID ( ) ;
8888 formData . form_submission_id = submission_id ;
89- await updateSession ( formConfig . url , formData , submissionData . transaction_id ) ;
90- await updateSession ( formConfig . url , formData , submissionData . session_id ) ;
91- console . log ( 'Session updated successfully' ) ;
92- const sessionData = await SessionService . getSessionData ( submissionData . transaction_id ) ;
93- const form_data = {
94- ...sessionData ?. form_data ,
95- } ;
96- logger . info ( "form data transaction id++++++++++ " , form_data ) ;
97- const sessionData1 = await SessionService . getSessionData ( submissionData . session_id ) ;
98- const form_data1 = {
99- ...sessionData1 ?. form_data ,
100- } ;
101- logger . info ( "form data session id++++++++++ " , form_data1 ) ;
10289 // Only for dynamic forms: update main session and show success page
10390 if ( formConfig . type === 'dynamic' ) {
10491 // Call mock service FIRST so idType is stored before frontend detects submission
10592 await callMockService ( domain , submissionData , submission_id , formData ) ;
106-
93+
10794 // Update main session AFTER mock service call - this triggers frontend polling detection
10895 await updateMainSessionWithFormSubmission ( submissionData . session_id as string , submissionData . transaction_id as string , submission_id , formUrl , formData ?. idType ) ;
10996
@@ -206,8 +193,17 @@ export const submitForm = async (req: Request, res: Response) => {
206193
207194 res . type ( 'html' ) . send ( successHtml ) ;
208195 } else {
209- // For static forms: keep original JSON response
196+ // For static forms: call mock service first, then re-save form data
197+ // This prevents the mock framework's saveDataForConfig from overwriting
198+ // the full 17-field form submission with only {submission_id, idType}
210199 await callMockService ( domain , submissionData , submission_id , formData ) ;
200+
201+ // Re-save form data AFTER callMockService (defensive write)
202+ await updateSession ( formConfig . url , formData , submissionData . transaction_id ) ;
203+ await updateSession ( formConfig . url , formData , submissionData . session_id ) ;
204+ console . log ( 'Session updated successfully (static form)' ) ;
205+ logger . info ( "form data after mock service call (static):" , { transaction_id : submissionData . transaction_id } ) ;
206+
211207 res . json ( { success : true , submission_id : submission_id } ) ;
212208 }
213209 } catch ( error : any ) {
0 commit comments