i399exexpress/task-service.js

56 lines
1.1 KiB
JavaScript

'use strict';
const Task = require('./task');
class MemTaskService {
constructor() {
this.tasks = [
Task.withId('1', 'Task 1'),
Task.withId('2', 'Task 2')
];
}
getTasks() {
return Promise.resolve(this.clone(this.tasks));
}
getTask(id) {
for (let task of this.tasks) {
if (task._id === id) {
return Promise.resolve(this.clone(task));
}
}
return Promise.reject(`no task with id: ${id}`)
}
addTask(task) {
task._id = this.getNewId();
this.tasks.push(task);
return Promise.resolve(this.clone(task));
}
deleteTask(id) {
var task = null;
for (let i=0; i < this.tasks.length; i++) {
if (this.tasks[i]._id === id) {
this.tasks.splice(i, 1);
return Promise.resolve();
}
}
return Promise.reject(`no task with id: ${id}`)
}
clone(what) {
return JSON.parse(JSON.stringify(what));
}
getNewId() {
return (Math.random() + 'A').substr(2);
}
}
module.exports = MemTaskService;