diff --git a/src/controllers/tasks.controller.ts b/src/controllers/tasks.controller.ts index a1f09ed..8abaf09 100644 --- a/src/controllers/tasks.controller.ts +++ b/src/controllers/tasks.controller.ts @@ -6,15 +6,12 @@ import { join } from 'path' import { formatDate } from 'utils/utcdate.util' import { GeneralScription } from 'models/chain/GeneralScription' import { BASE_TASK_TICKET } from 'common/Constants' -import { BASE_TASK_REWARD, SIGN_SEQ, TicketRecord } from 'models/TicketRecord' +import { BASE_TASK_REWARD, TicketRecord } from 'models/TicketRecord' import { ActivityGame } from 'models/ActivityGame' import { formatNumShow } from 'common/Utils' -import { fetchClaimStatus } from 'services/chain.svr' import logger from 'logger/logger' const fs = require('fs') -const prod = process.env.NODE_ENV === 'production' - const initTasks = () => { const tasks = join(__dirname, '../tasks') const list = new Map() @@ -22,11 +19,7 @@ const initTasks = () => { .filter((file: string) => ~file.search(/^[^.].*\.(ts|js)$/)) .forEach((file: any) => { const Task = require('../tasks/' + file) - list.set(Task.default.name, { - name: Task.default.name, - desc: Task.default.desc, - show: Task.default.show, - }) + list.set(Task.default.name, Task) }) return list } @@ -166,8 +159,11 @@ export default class TasksController extends BaseController { if (currentTask.status === TaskStatusEnum.NOT_START) { throw new ZError(11, 'task not begin') } + if (!allTasks.has(currentTask.task)) { + throw new ZError(14, 'task not found') + } if (currentTask.status === TaskStatusEnum.RUNNING || currentTask.status === TaskStatusEnum.PART_SUCCESS) { - let Task = require('../tasks/' + currentTask.task) + const Task = allTasks.get(currentTask.task) let taskInstance = new Task.default({ user, activity }) await taskInstance.execute({ task: currentTask }) } @@ -202,6 +198,9 @@ export default class TasksController extends BaseController { if (currentTask.status !== TaskStatusEnum.SUCCESS && currentTask.status !== TaskStatusEnum.PART_SUCCESS) { throw new ZError(13, 'task not end') } + if (!allTasks.has(currentTask.task)) { + throw new ZError(14, 'task not found') + } if (cfg.checkChain) { const chainRecord = await GeneralScription.findOne({ from: user.address.toLowerCase(), @@ -217,7 +216,7 @@ export default class TasksController extends BaseController { // } } - const Task = require('../tasks/' + currentTask.task) + const Task = allTasks.get(currentTask.task) const taskInstance = new Task.default({ user, activity }) const { score } = await taskInstance.claimReward(currentTask) const baseTaskSet = new Set(activity.baseTasks)