diff --git a/frontend/src/modelTypes/ITaskDuplicate.ts b/frontend/src/modelTypes/ITaskDuplicate.ts new file mode 100644 index 000000000..4ae313eb3 --- /dev/null +++ b/frontend/src/modelTypes/ITaskDuplicate.ts @@ -0,0 +1,7 @@ +import type {IAbstract} from './IAbstract' +import type {ITask} from './ITask' + +export interface ITaskDuplicate extends IAbstract { + taskId: number + duplicatedTask: ITask | null +} diff --git a/frontend/src/models/taskDuplicateModel.ts b/frontend/src/models/taskDuplicateModel.ts new file mode 100644 index 000000000..209a7806b --- /dev/null +++ b/frontend/src/models/taskDuplicateModel.ts @@ -0,0 +1,17 @@ +import AbstractModel from './abstractModel' +import TaskModel from './task' + +import type {ITaskDuplicate} from '@/modelTypes/ITaskDuplicate' +import type {ITask} from '@/modelTypes/ITask' + +export default class TaskDuplicateModel extends AbstractModel implements ITaskDuplicate { + taskId = 0 + duplicatedTask: ITask | null = null + + constructor(data: Partial) { + super() + this.assignData(data) + + this.duplicatedTask = this.duplicatedTask ? new TaskModel(this.duplicatedTask) : null + } +} diff --git a/frontend/src/services/taskDuplicateService.ts b/frontend/src/services/taskDuplicateService.ts new file mode 100644 index 000000000..5a5724020 --- /dev/null +++ b/frontend/src/services/taskDuplicateService.ts @@ -0,0 +1,15 @@ +import AbstractService from './abstractService' +import TaskDuplicateModel from '@/models/taskDuplicateModel' +import type {ITaskDuplicate} from '@/modelTypes/ITaskDuplicate' + +export default class TaskDuplicateService extends AbstractService { + constructor() { + super({ + create: '/tasks/{taskId}/duplicate', + }) + } + + modelFactory(data: Partial) { + return new TaskDuplicateModel(data) + } +}