diff --git a/src/config/env.config.ts b/src/config/env.config.ts index c534388..9e22c31 100644 --- a/src/config/env.config.ts +++ b/src/config/env.config.ts @@ -1,8 +1,8 @@ -import { getJwtExpiry } from "../utils/time.util" +import { getRemainingQueueTime } from "../utils/time.util" export const env = { PORT: process.env.PORT || 3000, LOGFILE_NAME: process.env.LOGFILE_NAME || "./server.log", JWT_SECRET: process.env.JWT_SECRET || "TEST SECRET KEY", - JWT_EXPIRY: getJwtExpiry(process.env.QUEUE_START || "07:30", process.env.QUEUE_EXPIRY || "17:00"), + JWT_EXPIRY: getRemainingQueueTime(process.env.QUEUE_START || "08:00", process.env.QUEUE_EXPIRY || "17:00"), } \ No newline at end of file diff --git a/src/routers/auth.router.ts b/src/routers/auth.router.ts index e890926..0a7fbf2 100644 --- a/src/routers/auth.router.ts +++ b/src/routers/auth.router.ts @@ -5,6 +5,7 @@ import { JwtModel } from "../types/entities/dtos/JwtModel" import { HttpStatusEnum } from "../types/enums/HttpStatusEnum" import { AuthMiddlewareContext, QueueJwtPayload } from "../types/interfaces/JwtInterface" import Elysia from "elysia" +import { getRemainingQueueTime } from "../utils/time.util" export const auth = new Elysia({ prefix: "/auth" }) .model({ @@ -76,6 +77,11 @@ export const auth = new Elysia({ prefix: "/auth" }) return { message: "ID number and course are required" } } + if(getRemainingQueueTime(process.env.QUEUE_START || "08:00", process.env.QUEUE_EXPIRY || "17:00") === 0) { + set.status = HttpStatusEnum.BAD_REQUEST + return { message: "Queue is closed or not yet started." } + } + const student = await studentService.findStudentById(body.idNumber) if (!student) { diff --git a/src/utils/time.util.ts b/src/utils/time.util.ts index d2324eb..87b5822 100644 --- a/src/utils/time.util.ts +++ b/src/utils/time.util.ts @@ -1,4 +1,4 @@ -export const getJwtExpiry = (queueStartTime: string, queueEndTime: string): number => { +export const getRemainingQueueTime = (queueStartTime: string, queueEndTime: string): number => { const [startHours, startMinutes] = queueStartTime.split(':').map(Number); const [endHours, endMinutes] = queueEndTime.split(':').map(Number);