1 | eventric = require 'eventric'
|
2 |
|
3 | example = eventric.context 'Example'
|
4 |
|
5 | class Something
|
6 | create: ->
|
7 | @$emitDomainEvent 'SomethingCreated', {}
|
8 |
|
9 | modify: ->
|
10 | @$emitDomainEvent 'SomethingModified', {}
|
11 |
|
12 |
|
13 | example.addAggregate 'Something', Something
|
14 |
|
15 | example.defineDomainEvent 'SomethingCreated', ->
|
16 | example.defineDomainEvent 'SomethingModified', ->
|
17 |
|
18 | example.addCommandHandlers
|
19 | CreateSomething: ->
|
20 | @$aggregate.create 'Something'
|
21 | .then (aggregate) ->
|
22 | aggregate.$save()
|
23 |
|
24 |
|
25 | ModifySomething: (params) ->
|
26 | @$aggregate.load 'Something', params.id
|
27 | .then (aggregate) ->
|
28 | aggregate.modify()
|
29 | aggregate.$save()
|
30 |
|
31 |
|
32 | module.exports = example |
\ | No newline at end of file |