-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtodo.helper.js
More file actions
executable file
·122 lines (113 loc) · 2.55 KB
/
todo.helper.js
File metadata and controls
executable file
·122 lines (113 loc) · 2.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
const todo = require('./todo.model');
/**
* Get all active todos
* @return {todos} - return all todos
* @return {err} - return error
*/
let getTodoBySearch = (params) => {
return todo
.search(params)
.then((todos) => Promise.resolve(todos))
.catch((err) => Promise.reject(err));
};
/**
* Get all active todos
* @return {todos} - return all todos
* @return {err} - return error
*/
let getAllTodos = () => {
return todo
.find({})
.sort({name: 1})
.exec()
.then((todos) => Promise.resolve(todos))
.catch((err) => Promise.reject(err));
};
/**
* Get todo by Id
* @param {ObjectId} id - todo id
* @return {todo} - return todo
* @return {err} - return error
*/
let getTodoById = (id) => {
return todo
.findById(id)
.exec()
.then((todo) => Promise.resolve(todo))
.catch((err) => Promise.reject(err));
};
/**
* Get todo by name
* @param {String} name - todo name
* @return {todos} - return todo
* @return {err} - return error
*/
let getTodoByName = (name) => {
return todo
.findOne({
name: new RegExp('^' + name + '$', "i")
})
.exec()
.then((todo) => Promise.resolve(todo))
.catch((err) => Promise.reject(err));
};
/**
* Add todo
* @param {object} req - Request json object
* @return {todo} - return todo
* @return {err} - return error
*/
let addTodo = (req) => {
let oTodo = new todo();
oTodo.name = req.name;
oTodo.description = req.description;
return oTodo.save()
.then(todo => Promise.resolve(todo))
.catch(err => Promise.reject(err));
};
/**
* Update todo
* @param {object} req - Request json object
* @return {todo} - return todo
* @return {err} - return error
*/
let updateTodo = (req, id) => {
return todo
.findById(id)
.exec()
.then((oTodo) => {
oTodo.name = req.name || oTodo.name;
oTodo.description = req.description || oTodo.description;
return oTodo.save()
.then(updatedTodo => Promise.resolve(updatedTodo))
.catch(err => Promise.reject(err));
})
.catch(err => Promise.reject(err));
};
/**
* Remove todo by Id
* @param {ObjectId} id - todo id
* @return {todo} - return todo
* @return {err} - return error
*/
let removeTodo = (id) => {
return todo
.findById(id)
.exec()
.then((oTodo) => {
return oTodo
.remove()
.then((rTodo) => Promise.resolve(rTodo))
.catch(err => Promise.reject(err));
})
.catch(err => Promise.reject(err));
};
module.exports = {
getAllTodos,
getTodoById,
getTodoByName,
addTodo,
updateTodo,
removeTodo,
getTodoBySearch
};