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 | .catch (error) ->
|
24 | callback error
|
25 |
|
26 | ModifySomething: (params) ->
|
27 | @$aggregate.load 'Something', params.id
|
28 | .then (aggregate) ->
|
29 | aggregate.modify()
|
30 | aggregate.$save()
|
31 | .catch (error) ->
|
32 | callback.reject error
|
33 |
|
34 | module.exports = example |
\ | No newline at end of file |