createFromRequest method

Future<User> createFromRequest(
  1. CreateUserRequest 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;
  });
}