import { Router } from 'express';
import {
createForm,
deleteForm,
deleteForms,
getAllForms,
getForm,
updateForm,
} from '../controllers/formController';
import {
createResponse,
exportFormResponses,
getAllResponses,
} from '../controllers/formResponseController';
import { protect } from '../middlewares/authMiddleware';
import {
Schemas,
ValidateBodySchema,
ValidateQuerySchema,
} from '../middlewares/validateSchemaMiddleware';
import {
createRegisterFormId,
getAllRegisterFormIds,
getRegisterForm,
updateRegisterFormId,
} from '../controllers/registerFormIdsController';
const formRouter = Router();
formRouter
.route('/')
.get(protect, ValidateQuerySchema(Schemas.form.getAll), getAllForms)
.post(protect, ValidateBodySchema(Schemas.form.create), createForm);
formRouter.patch(
'/bulk-delete',
ValidateBodySchema(Schemas.form.bulk_delete),
protect,
deleteForms
);
formRouter
.route('/register-fid')
.post(protect, createRegisterFormId)
.get(protect, getAllRegisterFormIds)
.patch(protect, updateRegisterFormId);
formRouter.route('/register-form/:name').get(getRegisterForm);
formRouter
.route('/:id')
.get(getForm)
.patch(protect, ValidateBodySchema(Schemas.form.update), updateForm)
.delete(protect, deleteForm);
formRouter
.route('/:id/response')
.get(protect, getAllResponses)
.post(ValidateBodySchema(Schemas.formResponse.create), createResponse);
formRouter.post('/:id/export', protect, exportFormResponses);
export default formRouter;