1 | require! {
|
2 | \../ : N
|
3 | \prelude-ls
|
4 | }
|
5 |
|
6 | global import prelude-ls
|
7 |
|
8 | Users = N \user schema:
|
9 | opened: ->
|
10 | | it.Tasks? => it.Tasks |> filter (-> !it.done) |> (.length)
|
11 | | _ => 0
|
12 |
|
13 |
|
14 | class Tasks extends N \task schema: done: type: 'bool', default: false
|
15 |
|
16 | Done: @_WrapPromise (done) ->
|
17 | @done = true
|
18 | @Save done
|
19 |
|
20 | class TaskRoute extends N.Route.MultiRoute
|
21 |
|
22 | Config: ->
|
23 | super!
|
24 | @Put '/:id/done' ~> it.instance.Done!
|
25 |
|
26 | Users.AttachRoute N.Route.MultiRoute
|
27 | Tasks.AttachRoute TaskRoute
|
28 |
|
29 | Users.BelongsToMany Tasks
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|