Skip to content

Commit

Permalink
api: add endpoint for setting done and not done on todos
Browse files Browse the repository at this point in the history
  • Loading branch information
bkleinen committed Dec 8, 2020
1 parent c468c4a commit 0bf3802
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 2 deletions.
2 changes: 2 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ var sassMiddleware = require('node-sass-middleware');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var todosRouter = require('./routes/todos');
var apiRouter = require('./routes/api');

var app = express();

Expand Down Expand Up @@ -43,6 +44,7 @@ app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/todos', todosRouter);
app.use('/api', apiRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
Expand Down
25 changes: 24 additions & 1 deletion controllers/todosController.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,27 @@ function getParams(body) {
title: body['todo-title'],
done: body['todo-done']
}
}
}

exports.apiDone = (req, res, next) => {
const todoId = req.params.id
Todo.findOneAndUpdate({ _id: todoId }, {done: true},{new: true})
.then(result => {
res.send(result)
})
.catch(error => {
if (error) res.send(error)
})
}

exports.apiReset = (req, res, next) => {
const todoId = req.params.id
Todo.findOneAndUpdate({ _id: todoId }, {done: false},{new: true})
.then(result => {
res.send(result)
})
.catch(error => {
if (error) res.send(error)
})
}

9 changes: 9 additions & 0 deletions routes/api.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
var express = require('express');
var router = express.Router();
const todosController = require('../controllers/todosController')


router.get('/todos/:id/done', todosController.apiDone);
router.get('/todos/:id/reset', todosController.apiReset );

module.exports = router;
1 change: 0 additions & 1 deletion routes/todos.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,4 @@ router.post('/:id/delete', todosController.delete, todosController.index);
router.post('/', todosController.create);
router.post('/:id', todosController.update);


module.exports = router;

0 comments on commit 0bf3802

Please sign in to comment.