File tree Expand file tree Collapse file tree 2 files changed +20
-5
lines changed
Expand file tree Collapse file tree 2 files changed +20
-5
lines changed Original file line number Diff line number Diff 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 } ,
Original file line number Diff line number Diff 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 ,
You can’t perform that action at this time.
0 commit comments