diff --git a/app.js b/app.js index cabda5e..1ee039d 100644 --- a/app.js +++ b/app.js @@ -36,6 +36,9 @@ app.use('/project', projectRoutes); import userRoutes from './routes/user.routes.js'; app.use('/user', userRoutes); +import formSubmissionRoutes from './routes/formSubmission.routes.js'; +app.use('/main', formSubmissionRoutes); + app.listen( process.env.PORT ? process.env.PORT : 8080, process.env.HOST ? process.env.HOST : '127.0.0.1', diff --git a/controllers/form.controller.js b/controllers/form.controller.js index 4b725e1..fa210cd 100644 --- a/controllers/form.controller.js +++ b/controllers/form.controller.js @@ -87,6 +87,7 @@ export async function createForm(req, res) { return response_400(res, 'Name cannot be an empty string'); const projectId = req.params.projectId; const project = await Project.findOne({ projectId }); + console.log(project); if (!project) return response_400(res, 'No project found with this id'); //Mongoose object id cannot be equated directly so i converted them into string and checked that. @@ -109,18 +110,17 @@ export async function createForm(req, res) { submisssionLinkGeneratedAt, }), ); - let url = `${hostUrl}/main/submit/?formRef=${encryptedStr}`; + let url = `${hostUrl}/main/submit?formRef=${encryptedStr}`; let newForm = await Form.create({ name: req.body.name, project: project._id, schema: req.body.schema, hasFileField: req.body.hasFileField, hasRecaptchaVerification: req.body.hasRecaptcha, - submissions: [], - formId: generateRandomString(16), + formId: formId, submisssionLinkGeneratedAt, }); - + console.log(newForm); Project.findByIdAndUpdate( project._id, { forms: [...project.forms, newForm._id] }, @@ -136,6 +136,7 @@ export async function createForm(req, res) { submisssionUrl: url, }); } catch (error) { + console.log(error); return response_500(res, 'Server Error', error); } } diff --git a/controllers/formSubmission.controller.js b/controllers/formSubmission.controller.js index baa07f0..f1d8c58 100644 --- a/controllers/formSubmission.controller.js +++ b/controllers/formSubmission.controller.js @@ -11,7 +11,7 @@ import { import Form from '../models/form.model.js'; export async function createFormSubmission(req, res) { try { - const encryptedStr = req.params.encryptedStr; + const encryptedStr = req.query.formRef; const decryptedStr = await dcryptString(encryptedStr); const { formId, submisssionLinkGeneratedAt } = JSON.parse(decryptedStr); const form = await Form.findOne({ formId: formId }); diff --git a/models/form.model.js b/models/form.model.js index c062dd5..4ab34fa 100644 --- a/models/form.model.js +++ b/models/form.model.js @@ -30,11 +30,14 @@ const formSchema = new Schema( // ref: 'formSubmission', // }, // ], - submission: [ - { - type: String, - }, - ], + submission: { + type: [ + { + type: String, + }, + ], + default: void 0, + }, hasRecaptchaVerification: { type: Boolean, default: false, diff --git a/routes/form.routes.js b/routes/form.routes.js index 15589f9..138e9e4 100644 --- a/routes/form.routes.js +++ b/routes/form.routes.js @@ -8,7 +8,6 @@ import { updateForm, getForm, } from '../controllers/form.controller.js'; -import { createFormSubmission } from '../controllers/formSubmission.controller.js'; const router = Router(); // All routes configured here @@ -17,5 +16,4 @@ router.post('/new/:projectId', verifiedMiddleware, createForm); router.patch('/update/:id', verifiedMiddleware, updateForm); router.delete('/', verifiedMiddleware, deleteForm); router.get('/:formId', getForm); -router.post('/main/submit/:encryptedStr', createFormSubmission); export default router; diff --git a/routes/formSubmission.routes.js b/routes/formSubmission.routes.js new file mode 100644 index 0000000..2dadf3a --- /dev/null +++ b/routes/formSubmission.routes.js @@ -0,0 +1,7 @@ +import { greet } from '../controllers/auth.controller.js'; +import verifiedMiddleware from '../middlewares/verify.middleware.js'; +import { Router } from 'express'; +import { createFormSubmission } from '../controllers/formSubmission.controller.js'; +const router = Router(); +router.post('/submit', verifiedMiddleware, createFormSubmission); +export default router;