Comments (16)
business rules only applies on 1 aggregate (so you may need a personS aggregate)
from node-cqrs-domain.
I have to have a person and a persons aggregate ? I'm not sure to understand how it should work
from node-cqrs-domain.
no, just a persons aggregate
from node-cqrs-domain.
OK but can I apply a command createOnePerson to the persons aggregate ?
Thank you for your answers
from node-cqrs-domain.
Yes, an aggregate is not an object. it's a container for intensions.
from node-cqrs-domain.
Ok I understand now how it should work but it doesn't work...
module.exports = require('cqrs-domain').definePreCondition({
name: 'createPlayer',
version: 0,
description: 'unique email address'
}, function (data, agg) {
var found = _.find(agg.get('players'), function (player) {
return player.firstname === data.firstname;
});
if (found) {
throw new Error('email already used');
}
});
agg.get('players') is always empty.
from node-cqrs-domain.
how does your defineEvent file for playerCreated looks like?
from node-cqrs-domain.
module.exports = require('cqrs-domain').defineEvent({
name: 'playerCreated'
},
function (data, aggregate) {
aggregate.get('players').push(data);
});
from node-cqrs-domain.
is that function called?
from node-cqrs-domain.
yes it is
from node-cqrs-domain.
do you have this project hosted on github? can i look at it?
from node-cqrs-domain.
https://github.com/gstrit/Test
from node-cqrs-domain.
You have to send all createPlayer commands with the same aggregateId
from node-cqrs-domain.
In my domain, a player is an aggregate root not the collection. If I understand how it works, when a client send a command to update a player, he has to fill the id of the collection as the aggregateId and not the id of the player, right ?
from node-cqrs-domain.
no...
to play a bit, just extend your commands with (cmd.payload.id = 'same aggregate Id for all commands';
)
the id of your collection player should be passed in the payload like (cmd.payload.playerId = vm.id;
)
from node-cqrs-domain.
Ok thanks
from node-cqrs-domain.
Related Issues (20)
- Let MongoDB generate the aggregate ID? HOT 6
- Is it possible to replace the t4-validation? HOT 5
- CQRS Question about bulk import HOT 5
- revision guard HOT 6
- [Bug] Precondition aggregate is empty HOT 2
- How to use in AWS Lambda HOT 5
- Can a command fire more than one event? HOT 3
- Access meta in command HOT 2
- How to use domainPath in unit tests HOT 7
- Context and aggregateId HOT 5
- defaultCommandHandler bug, adding "undefined" to array of evtsToDispatch HOT 1
- How to clear/init HOT 2
- Same event name in different contexts HOT 2
- default value command schema HOT 2
- Where to catch Error: Please pass a valid aggregate id! HOT 11
- Transaction with two aggregates HOT 1
- How to handle errors thrown from defineCommand / defineEvent handlers? HOT 9
- Unique field validation HOT 7
- rollback aggregate to a given revision HOT 5
- Update deps HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-cqrs-domain.