/
todos.coffee
50 lines (40 loc) · 1.22 KB
/
todos.coffee
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
class Todos
respondsWith: ['html', 'json', 'js', 'txt']
index: (req, resp, params) ->
geddy.model.Todo.all (err, todos) =>
@respond params: params, todos: todos
add: (req, resp, params) ->
@respond params: params
create: (req, resp, params) ->
todo = geddy.model.Todo.create
title: params.title
status: 'open'
todo.save (err, data) =>
if err
params.errors = err
@transfer 'add'
else
@redirect controller: @name
show: (req, resp, params) ->
geddy.model.Todo.first params.id, (err, todo) =>
@respond params: params, todo: todo
edit: (req, resp, params) ->
geddy.model.Todo.first params.id, (err, todo) =>
@respond params: params, todo: todo
update: (req, resp, params) ->
geddy.model.Todo.first params.id, (err, todo) =>
todo.updateAttributes params
todo.save (err, data) =>
if err
params.errors = err
@transfer 'edit'
else
@redirect controller: @name
remove: (req, resp, params) ->
geddy.model.Todo.remove params.id, (err) =>
if err
params.errors = err
@transfer 'edit'
else
@redirect controller: @name
exports.Todos = Todos