Skip to content

Commit f0fd0c7

Browse files
authored
Merge pull request #45 from amitsinha07/main
fix: re-save form data after callMockService to prevent overwrite
2 parents 2c3cc45 + 2134275 commit f0fd0c7

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

src/controllers/form-controller.ts

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)