createFromRequest method
Validates and persists a new user from req.
Implementation
Future<User> createFromRequest(CreateUserRequest req) async {
return _transactions.run(() async {
Validator.validateOrThrow(
{'email': req.email, 'name': req.name},
{
'email': const ValidateRule.email(),
'name': const ValidateRule(required: true, minLength: 2),
},
);
final user = User(
id: DateTime.now().millisecondsSinceEpoch.toString(),
email: req.email,
name: req.name,
);
await _repo.save(user);
_events.emit(UserCreatedEvent(user));
return user;
});
}