diff --git a/src/config.ts b/src/config.ts index 0d88fb1..9ded610 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,7 +1,7 @@ import dotenv from 'dotenv'; dotenv.config(); -const isProduction = process.env.NODE_ENV === 'production' +export const isProduction = process.env.NODE_ENV === 'production' // MongoDB URI export const MONGOURI = isProduction diff --git a/src/controllers/createLog.ts b/src/controllers/createLog.ts index 1fd2746..3b0f4da 100644 --- a/src/controllers/createLog.ts +++ b/src/controllers/createLog.ts @@ -19,19 +19,29 @@ interface getLogsRequest extends Request { const createLog = async (req: getLogsRequest, res: Response) => { const { user, logType, questionId, quizId } = req.body + + if (!mongoose.Types.ObjectId.isValid(quizId)) { + return res.status(400).json({ + message: 'Invalid quizId', + }) + } + try { - const log = await LogModel.create({ + const log = new LogModel({ userId: user.userId, logType, ...(questionId && { questionId }), - quizId, + quizId: new mongoose.Types.ObjectId(quizId), }) + + await log.save() + return res.status(200).json({ message: 'Log created successfully', log, }) } catch (error: unknown) { - console.log(error) + console.error(error) return res.status(500).json({ message: 'Error in creating log', error, diff --git a/src/server.ts b/src/server.ts index 0e9f10a..33026eb 100644 --- a/src/server.ts +++ b/src/server.ts @@ -14,14 +14,14 @@ import morgan from 'morgan' import mongoSanitize from 'express-mongo-sanitize' import logger from '@utils/logger' import profilePageRouter from '@routers/profilePage' -import { FRONTEND_URL } from 'config' +import { isProduction, FRONTEND_URL } from 'config' import cluster from 'cluster' import os from 'os' const numInstances = os.cpus().length -if (cluster.isMaster) { - console.log(`Master ${process.pid} is running`) +if (isProduction && cluster.isMaster) { + console.log(`Master ${process.pid} is running in production environment`) // Fork workers. for (let i = 0; i < numInstances; i++) { @@ -84,6 +84,10 @@ if (cluster.isMaster) { app.get('/', (req: Request, res: Response) => { res.send('Express + TypeScript Server') }) + + app.get('/health', (req: Request, res: Response) => { + res.status(200).send('Server is up and running') + }) server.listen(port, () => { logger.silly(`⚡️[server]: Server is running at http://localhost:${port}`)