From f37f223fe787fd39aa342fbb38bfdbf1ae37deb7 Mon Sep 17 00:00:00 2001 From: Bae-Jihoon Date: Tue, 14 Jan 2025 21:06:17 +0900 Subject: [PATCH] fix: replaced hardcoded values --- .../command/isReviewProhibited.command.ts | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/modules/auth/command/isReviewProhibited.command.ts b/src/modules/auth/command/isReviewProhibited.command.ts index 667b9061..a13b0e36 100644 --- a/src/modules/auth/command/isReviewProhibited.command.ts +++ b/src/modules/auth/command/isReviewProhibited.command.ts @@ -4,12 +4,14 @@ import { Reflector } from '@nestjs/core'; import { AuthCommand, AuthResult } from '../auth.command'; import { LecturesService } from '@src/modules/lectures/lectures.service'; import { Request } from 'express'; +import { PrismaService } from '@src/prisma/prisma.service'; @Injectable() export class IsReviewProhibitedCommand implements AuthCommand { constructor( private reflector: Reflector, private lectureService: LecturesService, + private prismaService: PrismaService, ) {} public async next( @@ -22,6 +24,7 @@ export class IsReviewProhibitedCommand implements AuthCommand { ); const request = context.switchToHttp().getRequest(); + const requestTime = new Date(); const reviewsBody = request.body; if (isReviewProhibited) { @@ -32,10 +35,23 @@ export class IsReviewProhibitedCommand implements AuthCommand { const lecture = await this.lectureService.getLectureById( reviewsBody.lecture, ); - // TODO: implement logic to replace hardcoded values - if (lecture.year == 2025 && lecture.semester == 1) { + + const semester = await this.prismaService.subject_semester.findFirst({ + where: { + AND: [{ year: lecture.year }, { semester: lecture.semester }], + }, + select: { + courseDropDeadline: true, + }, + }); + if (!semester || !semester.courseDropDeadline) { + throw new Error('semester info are not found from request'); + } + + if (requestTime < semester.courseDropDeadline) { prevResult.authorization = false; } + return Promise.resolve(prevResult); } catch (e) { console.log(e);