generator-node-boilerplate
Version:
Web application generator for Yeoman
65 lines (56 loc) • 1.67 kB
text/coffeescript
#
# Todos Routes
#
module.exports = (app) ->
{TodoModel} = require '../../models'
app.namespace '/v1', ->
app.get '/todos', (req, res) ->
TodoModel.find (err, todos) ->
unless err
res.json todos: todos
else
console.log err
app.post '/todos', (req, res) ->
todo = new TodoModel
title: req.body.todo.title
isCompleted: req.body.todo.isCompleted
todo.save (err) ->
if err
console.log err
res.json todo: todo
app.get '/todos/:id', (req, res) ->
TodoModel.findById req.params.id, (err, todo) ->
unless err
res.json todo: todo
else
console.log err
app.put '/todos/:id', (req, res) ->
TodoModel.findById req.params.id, (err, todo) ->
todo.title = req.body.todo.title
todo.isCompleted = req.body.todo.isCompleted
todo.save (err) ->
if err
console.log err
res.json todo: todo
app.delete '/todos/:id', (req, res) ->
TodoModel.findById req.params.id, (err, todo) ->
todo.remove (err) ->
if err
console.log err
app.put '/todos', (req, res) ->
if Array.isArray req.body.todos
len = req.body.todos.length
i = 0
while i < len
for id of req.body.todos[i]
TodoModel.update
_id: id
, req.body.todos[i][id], (err, numAffected) ->
if err
console.log err
i++
res.json todos: req.body.todos
app.delete '/todos', (req, res) ->
TodoModel.remove (err) ->
if err
console.log err