diff --git a/src/controllers/tasks.controller.ts b/src/controllers/tasks.controller.ts index 1561f80..1394522 100644 --- a/src/controllers/tasks.controller.ts +++ b/src/controllers/tasks.controller.ts @@ -2,7 +2,7 @@ import { ZError } from "common/ZError"; import BaseController, { ROLE_ANON } from "common/base.controller"; import { role, router } from "decorators/router"; import { all } from "deepmerge"; -import { ActivityInfo } from "models/ActivityInfo"; +import { ActivityInfo, TaskCfg } from "models/ActivityInfo"; import { ActivityUser, TaskStatus, TaskStatusEnum } from "models/ActivityUser"; import { join } from 'path' const fs = require('fs') @@ -66,7 +66,8 @@ const parseCurrentTask = (user: typeof ActivityUser, task: string) => { const parseNextTask = async ( user: typeof ActivityUser, activity: typeof ActivityInfo, - task: string) => { + task: string + ) => { let nextTask = findNextTask(user, task); if (!nextTask) { return true @@ -95,18 +96,12 @@ export default class TasksController extends BaseController { await user.save(); } let visibleTasks = new Set(); - for (let task of activity.tasks) { - if (task.show) { - visibleTasks.add(task.id) + activity.tasks.forEach((t:TaskCfg) => { + if (t.show) { + visibleTasks.add(t.id) } - } - let taskProgress = []; - for (let task of user.taskProgress) { - if (visibleTasks.has(task.id)) { - taskProgress.push(task) - } - } - return taskProgress + }) + return user.taskProgress.filter((t: TaskStatus) => visibleTasks.has(t.id)); }