Skip to content

Commit 62cb320

Browse files
committed
chore: Tighten JSDoc, guard/normalize inputs, and verify return type compatibility (#2653)
1 parent 6324528 commit 62cb320

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

src/lib/services/answers.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,14 @@ export async function getAnswers(user_id: string) {
2929
* @returns A promise that resolves to an array of TaskAnswer objects.
3030
* @note conditions: task_id IN (...) AND user_id = userId
3131
*/
32-
export async function getAnswersWithSelectedTaskIds(selectedTaskIds: string[], userId: string) {
32+
export async function getAnswersWithSelectedTaskIds(
33+
selectedTaskIds: string[],
34+
userId: string,
35+
): Promise<Array<Pick<TaskAnswer, 'task_id' | 'user_id' | 'status_id'>>> {
36+
if (!selectedTaskIds?.length) {
37+
return [];
38+
}
39+
3340
return await prisma.taskAnswer.findMany({
3441
where: {
3542
task_id: { in: selectedTaskIds },

src/lib/services/tasks.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,23 @@ export async function getTasks(): Promise<Task[]> {
1313

1414
/**
1515
* Fetches tasks with the specified task IDs.
16-
* @param taskIds - An array of task IDs to filter the tasks.
16+
* @param selectedTaskIds - An array of task IDs to filter the tasks.
1717
*
1818
* @returns A promise that resolves to an array of Task objects.
19-
* @note conditions: { task_id: { in: taskIds } }` for efficient filtering
19+
* @note conditions: { task_id: { in: taskIds } } for efficient filtering
2020
*/
21-
export async function getTasksWithSelectedTaskIds(selectedTaskIds: string[]): Promise<Tasks> {
21+
export async function getTasksWithSelectedTaskIds(
22+
selectedTaskIds: string[],
23+
): Promise<Pick<Task, 'contest_id' | 'task_table_index' | 'task_id' | 'title' | 'grade'>[]> {
24+
if (!selectedTaskIds?.length) {
25+
return [];
26+
}
27+
28+
const ids = Array.from(new Set(selectedTaskIds));
29+
2230
return await db.task.findMany({
2331
where: {
24-
task_id: { in: selectedTaskIds }, // SQL: WHERE task_id IN ('id1', 'id2', ...)
32+
task_id: { in: ids }, // SQL: WHERE task_id IN ('id1', 'id2', ...)
2533
},
2634
select: {
2735
contest_id: true,

0 commit comments

Comments
 (0)