import { NextFunction, Request, Response } from 'express'; import RegisterFormIdsModel from '../models/registerFormIdsModel'; import Logger from '../utils/logger'; import { ErrorResponse, SuccessResponse } from '../utils/response'; import Form from '../models/formModel'; export const createRegisterFormId = async ( req: Request, res: Response, next: NextFunction ) => { const { name, formId } = req.body; try { const registerFormId = await RegisterFormIdsModel.create({ name, formId }); Logger.info( `Successfully created a new register form id with ID: ${registerFormId._id}` ); SuccessResponse( res, 201, { registerFormId }, 'Successfully created a new register form id' ); } catch (error) { Logger.error(`Failed to create a new register form id - ${error}`); return ErrorResponse( res, 500, 'Failed to create a new register form id. Please try again!' ); } }; export const getAllRegisterFormIds = async ( req: Request, res: Response, next: NextFunction ) => { try { const registerFormIds = await RegisterFormIdsModel.find(); Logger.info('Successfully retrieved all register form ids'); SuccessResponse( res, 200, registerFormIds, 'Successfully retrieved all register form ids' ); } catch (error) { Logger.error(`Failed to retrieve register form ids - ${error}`); return ErrorResponse( res, 500, 'Failed to retrieve register form ids. Please try again!' ); } }; export const getRegisterForm = async ( req: Request, res: Response, next: NextFunction ) => { const {name} = req.params; try { const registerFormId = await RegisterFormIdsModel.findOne({ name }); if (!registerFormId) { Logger.error('No register form id found with that name'); return ErrorResponse( res, 404, 'No register form id found with that name' ); } const form = await Form.findById(registerFormId.formId); if (!form) { Logger.error('No form found with that id'); return ErrorResponse(res, 404, 'No form found with that id'); } Logger.info(`Successfully retrieved the register form with name: ${name}`); SuccessResponse( res, 200, form, `Successfully retrieved the register form with name: ${name}` ); } catch (error) { Logger.error(`Failed to retrieve register form - ${error}`); return ErrorResponse( res, 500, 'Failed to retrieve register form. Please try again!' ); } }; export const updateRegisterFormId = async ( req: Request, res: Response, next: NextFunction ) => { const { name, formId } = req.body; try { const registerFormId = await RegisterFormIdsModel.findOneAndUpdate( { name }, { formId }, { new: true } ); if (!registerFormId) { Logger.error('No register form id found with that name'); return ErrorResponse( res, 404, 'No register form id found with that name' ); } Logger.info(`Successfully updated the register form id with name: ${name}`); SuccessResponse( res, 200, { registerFormId }, `Successfully updated the register form id with name: ${name}` ); } catch (error) { Logger.error(`Failed to update register form id - ${error}`); return ErrorResponse( res, 500, 'Failed to update register form id. Please try again!' ); } };