require! { \../ : N \prelude-ls } global import prelude-ls Users = N \user schema: opened: -> | it.Tasks? => it.Tasks |> filter (-> !it.done) |> (.length) | _ => 0 class Tasks extends N \task schema: done: type: 'bool', default: false Done: @_WrapPromise (done) -> @done = true @Save done class TaskRoute extends N.Route.MultiRoute Config: -> super! @Put '/:id/done' ~> it.instance.Done! Users.AttachRoute N.Route.MultiRoute Tasks.AttachRoute TaskRoute Users.BelongsToMany Tasks # # # err, task <- Tasks.Create done: false # err, user <- Users.Create taskIds: [1] # # console.log err, user # # user.Watch console.log << (.ToJSON!) # # err, task2 <- Tasks.Create done: false # # user.taskIds.push task2.id # user.Save! # Tasks.Create {done: false} # .then -> Users.Create {taskIds: [it.id]} # .then -> Tasks.Create {done: false} # .then console.log # .then -> Users.Fetch 1 # .then -> it.taskIds.push 2; it.Save! # .then console.log # .fail console.error