tryCreateAccount static method

Future<UserInfo?> tryCreateAccount(
  1. Session session, {
  2. required String email,
  3. required String verificationCode,
})

Try to create an account using a verification code. Returns the UserInfo object if successful, null otherwise.

Implementation

static Future<UserInfo?> tryCreateAccount(
  Session session, {
  required String email,
  required String verificationCode,
}) async {
  var request = await Emails.findAccountRequest(session, email);
  if (request == null) {
    return null;
  }
  if (request.verificationCode != verificationCode) {
    return null;
  }

  // Email is verified, create a new user
  var userInfo = await Emails.createUser(
    session,
    request.userName,
    email,
    null,
    request.hash,
  );

  if (userInfo != null) {
    await EmailCreateAccountRequest.db.deleteRow(session, request);
  }

  return userInfo;
}