From 6172555dd1829a3c83e28915eb2c3fd846668807 Mon Sep 17 00:00:00 2001 From: 23000003 Date: Mon, 13 Jan 2025 22:41:50 +0800 Subject: [PATCH 1/2] feat: no successful logins before/after queue time --- src/config/env.config.ts | 4 ++-- src/routers/auth.router.ts | 6 ++++++ src/utils/time.util.ts | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/config/env.config.ts b/src/config/env.config.ts index c534388..c0305cf 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 || "07:30", 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..5aa88d2 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 || "07:30", 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); From f28c64bfbd567c236b95c607e0f0cf87580ec03b Mon Sep 17 00:00:00 2001 From: 23000003 Date: Mon, 13 Jan 2025 22:49:46 +0800 Subject: [PATCH 2/2] nit: queue start default --- src/config/env.config.ts | 2 +- src/routers/auth.router.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config/env.config.ts b/src/config/env.config.ts index c0305cf..9e22c31 100644 --- a/src/config/env.config.ts +++ b/src/config/env.config.ts @@ -4,5 +4,5 @@ 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: getRemainingQueueTime(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 5aa88d2..0a7fbf2 100644 --- a/src/routers/auth.router.ts +++ b/src/routers/auth.router.ts @@ -77,7 +77,7 @@ export const auth = new Elysia({ prefix: "/auth" }) return { message: "ID number and course are required" } } - if(getRemainingQueueTime(process.env.QUEUE_START || "07:30", process.env.QUEUE_EXPIRY || "17:00") === 0) { + 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." } }