Skip to content

Commit 27a67f1

Browse files
committed
Implemented ability to delete TODOs
1 parent 1d8032b commit 27a67f1

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

app/scripts/controllers/todo.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
function TodoCtrl ($scope, dataService) {
44

55
$scope.deleteTodo = function(todo, index) {
6-
$scope.todos.splice(index, 1);
7-
dataService.deleteTodo(todo);
6+
dataService.deleteTodo(todo).then(function() {
7+
$scope.todos.splice(index, 1);
8+
});
89
};
910

1011
$scope.saveTodos = function() {

app/scripts/services/data.js

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,27 @@ function DataService ($http, $q) {
77
};
88

99
this.deleteTodo = function(todo) {
10-
console.log("I deleted the " + todo.name + " todo!");
10+
if (!todo._id) {
11+
return $q.resolve();
12+
}
13+
return $http.delete('/api/todos/' + todo._id).then(function() {
14+
console.log("I deleted the " + todo.name + " todo!");
15+
});
1116
};
1217

1318
this.saveTodos = function(todos) {
1419
var queue = [];
1520
todos.forEach(function(todo) {
16-
var request;
17-
if(!todo._id) {
18-
request = $http.post('/api/todos', todo);
19-
} else {
20-
request = $http.put('/api/todos/' + todo._id, todo).then(function(result) {
21-
todo = result.data.todo;
22-
return todo;
23-
});
24-
}
25-
queue.push(request);
21+
var request;
22+
if(!todo._id) {
23+
request = $http.post('/api/todos', todo);
24+
} else {
25+
request = $http.put('/api/todos/' + todo._id, todo).then(function(result) {
26+
todo = result.data.todo;
27+
return todo;
28+
});
29+
}
30+
queue.push(request);
2631
});
2732
return $q.all(queue).then(function(results) {
2833
console.log("I saved " + todos.length + " todos!");

src/api/index.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ router.put('/todos/:id', function(req, res) {
3838
});
3939
});
4040

41-
// TODO: Add DELETE route to remove existing entries
41+
router.delete('/todos/:id', function(req, res) {
42+
var id = req.params.id;
43+
Todo.findByIdAndRemove(id, function(err, result) {
44+
if (err) {
45+
return res.status(500).json({ err: err.message });
46+
}
47+
res.json({ message: 'Todo Deleted' });
48+
});
49+
});
4250

4351
module.exports = router;

0 commit comments

Comments
 (0)