From 7f5667c0b083fa6fa2f30f9a48eca8b4fa20a94b Mon Sep 17 00:00:00 2001
From: niamu01 <niamu01@naver.com>
Date: Wed, 10 Jan 2024 11:29:51 +0900
Subject: [PATCH] =?UTF-8?q?refactor:=20:recycle:=20evalLog=EC=9D=98=20fiel?=
 =?UTF-8?q?dExtractor=EC=9D=98=20=EC=BB=A4=EC=84=9C=20=EA=B2=80=EC=82=AC?=
 =?UTF-8?q?=20=EC=82=AC=ED=95=AD=20=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/src/page/evalLog/evalLog.service.ts | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/app/src/page/evalLog/evalLog.service.ts b/app/src/page/evalLog/evalLog.service.ts
index 38bdf8c5..4b1477f5 100644
--- a/app/src/page/evalLog/evalLog.service.ts
+++ b/app/src/page/evalLog/evalLog.service.ts
@@ -1,4 +1,4 @@
-import { Injectable } from '@nestjs/common';
+import { BadRequestException, Injectable } from '@nestjs/common';
 import { FilterQuery } from 'mongoose';
 import { scale_team } from 'src/api/scaleTeam/db/scaleTeam.database.schema';
 import {
@@ -143,7 +143,20 @@ const cursorExtractor: CursorExtractor<EvalLog> = (doc) =>
   doc.id.toString() + '_' + doc.header.beginAt.toISOString();
 
 const fieldExtractor: FieldExtractor<EvalLogCursorField> = (cursor: string) => {
-  const [idString, dateString] = cursor.split('_');
+  const cursorDataList = cursor.split('_');
+  if (cursorDataList.length !== 2) {
+    throw new BadRequestException('Invalid Cursor');
+  }
+
+  const userId = parseInt(cursorDataList[0]);
+  if (isNaN(userId)) {
+    throw new BadRequestException('Invalid Cursor');
+  }
+
+  const date = new Date(cursorDataList[1]).getTime();
+  if (isNaN(date)) {
+    throw new BadRequestException('Invalid Cursor');
+  }
 
-  return [parseInt(idString), new Date(dateString)];
+  return [userId, new Date(date)];
 };