register method

  1. @override
FutureOr<PassedHttpEntity> register(
  1. RequestHolder request,
  2. ResponseHolder response,
  3. Map<String, dynamic> pathArgs
)
override

Implementation

@override
FutureOr<PassedHttpEntity> register(
  RequestHolder request,
  ResponseHolder response,
  Map<String, dynamic> pathArgs,
) async {
  return _wrapper(
    request,
    response,
    pathArgs,
    () async {
      var data = await request.readAsJson();
      String emailKey = BodyFields.email;
      String passwordKey = BodyFields.password;
      String userDataKey = BodyFields.userData;

      String? email = data[emailKey];
      String? password = data[passwordKey];
      Map<String, dynamic> userData = data[userDataKey] ?? {};

      if (email == null || password == null) {
        throw RequestBodyError('email and password can\'t be empty');
      }

      String jwt = await authService.registerUser(
        email: email,
        password: password,
        userData: userData,
        customUserID: null,
      );

      UserDataService userDataService = UserDataService(authService);
      var loadedUserData =
          await userDataService.getUserDataByEmail(email) ?? {};

      Map<String, dynamic> resData = {
        BodyFields.userData: loadedUserData,
        ContextFields.jwt: jwt,
      };

      return SendResponse.sendDataToUser(
        response,
        resData,
      );
    },
  );
}