UNPKG

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