registerUser method

Future<Response> registerUser(
  1. Request req
)

Implementation

Future<shelf.Response> registerUser(shelf.Request req) async {
  if (userStore == null) {
    return _bad('user store not configured',
        status: HttpStatus.notImplemented);
  }
  final map = await _bodyAsMap(req);
  final username = map['username']?.trim();
  final email = map['email']?.trim();
  final password = map['password'];
  if ((username ?? '').isEmpty ||
      (email ?? '').isEmpty ||
      (password ?? '').isEmpty) {
    return _bad('username/email/password are required');
  }
  try {
    final user = await userStore!.register(
      username: username!,
      email: email!,
      password: password!,
    );
    await userStore!.addActivity(
      email: user.email,
      action: 'register',
      message: 'User registered',
    );
    return _ok({
      'token': user.token,
      'user': user.toPublicJson(),
    });
  } on StateError catch (e) {
    return _bad(e.message.toString());
  }
}