Skip to content

Commit 2edc747

Browse files
Fixed broken TODO lists' delete functionality
1 parent fd7f556 commit 2edc747

File tree

6 files changed

+25
-23
lines changed

6 files changed

+25
-23
lines changed

4-AccessControl/1-app-roles/App/controllers/todolistController.js

+10-9
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,23 @@ exports.getTodos = (req, res) => {
2222
}
2323

2424
exports.postTodo = (req, res) => {
25+
const owner = req.authContext.getAccount().idTokenClaims['oid'];
26+
req.body._method === "DELETE" ? deleteTodo(req, owner) : addTodo(req, owner);
27+
28+
res.redirect('/todolist');
29+
}
30+
31+
const addTodo = (req, owner) => {
2532
const id = nanoid();
2633
const name = req.body.name;
27-
const owner = req.authContext.getAccount().idTokenClaims['oid'];
2834

2935
const newTodo = new Todo(id, name, owner)
3036

3137
Todo.postTodo(newTodo);
32-
33-
res.redirect('/todolist');
34-
}
38+
};
3539

36-
exports.deleteTodo = (req, res) => {
40+
const deleteTodo = (req, owner) => {
3741
const id = req.body.id;
38-
const owner = req.authContext.getAccount().idTokenClaims['oid'];
3942

4043
Todo.deleteTodo(id, owner);
41-
42-
res.redirect('/todolist');
43-
}
44+
};

4-AccessControl/1-app-roles/App/routes/todolistRoutes.js

-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,5 @@ const router = express.Router();
77
// user routes
88
router.get('', todolistController.getTodos);
99
router.post('/', todolistController.postTodo);
10-
router.delete('/', todolistController.deleteTodo);
1110

1211
module.exports = router;

4-AccessControl/1-app-roles/App/views/todolist.ejs

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
<tr>
3131
<td><%= todos[i]['name'] %></td>
3232
<td>
33-
<form action='/todolist?_method=DELETE' method='POST'>
33+
<form action='/todolist' method='POST'>
34+
<input type="hidden" name="_method" value="DELETE"/>
3435
<input type='hidden' name='id' value='<%= todos[i]["id"] %>'>
3536
<button class="btn btn-primary" type='submit'>Delete</button>
3637
</form>

4-AccessControl/2-security-groups/App/controllers/todolistController.js

+10-9
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,23 @@ exports.getTodos = (req, res) => {
2222
}
2323

2424
exports.postTodo = (req, res) => {
25+
const owner = req.authContext.getAccount().idTokenClaims['oid'];
26+
req.body._method === "DELETE" ? deleteTodo(req, owner) : addTodo(req, owner);
27+
28+
res.redirect('/todolist');
29+
}
30+
31+
const addTodo = (req, owner) => {
2532
const id = nanoid();
2633
const name = req.body.name;
27-
const owner = req.authContext.getAccount().idTokenClaims['oid'];
2834

2935
const newTodo = new Todo(id, name, owner)
3036

3137
Todo.postTodo(newTodo);
32-
33-
res.redirect('/todolist');
34-
}
38+
};
3539

36-
exports.deleteTodo = (req, res) => {
40+
const deleteTodo = (req, owner) => {
3741
const id = req.body.id;
38-
const owner = req.authContext.getAccount().idTokenClaims['oid'];
3942

4043
Todo.deleteTodo(id, owner);
41-
42-
res.redirect('/todolist');
43-
}
44+
};

4-AccessControl/2-security-groups/App/routes/todolistRoutes.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ const todolistController = require('../controllers/todolistController');
55
const router = express.Router();
66

77
// user routes
8-
router.get('/', todolistController.getTodos);
8+
router.get('', todolistController.getTodos);
99
router.post('/', todolistController.postTodo);
10-
router.delete('/', todolistController.deleteTodo);
1110

1211
module.exports = router;

4-AccessControl/2-security-groups/App/views/todolist.ejs

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
<tr>
3131
<td><%= todos[i]['name'] %></td>
3232
<td>
33-
<form action='/todolist?_method=DELETE' method='POST'>
33+
<form action='/todolist' method='POST'>
34+
<input type="hidden" name="_method" value="DELETE"/>
3435
<input type='hidden' name='id' value='<%= todos[i]["id"] %>'>
3536
<button class="btn btn-primary" type='submit'>Delete</button>
3637
</form>

0 commit comments

Comments
 (0)