forked from Yadro/time-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskFactory.ts
More file actions
24 lines (19 loc) · 848 Bytes
/
TaskFactory.ts
File metadata and controls
24 lines (19 loc) · 848 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import AbstractFactory from '../../base/AbstractFactory';
import { TasksByProject } from './models/TasksByProject';
import TaskModel from './models/TaskModel';
import { TaskInMyDay, taskModelProxyHandler } from './models/TaskInMyDay';
import { DEFAULT_PROJECT_ID } from '../projects/models/ProjectModel';
export default class TaskFactory extends AbstractFactory {
createTasks(data: TasksByProject): TasksByProject {
const newData: TasksByProject = {};
Object.keys(data).forEach((projectId) => {
newData[projectId] = this.createList(TaskModel, data[projectId]);
});
newData[DEFAULT_PROJECT_ID.MyDay] = [];
return newData;
}
static createTaskModelProxy(taskModel: TaskModel): TaskInMyDay {
const target = new TaskInMyDay(taskModel, []);
return new Proxy<TaskInMyDay>(target, taskModelProxyHandler);
}
}