From 2c5b78cdd4fe489072c94899d61946d194fb9a83 Mon Sep 17 00:00:00 2001 From: Daehyun Kim Date: Tue, 12 Dec 2023 11:43:29 +0900 Subject: [PATCH] =?UTF-8?q?hotfix(dynamic-query):=20dynamic=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/problem/problem.service.ts | 13 +++++++++---- server/src/socket/socket.service.ts | 5 +++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/server/src/problem/problem.service.ts b/server/src/problem/problem.service.ts index e11298b..e3b6c91 100644 --- a/server/src/problem/problem.service.ts +++ b/server/src/problem/problem.service.ts @@ -54,9 +54,14 @@ export class ProblemService { } async getProblemsByBojProblemIds(bojProblemIds: number[]) { - return await this.problemRepository - .createQueryBuilder('problem') - .where('problem.bojProblemId IN (:...bojProblemIds)', { bojProblemIds }) - .getMany(); + const problemEntities: Problem[] = []; + for (const bojProblemId of bojProblemIds) { + const problem = await this.getProblemByBojProblemId(bojProblemId); + if (problem == null) { + throw new Error(`bojProblemId ${bojProblemId} not found`); + } + problemEntities.push(problem); + } + return problemEntities; } } diff --git a/server/src/socket/socket.service.ts b/server/src/socket/socket.service.ts index 07b337a..bcfed1f 100644 --- a/server/src/socket/socket.service.ts +++ b/server/src/socket/socket.service.ts @@ -163,8 +163,9 @@ export class SocketService { if (problems == null) throw new WsException('problems is null'); if (duration == null) throw new WsException('duration is null'); const bojProblemIds = problems.map((problem) => problem.bojProblemId); - room.problems = - this.problemService.getProblemsByBojProblemIds(bojProblemIds); + const problemEntities = + await this.problemService.getProblemsByBojProblemIds(bojProblemIds); + room.problems = Promise.resolve(problemEntities); room.isStarted = true; room.endAt = new Date(Date.now() + duration * 60 * 1000);